Merge remote-tracking branch 'LCTT/master'

This commit is contained in:
Xingyu Wang 2019-09-29 14:28:16 +08:00
commit b05232dd44
19 changed files with 1875 additions and 171 deletions

View File

@ -0,0 +1,153 @@
[#]: collector: (lujun9972)
[#]: translator: (qfzy1233)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-11402-1.html)
[#]: subject: (An introduction to Markdown)
[#]: via: (https://opensource.com/article/19/9/introduction-markdown)
[#]: author: (Juan Islas https://opensource.com/users/xislas)
一份 Markdown 简介
======
> 一次编辑便可将文本转换为多种格式。下面是如何开始使用 Markdown。
![](https://img.linux.net.cn/data/attachment/album/201909/29/123226bjte253n2h44cjjj.jpg)
在很长一段时间里,我发现我在 GitLab 和 GitHub 上看到的所有文件都带有 **.md** 扩展名,这是专门为开发人员编写的文件类型。几周前,当我开始使用 Markdown 时,我的观念发生了变化。它很快成为我日常工作中最重要的工具。
Markdown 使我的生活更简易。我只需要在已经编写的代码中添加一些符号,并且在浏览器扩展或开源程序的帮助下,即可将文本转换为各种常用格式,如 ODT、电子邮件稍后将详细介绍、PDF 和 EPUB。
### 什么是 Markdown?
来自 [维基百科][2]的友情提示:
> Markdown 是一种轻量级标记语言,具有纯文本格式语法。
这意味着通过在文本中使用一些额外的符号Markdown 可以帮助你创建具有特定结构和格式的文档。当你以纯文本(例如,在记事本应用程序中)做笔记时,没有任何东西表明哪个文本应该是粗体或斜体。在普通文本中,你在写链接时需要将一个链接写为 “http://example.com”或者写为 “example.com”又或“访问网站example.com”。这样没有内在的一致性。
但是如果你按照 Markdown 的方式编写,你的文本就有了内在的一致性。计算机喜欢一致性,因为这使得它们能够遵循严格的指令而不用担心异常。
相信我;一旦你学会使用 Markdown每一项写作任务在某种程度上都会比以前更容易、更好。让我们开始吧。
### Markdown 基础
以下是使用 Markdown 的基础语法。
1、创建一个以 **.md** 扩展名结尾的文本文件(例如,`example.md`)。你可以使用任何文本编辑器(甚至像 LibreOffice 或 Microsoft word 这样的文字处理程序亦可),只要记住将其保存为*文本*文件。
![Names of Markdown files][3]
2、想写什么就写什么就像往常一样:
```
Lorem ipsum
Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
De Finibus Bonorum et Malorum
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
```
LCTT 译注上述这段“Lorem ipsum”中文又称“乱数假文”是一篇常用于排版设计领域的拉丁文文章主要目的为测试文章或文字在不同字型、版型下看起来的效果。
3、确保在段落之间留有空行。如果你习惯写商务信函或传统散文这可能会觉得不自然因为那里段落只有一行甚至在第一个单词前还有一个缩进。对于 Markdown空行一些文字处理程序使用 `¶`称为Pilcrow 符号)保证在创建一个新段落应用另一种格式(如 HTML
4、指定标题和副标题。对于文档的标题在文本前面添加一个井号或散列符号`#`)和一个空格(例如 `# Lorem ipsum`)。第一个副标题级别使用两个(`## De Finibus Bonorum et Malorum`),下一个级别使用三个(`### 第三个副标题`),以此类推。注意,在井号和第一个单词之间有一个空格。
```
# Lorem ipsum
Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
## De Finibus Bonorum et Malorum
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
  Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
```
5、如果你想使用**粗体**字符,只需将字母放在两个星号之间,没有空格:`**对应的文本将以粗体显示**`。
![Bold text in Markdown][4]
6、对于**斜体**,将文本放在没有空格的下划线符号之间:`_我希望这个本文以斜体显示_`。LCTT 译注:有的 Markdown 流派会将用下划线引起来的字符串视作下划线文本,而单个星号 `*` 引用起来的才视作斜体。从兼容性的角度看,使用星号比较兼容。)
![Italics text in Markdown][5]
7、要插入一个链接像 [Markdown Tutorial][6]把你想链接的文本放在括号里URL 放在括号里,中间没有空格:`[Markdown Tutorial](<https://www.markdowntutorial.com/>)`。
![Hyperlinks in Markdown][7]
8、块引用是用大于号编写的`>`)在你要引用的文本前加上大于符号和空格: `> 名言引用`
![Blockquote text in Markdown][8]
### Markdown 教程和技巧
这些技巧可以帮助你上手 Markdown ,但它涵盖了很多功能,不仅仅是粗体、斜体和链接。学习 Markdown 的最好方法是使用它,但是我建议你花 15 分钟来学习这篇简单的 [Markdown 教程][6],学以致用,勤加练习。
由于现代 Markdown 是对结构化文本概念的许多不同解释的融合,[CommonMark][9] 项目定义了一个规范,其中包含一组严格的规则,以使 Markdown 更加清晰。在编辑时手边准备一份[符合 CommonMark 的快捷键列表][10]可能会有帮助。
### 你能用 Markdown 做什么
Markdown 可以让你写任何你想写的东西,仅需一次编辑,就可以把它转换成几乎任何你想使用的格式。下面的示例演示如何将用 MD 编写简单的文本并转换为不同的格式。你不需要多种格式的文档-你可以仅仅编辑一次…然后拥有无限可能。
1、**简单的笔记**:你可以用 Markdown 编写你的笔记,并且在保存笔记时,开源笔记应用程序 [Turtl][11] 将解释你的文本文件并显示为对应的格式。你可以把笔记存储在任何地方!
![Turtl application][12]
2、**PDF 文件**:使用 [Pandoc][13] 应用程序,你可以使用一个简单的命令将 Markdown 文件转换为 PDF
```
pandoc <file.md> -o <file.pdf>
```
![Markdown text converted to PDF with Pandoc][14]
3、**Email**:你还可以通过安装浏览器扩展 [Markdown Here][15] 将 Markdown 文本转换为 html 格式的电子邮件。要使用它,只需选择你的 Markdown 文本,在这里使用 Markdown 将其转换为 HTML并使用你喜欢的电子邮件客户端发送消息。
![Markdown text converted to email with Markdown Here][16]
### 现在就开始上手吧
你不需要一个特殊的应用程序来使用 Markdown你只需要一个文本编辑器和上面的技巧。它与你已有的写作方式兼容你所需要做的就是使用它所以试试吧。
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/9/introduction-markdown
作者:[Juan Islas][a]
选题:[lujun9972][b]
译者:[qfzy1233](https://github.com/qfzy1233)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/xislas
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/programming-code-keyboard-laptop-music-headphones.png?itok=EQZ2WKzy (Woman programming)
[2]: https://en.wikipedia.org/wiki/Markdown
[3]: https://opensource.com/sites/default/files/uploads/markdown_names_md-1.png (Names of Markdown files)
[4]: https://opensource.com/sites/default/files/uploads/markdown_bold.png (Bold text in Markdown)
[5]: https://opensource.com/sites/default/files/uploads/markdown_italic.png (Italics text in Markdown)
[6]: https://www.markdowntutorial.com/
[7]: https://opensource.com/sites/default/files/uploads/markdown_link.png (Hyperlinks in Markdown)
[8]: https://opensource.com/sites/default/files/uploads/markdown_blockquote.png (Blockquote text in Markdown)
[9]: https://commonmark.org/help/
[10]: https://opensource.com/downloads/cheat-sheet-markdown
[11]: https://turtlapp.com/
[12]: https://opensource.com/sites/default/files/uploads/markdown_turtl_02.png (Turtl application)
[13]: https://opensource.com/article/19/5/convert-markdown-to-word-pandoc
[14]: https://opensource.com/sites/default/files/uploads/markdown_pdf.png (Markdown text converted to PDF with Pandoc)
[15]: https://markdown-here.com/
[16]: https://opensource.com/sites/default/files/uploads/markdown_mail_02.png (Markdown text converted to email with Markdown Here)

View File

@ -0,0 +1,65 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Cisco: 13 IOS, IOS XE security flaws you should patch now)
[#]: via: (https://www.networkworld.com/article/3441221/cisco-13-ios-ios-xe-security-flaws-you-should-patch-now.html)
[#]: author: (Michael Cooney https://www.networkworld.com/author/Michael-Cooney/)
Cisco: 13 IOS, IOS XE security flaws you should patch now
======
Cisco says vulnerabilities in IOS/IOS XE could cause DOS situation; warns on Traceroute setting
Woolzian / Getty Images
Cisco this week warned its IOS and IOS XE customers of 13 vulnerabilities in the operating system software they should patch as soon as possible.
All of the vulnerabilities revealed in the companys semiannual [IOS and IOS XE Software Security Advisory Bundle][1] have a security impact rating (SIR) of "high". Successful exploitation of the vulnerabilities could allow an attacker to gain unauthorized access to, conduct a command injection attack on, or cause a denial of service (DoS) condition on an affected device, Cisco stated. 
["How to determine if Wi-Fi 6 is right for you"][2]
Two of the vulnerabilities affect both Cisco IOS Software and Cisco IOS XE Software. Two others affect Cisco IOS Software, and eight of the vulnerabilities affect Cisco IOS XE Software. The final one affects the Cisco IOx application environment. Cisco has confirmed that none of the vulnerabilities affect Cisco IOS XR Software or Cisco NX-OS Software.  Cisco [has released software updates][3] that address these problems.
Some of the worst exposures include:
* A [vulnerability in the IOx application environment][4] for Cisco IOS Software could let an authenticated, remote attacker gain unauthorized access to the Guest Operating System (Guest OS) running on an affected device. The vulnerability is due to incorrect role-based access control (RBAC) evaluation when a low-privileged user requests access to a Guest OS that should be restricted to administrative accounts. An attacker could exploit this vulnerability by authenticating to the Guest OS by using the low-privileged-user credentials. An exploit could allow the attacker to gain unauthorized access to the Guest OS as a root.This vulnerability affects Cisco 800 Series Industrial Integrated Services Routers and Cisco 1000 Series Connected Grid Routers (CGR 1000) that are running a vulnerable release of Cisco IOS Software with Guest OS installed.  While Cisco did not rate this vulnerability as critical, it did have a Common Vulnerability Scoring System (CVSS) of 9.9 out of 10.  Cisco recommends disabling the guest feature until a proper fix is installed.
* An exposure in the [Ident protocol handler of Cisco IOS and IOS XE][5] software could allow a remote attacker to cause an affected device to reload. The problem exists because the affected software incorrectly handles memory structures, leading to a NULL pointer dereference, Cisco stated. An attacker could exploit this vulnerability by opening a TCP connection to specific ports and sending traffic over that connection. A successful exploit could let the attacker cause the affected device to reload, resulting in a denial of service (DoS) condition. This vulnerability affects Cisco devices that are running a vulnerable release of Cisco IOS or IOS XE Software and that are configured to respond to Ident protocol requests.
* A vulnerability in the [common Session Initiation Protocol (SIP) library][6] of Cisco IOS and IOS XE Software could let an unauthenticated, remote attacker trigger a reload of an affected device, resulting in a denial of service (DoS). The vulnerability is due to insufficient sanity checks on an internal data structure. An attacker could exploit this vulnerability by sending a sequence of malicious SIP messages to an affected device. An exploit could allow the attacker to cause a NULL pointer dereference, resulting in a crash of the _iosd_ This triggers a reload of the device, Cisco stated.
* A [vulnerability in the ingress packet-processing][7] function of Cisco IOS Software for Cisco Catalyst 4000 Series Switches could let an aggressor cause a denial of service (DoS). The vulnerability is due to improper resource allocation when processing TCP packets directed to the device on specific Cisco Catalyst 4000 switches. An attacker could exploit this vulnerability by sending crafted TCP streams to an affected device. A successful exploit could cause the affected device to run out of buffer resources, impairing operations of control-plane and management-plane protocols, resulting in a DoS condition. This vulnerability can be triggered only by traffic that is destined to an affected device and cannot be exploited using traffic that transits an affected device Cisco stated.
In addition to the warnings, Cisco also [issued an advisory][8] for users to deal with problems in its IOS and IOS XE  Layer 2 (L2) traceroute utility program.  The traceroute identifies the L2 path that a packet takes from a source device to a destination device.
Cisco said that by design, the L2 traceroute server does not require authentication, but it allows certain information about an affected device to be read, including Hostname, hardware model, configured interfaces, IP addresses and other details.  Reading this information from multiple switches in the network could allow an attacker to build a complete L2 topology map of that network.
Depending on whether the L2 traceroute feature is used in the environment and whether the Cisco IOS or IOS XE Software release supports the CLI commands to implement the respective option, Cisco said there are several ways to secure the L2 traceroute server: disable it, restrict access to it through infrastructure access control lists (iACLs), restrict access through control plane policing (CoPP), and upgrade to a software release that disables the server by default.
**[ [Prepare to become a Certified Information Security Systems Professional with this comprehensive online course from PluralSight. Now offering a 10-day free trial!][9] ]**
Join the Network World communities on [Facebook][10] and [LinkedIn][11] to comment on topics that are top of mind.
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3441221/cisco-13-ios-ios-xe-security-flaws-you-should-patch-now.html
作者:[Michael Cooney][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Michael-Cooney/
[b]: https://github.com/lujun9972
[1]: https://tools.cisco.com/security/center/viewErp.x?alertId=ERP-72547
[2]: https://www.networkworld.com/article/3356838/how-to-determine-if-wi-fi-6-is-right-for-you.html
[3]: https://tools.cisco.com/security/center/softwarechecker.x
[4]: https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190925-ios-gos-auth
[5]: https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190925-identd-dos
[6]: https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190925-sip-dos
[7]: https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190925-cat4000-tcp-dos
[8]: https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190925-l2-traceroute
[9]: https://pluralsight.pxf.io/c/321564/424552/7490?u=https%3A%2F%2Fwww.pluralsight.com%2Fpaths%2Fcertified-information-systems-security-professional-cisspr
[10]: https://www.facebook.com/NetworkWorld/
[11]: https://www.linkedin.com/company/network-world

View File

@ -0,0 +1,51 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (MG Motor Announces Developer Program and Grant in India)
[#]: via: (https://opensourceforu.com/2019/09/mg-motor-announces-developer-program-and-grant-in-india/)
[#]: author: (Mukul Yudhveer Singh https://opensourceforu.com/author/mukul-kumar/)
MG Motor Announces Developer Program and Grant in India
======
[![][1]][2]
* _**Launched in partnership with Adobe, Cognizant, SAP, Airtel, TomTom and Unlimit**_
* _**Initiative provides developers to build innovative mobility applications and experiences**_
![][3]MG Motor India has today announced the introduction of its MG Developer Program and Grant. Launched in collaboration with leading technology companies such as SAP, Cognizant, Adobe, Airtel, TomTom and Unlimit, the initiative is aimed at incentivizing Indian innovators and developers to build futuristic mobility applications and experiences. The program also brings in TiE Delhi NCR as the ecosystem partner.
Rajeev Chaba, president &amp; MD, MG Motor India said, “The automobile industry is currently witnessing sweeping transformations in the space of connected, electric and shared mobility. MG aims to take this revolution forward with its focus on attaining technological leadership in the automotive industry. We have partnered with leading tech giants to enable start-ups to build innovative applications that would enable unique experiences for customers across the entire automotive ecosystem. More partners are likely to join the program in due course.”
The company is encouraging developers to send in their ideas to the MG India Team. During the program, selected ideas will get access to resources from the likes of Airtel, SAP, Adobe, Unlimit and Cognizant.
**Grants ranging up to Rs 25 lakhs (2.5 million) for start-ups and innovators**
As part of the MG Developer Program &amp; Grant, MG Motor India will provide innovators with an unparalleled opportunity to secure mentorship and funding from industry leaders. Shortlisted ideas will receive specialized, high-level mentoring and networking opportunities to assist with the practical development of the solution, business plan and modelling, testing facilities, go-to-market strategy, etc. Winning ideas will also have access to a grant, the amount of which will be decided by the jury, on a case-to-case basis.
The MG Developer Program &amp; Grant will initially focus on driving innovation in the following verticals: electric vehicles and components, batteries and management,  harging infrastructure, connected mobility, voice recognition, AI &amp; ML, navigation technologies, customer experiences, car buying experiences, and autonomous vehicles.
“The MG Developer &amp; Grant Program is the latest in a series of initiatives as part of our commitment to innovation as a core organizational pillar. The program will ensure proper mentoring from over 20 industry leaders for start-ups, laying a foundation for them to excel in the future and trigger a stream of newer Internet Car use-cases that will, in turn, drive adoption of new technologies within the Indian automotive ecosystem. It has been our commitment in the market and Innovation is our key pillar,” added Chaba.
The program will award grants ranging from INR5 lakhs to INR25 Lakhs. The program will be open to both external developers including students, innovators, inventors, startups and other tech companies and internal employee teams at MG Motor and its program partners.
--------------------------------------------------------------------------------
via: https://opensourceforu.com/2019/09/mg-motor-announces-developer-program-and-grant-in-india/
作者:[Mukul Yudhveer Singh][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensourceforu.com/author/mukul-kumar/
[b]: https://github.com/lujun9972
[1]: https://i0.wp.com/opensourceforu.com/wp-content/uploads/2019/09/MG-Developer-program.png?resize=660%2C440&ssl=1 (MG Developer program)
[2]: https://i0.wp.com/opensourceforu.com/wp-content/uploads/2019/09/MG-Developer-program.png?fit=660%2C440&ssl=1
[3]: https://i0.wp.com/opensourceforu.com/wp-content/uploads/2019/09/MG-Developer-program.png?resize=350%2C233&ssl=1

View File

@ -0,0 +1,66 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (IBM brings blockchain to Red Hat OpenShift; adds Apache CouchDB for hybrid cloud customers)
[#]: via: (https://www.networkworld.com/article/3441362/ibm-brings-blockchain-to-red-hat-openshift-adds-apache-couchdb-for-hybrid-cloud-customers.html)
[#]: author: (Michael Cooney https://www.networkworld.com/author/Michael-Cooney/)
IBM brings blockchain to Red Hat OpenShift; adds Apache CouchDB for hybrid cloud customers
======
IBM adds Red Hat OpenShift support to its blockchain platform and is bringing a Kubernetes Operator for Apache CouchDB into its hybrid cloud service
Bigstock
IBM continued its Red Hat and open-source integration work this week by adding Red Hat OpenShift support to its [blockchain][1] platform and bringing a Kubernetes Operator for Apache CouchDB along side its [hybrid-cloud][2] services offering. 
The ability to deploy [IBM Blockchain on Red Hat OpenShift][3], the companys flagship enterprise Kubernetes platform, means IBM Blockchain developers will have the ability  to deploy secure software, either on-premises, in public clouds or in hybrid cloud architectures.
Blockchain is a distributed database that maintains a continually growing list of records that can be verified using hashing techniques, and the IBM Blockchain Platform includes tools to build, operate, govern and grow protected blockchain networks.
IBM says its blockchain/OpenShift combination is targeted at companies that want to keep a copy of the blockchain ledger and run workloads on their own infrastructure for security, risk mitigation or compliance; need to store data in specific locations to meet data-residency requirements; and need to deploy blockchain components in multiple cloud or hybrid-cloud architectures.
Since finalizing its acquisition of Red Hat in July, IBM has been assembling an ecosystem of cloud development around Red Hats Kubernetes-based OpenShift Container Platform. Most recently Big Blue fused its [new z15 mainframe with IBMs Red Hat][4] technology saying it will deliver IBM z/OS Cloud Broker for the Red Hat OpenShift container platform. This offering will provide direct, self-service access of z/OS computing resources to users through connectivity to Kubernetes containers.
IBM said it intends to deliver IBM [Cloud Pak offerings][5] to Linux on IBM z and LinuxONE offerings. Cloud Paks are bundles made up of Open-Shift with more than 100 other IBM software products. LinuxONE is IBMs highly successful mainframe system designed specifically to support Linux environments.
The vision is for OpenShift-enabled IBM software to become the foundational building blocks customers use to transform their organizations, IBM said.
**** From HPE: [Achieve Compliant, Cost-effective Hybrid Cloud Operations][6]. An expert guide for fine-tuning oversight and operations of hybrid cloud investments. (Sponsored) ****
“Most of our customers want solutions that support hybrid-cloud workloads and the flexibility to run those workloads anywhere, and z/OS Cloud Broker for Red Hat will be the central point for how we enable cloud-native on the platform,” IBM said.
In related news IBM announced support for the open source Apache CouchDB, a Kubernetes Operator for [Apache CouchDB][7] and that the Operator has been certified to work with Red Hat OpenShift.  The Operator automates deploying, managing and maintaining Apache CouchDB deployments. Apache CouchDB is a non-relational,  open-source NoSQL database.  
In a recent [Forrester Wave report][8], researchers said, “Enterprises like NoSQL's ability to scale out using low-cost servers and a flexible, schemaless model that can store, process and access any type of business data. NoSQL platforms give enterprise architecture pros greater control over data storage and processing, along with a configuration that accelerates application deployments. While many organizations are complementing their relational databases with NoSQL, some have started to replace them to support improved performance, scale and lower their database costs.”
Currently IBM Cloud uses the Cloudant Db service as its standard database for new cloud-native applications. Bolstering support for the CouchDB gives users alternatives and backup options, IBM said. And being able to tie it all into Red Hat OpenShift Kubernetes deployments can let customers use database-native replication capabilities to maintain low-latency access to data as they deploy applications and move data across multiple cloud environments, IBM stated.
“Our clients are turning to containerization and [microservice][9]-oriented architectures to improve speed, agility and operational capabilities. In cloud-native application development, applications need to have a data layer that allows for scalability, portability and resiliency,” wrote Adam Kocoloski, IBM Fellow and Vice President, Cloud Databases. “We believe that data portability and CouchDB significantly improve the capabilities of multi-cloud architectures, allowing customers to build solutions that are truly portable across private clouds, public clouds and edge locations.”
Join the Network World communities on [Facebook][10] and [LinkedIn][11] to comment on topics that are top of mind.
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3441362/ibm-brings-blockchain-to-red-hat-openshift-adds-apache-couchdb-for-hybrid-cloud-customers.html
作者:[Michael Cooney][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Michael-Cooney/
[b]: https://github.com/lujun9972
[1]: https://www.networkworld.com/article/3330937/how-blockchain-will-transform-the-iot.html
[2]: https://www.networkworld.com/article/3268448/what-is-hybrid-cloud-really-and-whats-the-best-strategy.html
[3]: https://www.ibm.com/blogs/blockchain/2019/09/ibm-blockchain-platform-meets-red-hat-openshift/
[4]: https://www.networkworld.com/article/3438542/ibm-z15-mainframe-amps-up-cloud-security-features.html
[5]: https://www.networkworld.com/article/3429596/ibm-fuses-its-software-with-red-hats-to-launch-hybrid-cloud-juggernaut.html
[6]: https://www.networkworld.com/article/3400740/achieve-compliant-cost-effective-hybrid-cloud-operations.html
[7]: https://www.ibm.com/cloud/learn/couchdb
[8]: https://reprints.forrester.com/#/assets/2/363/RES136481/reports
[9]: https://www.networkworld.com/article/3137250/what-you-need-to-know-about-microservices.html
[10]: https://www.facebook.com/NetworkWorld/
[11]: https://www.linkedin.com/company/network-world

View File

@ -0,0 +1,74 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How a simpler mmWave architecture can connect IoT)
[#]: via: (https://www.networkworld.com/article/3440498/how-a-simpler-mmwave-architecture-can-connect-iot.html)
[#]: author: (Patrick Nelson https://www.networkworld.com/author/Patrick-Nelson/)
How a simpler mmWave architecture can connect IoT
======
Upcoming 5G millimeter wave frequencies are being bandied as a good, solid network for IoT. But some say they may be too elaborate. A stripped-down version of millimeter wave technology may be the solution.
Cofotoisme / Getty Images
Current wireless technologies, such as Wi-Fi, wont provide enough support for the billions of internet of things (IoT) sensors and networks that are expected to come on stream in the next few years, say researchers. More speed, efficiency and bandwidth will be needed. Plus, the equipment must cost significantly less than existing gear, including upcoming 5G equipment.
To address the issue, scientists at University of Waterloo are developing a stripped-down version of millimeter wave technology.
“A growing strain will be placed on requirements of wireless networks,” the researchers say in an [article announcing a new low-power, low-cost 5G network technology][1] that it calls mmX. They say the technology is specifically geared towards IoT.
“Millimeter wave offers multi-gigahertz of unlicensed bandwidth. More than 200 times that allocated to today's Wi-Fi and cellular networks,” the article says. Thats “in comparison to Wi-Fi and Bluetooth, which are slow for many IoT applications.”
**[ Also see: [What is edge computing?][2] and [How edge networking and IoT will reshape data centers][3] ]**
However, upcoming, ultra-fast, ultra-high capacity 5G networks, which will take advantage of millimeter wave, use considerable amounts of electrical energy and computing power, the researchers say. That means they aren't good for the low-cost, low-power IoT devices of the kind were going to see in many use cases. New devices must be low-power because they need to stay up longer, preferably indefinitely. Therefore, the idea of just adding power-intensive millimeter radios to the networks defeats the object to a certain extent. There needs to be more of a stripped-down millimeter network.
“We address the key challenges that prevent existing mmWave technology from being used for such IoT devices,” the researcher say in their [the SIGCOMM 19-published paper][4].
The problem with current wireless technologies isnt so much that theres anything fundamentally wrong with them, but that new IoT devices have triggered changes in requirements from incumbent radios, such as in todays smartphones, and also that new devices function with a low-rate modulation scheme—rates much lower than channel capacity, in other words. Both are inefficient in use of spectrum.
**** From HPE: [ITaaS and Corporate Storage Technology][5]: This blog explains why pay-per-use IT models, such as ITaaS, could be the next chapter in IT infrastructure. (Sponsored) ****
### Beam searching prevents mmWave from being used for IoT
The researchers say they have identified high-power consumption, expensive hardware, and beam searching as the key culprits that will prevent mmWave from being adopted for IoT implementation.
Beam searching, for example, is a limitation of regular mmWave. Its where power is focused to prevent the signal path-loss from decaying, but it is computationally complex, is expensive, and uses a lot of energy. That all adds to overhead. The researchers say they can eliminate beam searching through a form of over-the-air modulation where the signal isnt modulated before transmission but during the transmission. That “eliminates the need of beam searching in mmWave radios,” they say. They also reduce the amount of feedback data needed from access points, which also helps.
Another special feature mmX offers is that its hardware is a simple Raspberry Pi add-on board, allowing the “networking community” to easily experiment. Twenty-five million Raspberry Pi development computers have reportedly been sold as of earlier this year. 
Energy efficiency is “even lower than existing Wi-Fi modules,” the researchers claim. Their mmX is “a far more efficient and cost-effective architecture for imminent IoT applications,” they say.
**More about edge networking:**
* [How edge networking and IoT will reshape data centers][3]
* [Edge computing best practices][6]
* [How edge computing can help secure the IoT][7]
Join the Network World communities on [Facebook][8] and [LinkedIn][9] to comment on topics that are top of mind.
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3440498/how-a-simpler-mmwave-architecture-can-connect-iot.html
作者:[Patrick Nelson][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Patrick-Nelson/
[b]: https://github.com/lujun9972
[1]: https://uwaterloo.ca/news/news/researchers-develop-low-power-low-cost-network-5g
[2]: https://www.networkworld.com/article/3224893/internet-of-things/what-is-edge-computing-and-how-it-s-changing-the-network.html
[3]: https://www.networkworld.com/article/3291790/data-center/how-edge-networking-and-iot-will-reshape-data-centers.html
[4]: https://dl.acm.org/citation.cfm?id=3342068
[5]: https://www.networkworld.com/blog/itaas-and-the-corporate-storage-technology/
[6]: https://www.networkworld.com/article/3331978/lan-wan/edge-computing-best-practices.html
[7]: https://www.networkworld.com/article/3331905/internet-of-things/how-edge-computing-can-help-secure-the-iot.html
[8]: https://www.facebook.com/NetworkWorld/
[9]: https://www.linkedin.com/company/network-world

View File

@ -0,0 +1,66 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Most enterprise networks can't handle big data loads)
[#]: via: (https://www.networkworld.com/article/3440519/most-enterprise-networks-cant-handle-big-data-loads.html)
[#]: author: (Andy Patrizio https://www.networkworld.com/author/Andy-Patrizio/)
Most enterprise networks can't handle big data loads
======
As more data moves through the network, efforts to keep up are lagging due to leadership and technology issues.
Metamorworks / Getty Images
Another week, another survey that finds IT cannot keep up with the ever-expanding data overload. This time the problem surrounds network bandwidth and overall performance.
[A survey of 300 IT professionals][1] conducted by management consultant firm Accenture found the majority feel their enterprise networks are not up to the task of handling big data and internet of things (IoT) deployments. Only 43% of those companies polled said their networks are ready to support the cloud, IoT, and other digital technologies.
**[ Learn more about SDN: Find out [where SDN is going][2] and learn the [difference between SDN and NFV][3]. | Get regularly scheduled insights: [Sign up for Network World newsletters][4]. ]**
A key reason (58%) is a “misalignment between IT and business needs” that is slowing those rollouts. That is an unusual finding, since 85% of respondents also reported that their networks were completely or mostly ready to support the business digital initiatives. So which is it?
The second and third most commonly cited barriers were “inherent complexities between business requirements and operational needs” and “demands for bandwidth, performance, etc. outpacing the ability to deliver” at 45% each.
Network bottlenecks continue to grow as the sheer amount of data being pumped over the wires continues to increase thanks to analytics and other big data technologies. The survey found that bandwidth demands were not being met and current network performance continues to fall short.
Other reasons cited were lack of networking skills, device sprawl, and aging equipment.
### One solution to network performance woes: SDN
Accenture found that most firms said [software-defined networks (SDN)][5] were the solution for bandwidth and performance challenges, with 77% of those surveyed reporting they were in the process of deploying SDN or have completed the deployment. It qualified that, noting that while SDN may be in place in parts of the organization, it is not always rolled out uniformly enterprise-wide.
**** From HPE: [ITaaS and Corporate Storage Technology][6]: This blog explains why pay-per-use IT models, such as ITaaS, could be the next chapter in IT infrastructure. (Sponsored) ****
Now, while it seems no one ever has enough budget for all of their IT ambitions, 31% of those surveyed describe funding network improvements as “easy” and within the network infrastructure teams control, with CIOs/CTOs being much more likely to report the funding process as “easy” (40%), compared to their direct reports (13%) or directors and vice presidents of infrastructure/network (19%). 
Saying, "Legacy networks alone cannot support the innovation and performance required in the digital age," the report calls for embracing new technologies, without saying SDN by name. It also called for greater collaboration between the C suite and their direct reports because it was clear there was a disconnect between how the two sides viewed things.
"We believe a new network paradigm is needed to ensure networks meet current and future business needs. However, although there are signs of progress, the pace of change is slow. Companies must undertake significant work before they achieve a unified and standardized enterprise capability that will offer the bandwidth, performance and security necessary to support business needs today—and tomorrow," the report concluded.
**[ Now see: [How network pros acquire skills for SDN, programmable networks][7] ]**
Join the Network World communities on [Facebook][8] and [LinkedIn][9] to comment on topics that are top of mind.
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3440519/most-enterprise-networks-cant-handle-big-data-loads.html
作者:[Andy Patrizio][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Andy-Patrizio/
[b]: https://github.com/lujun9972
[1]: https://www.accenture.com/_acnmedia/pdf-107/accenture-network-readiness-survey.pdf#zoom=50
[2]: https://www.networkworld.com/article/3209131/lan-wan/what-sdn-is-and-where-its-going.html
[3]: https://www.networkworld.com/article/3206709/lan-wan/what-s-the-difference-between-sdn-and-nfv.html
[4]: https://www.networkworld.com/newsletters/signup.html
[5]: https://www.networkworld.com/article/3209131/what-sdn-is-and-where-its-going.html
[6]: https://www.networkworld.com/blog/itaas-and-the-corporate-storage-technology/
[7]: https://www.networkworld.com/article/3405522/how-network-pros-acquire-skills-for-sdn-programmable-networks.html
[8]: https://www.facebook.com/NetworkWorld/
[9]: https://www.linkedin.com/company/network-world

View File

@ -0,0 +1,79 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (The 10 most powerful companies in IoT)
[#]: via: (https://www.networkworld.com/article/3440857/the-10-most-powerful-companies-in-iot.html)
[#]: author: (Jon Gold https://www.networkworld.com/author/Jon-Gold/)
The 10 most powerful companies in IoT
======
The [Internet of Things][1] is still very much a growth industry. As a technology area whose development is dictated by the needs of the operational side of any given business, its a new challenge for traditional IT companies and one that gives them an unusual array of competitors. But there are always going to be a few companies that set the tone, and weve collected what we think are the 10 most powerful players in the IoT sector right now.
A word on methodology. We began by looking at about 25 prominent corporate names in IoT, comparing them based on how innovative their technology is, their market share and solution depth and breadth.
**More on IoT:**
* [What is edge computing and how its changing the network][2]
* [10 Hot IoT startups to watch][3]
* [The 6 ways to make money in IoT][4]
* [What is digital twin technology, and why it's important to IoT][5]
* [Blockchain, service-centric networking key to IoT success][6]
* [Getting grounded in IoT networking and security][7]
* [Building IoT-ready networks must become a priority][8]
* [What is the Industrial IoT? [And why the stakes are so high]][9]
What we mean by the latter two terms is fairly straightforward. Depth refers to how much of the stack in a given IoT implementation that a companys products are designed to handle, while breadth refers to how many different verticals to which those products are relevant.
Market share can be difficult to measure, so we offer those estimates based mostly on extensive conversations with and data provided by analysts. Finally, where innovation is concerned, we tried to get a sense of the degree to which a given companys technology is unique or at least much-imitated by its competitors.
Here's the 10 most powerful in alphabetical order.
### Accenture
_Innovation:_ Accenture isnt known for its in-house technical wizardry, and the secret sauce here is the companys expertise at bringing in hardware and software from its partners, including Microsoft, Amazon and Cisco, which in itself is quite an achievement. The company refers to it as “connected platforms as a service,” or CPaaS.
_Market Share:_ Directly quantifying IoT market share is a difficult exercise, but Accentures one of the best-known integrators on the market, bringing together platform providers, hardware manufacturers and makers of specialist solutions.
_Depth of solution:_ Per Gartners latest IIoT Magic Quadrant report, the combination of open-source IP and Accentures own, usually acquired, tech makes for an “extensible and configurable” IoT platform. Ironically, it can be something of a walled garden. Once youre working with Accenture, youre mostly locked into working with its partners, Gartner notes, but that partner ecosystem is still quite extensive.
_Breadth of solution:_ Accentures made a successful business out of helping enterprises in a wide variety of industries get their technology to work for them, so theyve got a broad base of vertical-specific knowledge to call on for IoT, which is a critically important thing to have.
### Amazon Web Services
_Innovation:_ The fully integrated approach to IoT analytics which lets AWS bring its formidable array of data analysis and machine learning tools together with several purpose-built frameworks for IoT insights and control is now par for the course among big public cloud providers offering themselves up as a general purpose IoT back-end. But AWS was the first one to pull all those elements together in a meaningful way and has set the standard.
To continue reading this article register now
[Get Free Access][10]
[Learn More][11]   Existing Users [Sign In][10]
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3440857/the-10-most-powerful-companies-in-iot.html
作者:[Jon Gold][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Jon-Gold/
[b]: https://github.com/lujun9972
[1]: https://www.networkworld.com/article/3207535/what-is-iot-how-the-internet-of-things-works.html
[2]: https://www.networkworld.com/article/3224893/internet-of-things/what-is-edge-computing-and-how-it-s-changing-the-network.html
[3]: https://www.networkworld.com/article/3270961/internet-of-things/10-hot-iot-startups-to-watch.html
[4]: https://www.networkworld.com/article/3279346/internet-of-things/the-6-ways-to-make-money-in-iot.html
[5]: https://www.networkworld.com/article/3280225/internet-of-things/what-is-digital-twin-technology-and-why-it-matters.html
[6]: https://www.networkworld.com/article/3276313/internet-of-things/blockchain-service-centric-networking-key-to-iot-success.html
[7]: https://www.networkworld.com/article/3269736/internet-of-things/getting-grounded-in-iot-networking-and-security.html
[8]: https://www.networkworld.com/article/3276304/internet-of-things/building-iot-ready-networks-must-become-a-priority.html
[9]: https://www.networkworld.com/article/3243928/internet-of-things/what-is-the-industrial-iot-and-why-the-stakes-are-so-high.html
[10]: javascript://
[11]: https://www.networkworld.com/learn-about-insider/

View File

@ -0,0 +1,114 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (DeviceHive: The Scalable Open Source M2M Development Platform)
[#]: via: (https://opensourceforu.com/2019/09/devicehive-the-scalable-open-source-m2m-development-platform/)
[#]: author: (Dr Anand Nayyar https://opensourceforu.com/author/anand-nayyar/)
DeviceHive: The Scalable Open Source M2M Development Platform
======
[![][1]][2]
_DeviceHive provides powerful instruments for smart devices to communicate and manage services. It incorporates three critical technologies that affect mobile developers and users— the cloud, mobile and embedded systems. It consists of a communication layer, control software and multi-platform libraries and clients to bootstrap the development of remote sensing, remote control, monitoring and automation, smart energy, etc._
Today, people look for easy ways to get things done and the best example of this is automation. Machine-to-machine (M2M) communication aims to connect everyday objects and allows them (these non-human content providers) to feed the Internet with data in various formats, frequently. M2M communication is the latest trend in the evolution of industry, combining technology with data communication between devices or machines.
M2M technology was first implemented in the manufacturing and industrial sectors, where other technologies like SCADA and remote monitoring helped to remotely manage and control data from equipment. M2M communications is all about direct inter-device communications, through which a robot or machine controls other machines. It can be used to more effectively monitor the condition of critical public infrastructure such as water treatment facilities or bridges, with less human intervention.
Making a machine-to-machine communications system work is a step by step procedure. The three main elements in this process are: sensors (that acquire data from the operational environment and transmit it wirelessly), peer-to-peer wireless networks, and Internet enabled PCs. The most common types of M2M communications are listed below.
* _**Backend-to-backend:**_ This is all about transmitting device logs over the Internet to the cloud provider. It also works for schedulers, daemons and continuous processes.
* _**IoT devices:**_ These small connected units put together data from small, autonomous, specialised devices at the server.
* _**CLI clients:**_ This is the creation of CLI apps that have the necessary rights to perform the actions, but which are only available on certain computers.
The following points highlight the architecture and components of M2M communication.
* _**M2M devices:**_ These are devices that are capable of replying to the request for data contained within those devices or capable of transmitting data in an autonomous manner. Examples are sensors, WPAN technologies like ZigBee or Bluetooth, LoWPAN, etc.
* _**M2M area network (device domain):**_ This enables connectivity between M2M devices and M2M gateways. An example is a personal area network.
* _**M2M gateway:**_ This utilises M2M capabilities to ensure M2M devices are interoperable and interconnected to the communications network. Gateways and routers are endpoints of the operators network in scenarios where sensors and M2M devices connect to the network.
* _**M2M communication networks:**_ These comprise communication between M2M gateways and M2M applications. Examples are xDSL, LTE, WiMAX and WLAN.
* _**M2M applications:**_ All M2M applications are based on assets provided by the operator. Examples are IoT based smart homes, e-health, m-health, telemedicine and the Internet of Medical Things, vending machines, smart parking systems, autonomous store payments and wireless payment systems, digital control systems in factories, smart IIoT, industrial monitoring, etc.
There are various M2M open source development platforms. In this article, the primary focus is on DeviceHive, an open source M2M development platform.
![Figure 1: DeviceHive microservices architecture][3]
**Introducing DeviceHive**
DeviceHive was created and launched by DataArt, a boutique software development and outsourcing company in New York city, as an open source M2M communications framework using which developers could design M2M projects. It provides powerful instruments for smart devices to communicate and manage services. It incorporates three critical technologies that affect mobile developers and users— the cloud, the mobile and embedded. It consists of a communications layer, control software and multi-platform libraries and clients to bootstrap the development of remote sensing, remote control, monitoring and automation, smart energy, etc.
DeviceHive provides a strong foundation and building support to create or customise any IoT/M2M solution, bridging the gap between embedded development, cloud platforms, Big Data and client applications. It is a scalable, hardware and cloud agnostic microservice-based platform with device-management APIs in varied protocols, which allows end users to set up and monitor device connectivity, and perform data analytics.
**Features**
Listed below are the features of DeviceHive.
* **Deployment:** DeviceHive facilitates innumerable deployment options and is suitable for every organisation, whether a startup or big enterprise. It includes Docker Compose and Kubernetes deployment to facilitate the development of public, private or hybrid clouds. Various DeviceHive services are started using Docker Compose — DeviceHive Frontend service, DeviceHive backend service, DeviceHive Auth service, DeviceHive Admin Console, DeviceHive WebSocket Proxy, DeviceHive Nginx Proxy, Kafka, PostgreSQL and Hazelcast IMDG.
* **Scalability:** DeviceHive includes outstanding software design practices like a container service oriented architecture approach, managed and orchestrated by Kubernetes, which brings about scalability and availability in seconds.
* **Connectivity:** It supports connectivity with any device via the REST API, WebSockets or MQTT. It supports libraries written in varied languages — both Android and iOS. It even supports embedded devices like ESP8266.
* **Seamless integration:** DeviceHive supports seamless integration with voice assisted services like Google, Siri and Alexa by enabling users to run customised JavaScript code.
* **Smart analytics:** It supports smart analytics using ElasticSearch, Apache Spark, Cassandra and Kafka for real-time processes. It also facilitates machine learning support.
* **Open source:** Comes under the Apache 2.0 licence for free use, and end users are supported by DataArts IoT professionals.
**Protocols, client libraries and devices supported by DeviceHive**
Protocols: DeviceHive supports the REST, WebSocket API and MQTT protocols. In addition to this, for all RESTful services, it provides the Swagger API tool to test installation and other capabilities.
**Client/device libraries:** DeviceHive supports numerous device libraries — the .NET framework, .NET Micro Framework, C++, Python and C (microcontrollers).
**Client libraries:** These include the .NET framework, iOS and the Web/JavaScript.
**Device support**: DeviceHive supports any device with Python, Node.js or Java based Linux boards via the DeviceHive Client library. It also supports the ESP8266 chip with a simple API to handle all types of sensors for things like temperature (DS18B20, LM75A/LM75B/LM75C, DHT11 and DHT22) and pressure (BMP180, BMP280, etc).
DeviceHive is a microservice based system, with high scalability and availability. Figure 1 highlights the microservices architecture of DeviceHive.
**Components of DeviceHive**
The following are the components of DeviceHive.
* **PostgreSQL:** This is the backend database to store all the data with regard to devices, networks, users, device types and configuration settings.
* **Hazelcast IMDG:** This is a clustered, in-memory data grid that uses sharding for data distribution and supports monitoring. All notifications are saved to a distributed cache storage for speedy access, and this can be removed in 2 minutes.
* **Message Bus (Kafka):** This supports communication between services and load balancing, as Kafka is a fast, distributed and fault-tolerant messaging system. In DeviceHive, the WebSocket Kafka proxy is used. It is written in Node.js because of flexibility in messaging.
* **DeviceHive frontend service:** This supports the RESTful and WebSocket APIs, performing all sorts of primary checks, sending requests to backend services and delivering responses in an asynchronous manner.
* **DeviceHive backend service:** This stores data in Hazelcast to manage subscriptions and retrieve data via requests from other services, from Hazelcast or from the database.
* **DeviceHive Auth service:** This contains information regarding the access control of users, the devices connected, network types and device types. It provides the RESTful API for generating, validating and refreshing tokens.
* **DeviceHive plugin service:** DeviceHive plugin support can help users to register devices, and define network types with the required JWT tokens. All the plugins are created in Node.js, Python and Java.
**DeviceHive API**
DeviceHive API acts as a central component of the framework to facilitate communication and interaction with varied components. The API is responsible for providing access to information regarding all the components registered in the system in order to exchange messages in real-time scenarios.
The DeviceHive API has three types of consumers:
* Client
* Administrator
* Device
_**Client:**_ This is regarded as an application to control and administer devices. It can be an interface or software to manage the entire network.
_**Administrator:**_ This controls the whole environment with full access to all components. It can create and manage API users, device networks, and all notifications and commands.
_**Device:**_ This is termed as an individual unit with a unique identifier, name and other meta-information to communicate with the API. It takes commands from other components and executes them in an efficient manner.
--------------------------------------------------------------------------------
via: https://opensourceforu.com/2019/09/devicehive-the-scalable-open-source-m2m-development-platform/
作者:[Dr Anand Nayyar][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensourceforu.com/author/anand-nayyar/
[b]: https://github.com/lujun9972
[1]: https://i1.wp.com/opensourceforu.com/wp-content/uploads/2019/09/DeviceHive-IoT-connectivity-Illustration.jpg?resize=696%2C412&ssl=1 (DeviceHive IoT connectivity Illustration)
[2]: https://i1.wp.com/opensourceforu.com/wp-content/uploads/2019/09/DeviceHive-IoT-connectivity-Illustration.jpg?fit=800%2C474&ssl=1
[3]: https://i1.wp.com/opensourceforu.com/wp-content/uploads/2019/09/Figure-1-DeviceHive-microservices-architecture.jpg?resize=350%2C180&ssl=1

View File

@ -0,0 +1,146 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (10 counterintuitive takeaways from 10 years of DevOpsDays)
[#]: via: (https://opensource.com/article/19/9/counterintuitive-takeaways-devopsdays)
[#]: author: (KrisBuytaert https://opensource.com/users/krisbuytaert)
10 counterintuitive takeaways from 10 years of DevOpsDays
======
DevOps veteran Kris Buytaert, who was there at the founding of
DevOpsDays, shares lessons learned that might surprise you.
![gears and lightbulb to represent innovation][1]
Ten years ago, we started an accidental journey. We brought together some of our good friends in Ghent, Belgium, to discuss our agile, open source, and early cloud experiences. [Patrick Debois][2] coined the event #DevOpsdays after [John Allspaw][3] and [Paul Hammond][4]'s talk from Velocity 2009, "10+ deploys per day: dev and ops cooperation at Flickr" (which is well [worth watching][5]).
![Celebrate 10 years of DevOps Days where it all began: Ghent][6]
Now, 10 years later, the world is different. DevOps is everywhere, right? Or is it really? I have been going to [DevOpsDays][7] events since that founding, and I have learned quite a lot from my experience. Here are 10 takeaways I hope you can learn from as well.
### 1\. There is no such thing as a DevOps engineer.
Plenty of people now have "DevOps engineer" as a job title, and lots of them don't like the title. The title gives the false impression that DevOps is a job that a single "DevOp" can achieve. Most often, a DevOps engineer is a Linux engineer who, if they're lucky, does a little bit of automation. When recruiters start looking for a DevOps engineer, applicants need to ask themselves the right questions, starting with: "What does the company actually need from an applicant?" Are they looking for a build engineer, a senior developer who understands non-functional requirements, a senior operations person who can automate things, or something else entirely? Most often, what they are really looking for is someone who will turn their eyes away from the lack of agile principles in practice.
In an organization with a lot of DevOps engineers, it very often means that no DevOps is happening. A DevOps title is a sign of a new silo, and an applicant could make good money and learn new skills on the job, but they will not be "doing DevOps."
### 2\. There is no such thing as a DevOps team.
In the early days, we often said DevOps is about removing the walls of confusion between different teams, developers, and ops, about breaking down the silos. Yet somewhere along the journey, we saw a new phenomenon: the rise of the DevOps team.
"DevOps team" sounds like a new practice, but the inconsistencies across organizations are clear. In one organization, it's the team in charge of tooling, in another, it literally is the silo between the dev and the ops teams—a silo that creates more confusion, more frustration, and less collaboration. In the best of cases, it occasionally is the cross-functional team with end-to-end responsibility for the service they are building. Those teams typically prefer not to be called a DevOps team.
Calling a team "DevOps," I have found, will likely hinder the outcomes you're aiming for with DevOps.
### 3\. There is no such thing as a DevOps project.
A "project" by nature is finite. It is something you build, deliver, and then move on from. A consistent theme from 10 years of talks is that DevOps is about continual improvement, and continual improvement is never complete. Similarly, the output of these supposed projects are long-term _services_, and a service is something you build, deliver, and keep running.
It's only after we think about how services extend beyond projects that we start to see the things that are easily forgotten: non-functional requirements (NFRs). NFRs include functionality that does not fit neatly into a specific behavior. NFRs define how we judge the operation of a system. They often include all the "-ilities" you hear around DevOps: securability, reliability, usability, maintainability, and scalability. All of which are essential to the business outcome.
There is risk in the lack of empathy needed to think in short-term projects. When you have moved on to another project, you won't be as concerned with NFRs, since you're busy with a new challenge and it's someone else's problem now. However, when you run a service, you do care, and it is in your best interest to reduce the friction to keep things running smoothly.
### 4\. There is no such thing as a DevOps tool.
While many vendors will try to [sell you one][8], even the ultimate one, DevOps is not about tooling. It is about humans and collaboration. Some tools help people collaborate; often they give people with different backgrounds a shared terminology and a shared ecosystem; but equally often, the popular tools work against collaboration.
A tool-focused culture is one that can isolate people more than it helps them collaborate, as people become obsessed with their toolchain and distance themselves from those not using it. While technically, they might be awesome tools and help us in some areas, a bunch of the new, so-called DevOps tools have widened the gap between different groups. For instance, I often hear "it works in my container" is a statement that developers make to define that "their" work is done. Containers alone do not solve the collaboration challenges needed to run applications effectively. We can't let tools become the new silos.
### 5\. There is no such thing as DevOps "certified."
No multiple-choice test can confirm that you, as an individual, collaborate with your colleagues. Organizations that offer certifications may have the most excellent advice on technology and even principles of collaboration, but a certificate cannot show that someone is good at DevOps.
It is unfortunate that management teams require certificates in something we can't be certified in. Be educated in your favorite software, hardware, or cloud. Attend a local university and read the books that will educate you, such as those by [Deming][9], [Forsgren][10], [Humble][11], and [others][12]. But don't expect to become excellent at DevOps from a certification; it's more important to work with your coworkers.
### 6\. There is no such thing as a DevOps pipeline.
"Is the DevOps done yet?" "The DevOps pipeline is running." "The DevOps pipeline is broken." Whenever I hear these statements, I wonder how we got to such a term. Did we just rebrand a delivery pipeline, or is it because some companies are starting DevOps teams that manage the infrastructure for the pipeline? Or is it because the developers call the ops when the pipeline is broken?
While introducing continuous integration and continuous delivery (CI/CD) principles has a huge impact on an organization, the "DevOps pipeline" term is used in a way that I see as blame-inducing. Ops teams are at fault when the dev's pipeline is broken. Dev teams don't worry about failing pipelines as long as they wrote tests.
The concept is also misleading. Pipelines are aligned to a service or application, not to all of DevOps. When we generalize pipelines, we run the risk of encouraging silos between teams, which will leave us far from the goals of DevOps.
What I do recommend is what I've seen in hundreds of organizations across the world: Call the pipeline for Application X the Application X pipeline. This way, we'll know what application has trouble getting through its tests, getting deployed, or getting updated. We will also know the team responsible for Application X, which will be busy trying to fix it, maybe with some help from their ops friends.
### 7\. There is no such thing as standard DevOps.
The toughest news from thousands of DevOps stories across the globe is standardization. Just like we can't certify people, there is also no-one-size-fits-all standard; every organization is on a different step in their journey, a different journey than other organizations. There is no magic recipe in which you implement a number of tools, set up a number of automated flows, and suddenly you are DevOps.
A standard DevOps would mean that you implement a recipe, and suddenly the organization starts to collaborate, drops office politics, improves quality, increases morale, and is on the fast track to higher earnings with fewer outages.
DevOps is better understood as a body of practice similar to [ITIL][13]. Remember the L in ITIL stands for Library, a library with best practices to cherrypick from—not an instruction manual. Lots of the hate against ITIL came from those (failed) implementations that took the library as a detailed instruction manual. Standardized DevOps will bear the same fruits.
### 8\. There is no such thing as DevSecOps.
From the very beginning in 2009, we started DevOpsDays as a place to invite everybody. Sure, the initial battleground was visible with developers and operations people, but everybody was included: database administrators, testers, business, finance, and, yes, also security. Even as early as 2012, we were giving talks at [OWASP][14] meetups, evangelizing what we did. We joked that the "s" in DevOps stood for security, just like the "S" in HTTPS.
DevOps is inherently about security. I have found the greatest success in organizational adoption of continuous delivery comes from security teams. CD is a security requirement: you _need_ to have the ability to deploy whenever you want so that you can deploy and upgrade when you need to for business or security reasons.
On the one hand, it is sad that we have to invent a word to get the security folks included. On the other hand, it's good to have the discussion again. Fundamentally, there is no difference between DevSecOps and DevOps. Security has always been part of the development and operations mindset. I'll call it DevSecOps if that helps, but it's okay to just call it DevOps.
### 9\. There is no such thing as a finished DevOps transition.
Have you ever seen an organization that said, "We'll do the DevOps project in Q4, and by next year we'll be DevOps"—and succeeded? Neither have I.
Software delivery never stops, technology always changes, maintenance will be required, and—ideally—the DevOps mindset stays around. Once you have improved your delivery approach, you will want to keep improving. It won't be because your application is feature-complete or that the ecosystem it lives in has stopped evolving. It will be because the quality of your work improves exponentially, and many experience a similar improvement in their quality of life. DevOps will continue long after someone calls the effort "done."
### 10\. There is such a thing as DevOops.
Unfortunately, many people have not caught onto the importance of collaboration. They, often unintentionally, build silos, hold tools in higher regard than practices, require certification, and believe all the other nine takeaways. And they will struggle to succeed in a way that I like to call DevOops.
To DevOops is to hold the tools and the silos in higher regard than the principles of DevOps that will improve your work. May we all be more DevOpsy and less DevOopsy.
### The main takeaway
Throughout the 10 years of DevOpsDays events, many thousands of people around the world have learned from each other in a collaborative and open environment. Some concepts that I find to be counter to the goals of DevOps and agile are popular. Stay focused on making your services run well at your company, and learn along the way. That won't mean a copy-and-paste effort of tools or dashboards. It will mean focusing on continually improving in every way.
Good luck, and I hope to see you at the 10 year celebration at [DevOpsDays Ghent October 29-30th][15]. We have a great line up of speakers, including: 
* [Patrick Debois][2] will talk about [Connect all the business pipelines][16]
* [Bryan Liles][17] on [Sysadmins to DevOps: Where we came from and where we are going][18]
* [Bridget Kromhout][19] on [distributed DevOps][20]
* [Ant Stanley][21] on [how serverless design patterns change nothing [for DevOps]][22]
* [Julie Gundersen][23] on [being an Advocate for DevOps][24]
See you soon, back where it all began.
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/9/counterintuitive-takeaways-devopsdays
作者:[KrisBuytaert][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/krisbuytaert
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/innovation_lightbulb_gears_devops_ansible.png?itok=TSbmp3_M (gears and lightbulb to represent innovation)
[2]: https://twitter.com/patrickdebois
[3]: https://twitter.com/allspaw
[4]: https://twitter.com/ph
[5]: https://www.youtube.com/watch?v=LdOe18KhtT4
[6]: https://opensource.com/sites/default/files/uploads/devopsdays-ghent-2019-10year.png (Celebrate 10 years of DevOps Days where it all began: Ghent)
[7]: https://devopsdays.org/
[8]: https://opensource.com/article/19/6/you-cant-buy-devops
[9]: https://mitpress.mit.edu/books/out-crisis
[10]: https://nicolefv.com/book
[11]: https://continuousdelivery.com/about/
[12]: https://itrevolution.com/devops-books/
[13]: https://en.wikipedia.org/wiki/ITIL
[14]: https://www.owasp.org
[15]: https://devopsdays.org/events/2019-ghent/registration
[16]: https://devopsdays.org/events/2019-ghent/program/patrick-debois/
[17]: https://twitter.com/bryanl
[18]: https://devopsdays.org/events/2019-ghent/program/bryan-liles/
[19]: https://twitter.com/bridgetkromhout
[20]: https://devopsdays.org/events/2019-ghent/program/bridget-kromhout/
[21]: https://twitter.com/IamStan
[22]: https://devopsdays.org/events/2019-ghent/program/ant-stanley/
[23]: https://twitter.com/Julie_Gund
[24]: https://devopsdays.org/events/2019-ghent/program/julie-gunderson/

View File

@ -0,0 +1,55 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Data center gear will increasingly move off-premises)
[#]: via: (https://www.networkworld.com/article/3440746/data-center-gear-will-increasingly-move-off-premises.html)
[#]: author: (Andy Patrizio https://www.networkworld.com/author/Andy-Patrizio/)
Data center gear will increasingly move off-premises
======
Cloud and colocation sites will account for half of all data center equipment in just five years, according to 451 Research.
artisteer / Getty Images
I've said that [colocation][1] and [downsizing in favor of the cloud][2] is happening, and the latest research from 451 Research confirms the trend. More than half of global utilized racks will be located at off-premises facilities, such as cloud and colocation sites, by the end of 2024, the company found.
As companies get out of data center ownership, hardware will move to colocation sites like Equinix and DRT or cloud providers. The result is the total worldwide data center installed-base growth will see a dip of 0.1% CAGR between 2019-2024, according to the report, but overall total capacity in terms of space, power, and racks will continue to shift toward larger data centers.
**[ Read also: [Colocation facilities buck the cloud-data-center trend][1] | Get regularly scheduled insights: [Sign up for Network World newsletters][3] ]**
Enterprises are moving to colocation sites and hyperscale cloud providers such as Amazon Web Services (AWS) and Microsoft Azure for different reasons. AWS and Microsoft tend to base their data centers in remote areas with cheap land and some form of renewable energy, while colocation providers tend to be in big cities. They are popular for edge-computing projects such as internet of things (IoT) implementations and autonomous vehicle data gathering.
Either way, enterprise IT is moving outward and becoming more distributed and less reliant on their own data centers.
"Across all owner types and geographic locations, cloud and service providers are driving expansion, with the hyperscalers representing the tip of the spear," said Greg Zwakman, vice president of market and competitive intelligence at 451 Research, in a statement. "We expect to see a decline in utilized racks across the enterprise, with a mid-single-digit CAGR increase in non-cloud colocation, and cloud and service providers expanding their utilized footprint over 13%."
While all the focus is on large-scale data centers, the report found that server rooms and closets account for nearly 95% of total data centers, but only 23% of total utilized racks in 2019. Anyone who works in a remote office can probably relate to this. And 60% of enterprise data center space is less than 10,000 square feet.
On the flipside, the top six hyperscalers account for 42% of total cloud and service providers' utilized racks in 2019. 451 Research expects that to grow at an 18% CAGR, reaching 50.4% by 2024.
**** From HPE: [ITaaS and Corporate Storage Technology][4]: This blog explains why pay-per-use IT models, such as ITaaS, could be the next chapter in IT infrastructure. (Sponsored) ****
So, the trend is rather clear: Owning your own gear is optional, and owning your data center is increasingly falling out of favor.
Join the Network World communities on [Facebook][5] and [LinkedIn][6] to comment on topics that are top of mind.
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3440746/data-center-gear-will-increasingly-move-off-premises.html
作者:[Andy Patrizio][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Andy-Patrizio/
[b]: https://github.com/lujun9972
[1]: https://www.networkworld.com/article/3407756/colocation-facilities-buck-the-cloud-data-center-trend.html
[2]: https://www.networkworld.com/article/3439917/how-to-decommission-a-data-center.html
[3]: https://www.networkworld.com/newsletters/signup.html
[4]: https://www.networkworld.com/blog/itaas-and-the-corporate-storage-technology/
[5]: https://www.facebook.com/NetworkWorld/
[6]: https://www.linkedin.com/company/network-world

View File

@ -0,0 +1,95 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (What does an open source AI future look like?)
[#]: via: (https://opensource.com/article/19/9/open-source-ai-future)
[#]: author: (Sam Bocetta https://opensource.com/users/sambocetta)
What does an open source AI future look like?
======
Placing the fundamental building blocks of AI in the hands of the open
source community is advancing AI in multiple industries.
![A brain design in a head][1]
The recent announcement about [Neuralink][2], Elon Musk's latest startup, added to the buzz already in the air about where tech is taking us in the not-so-distant future. Judging by its ambitious plans, which involve pairing computers wirelessly with the human brain, Neuralink demonstrates that the future is now.
And a big part of that future is open source artificial intelligence (AI). Rapid advancements have opened up a whole new world of possibilities that startups can take advantage of right now.
### How does open source AI work?
Traditionally, tech innovations were held close to the vest and developed in secret; no one wanted to give a leg up to the competition. Open source technology, a concept that really gained traction in the '90s with the development of Linux, works on the same underlying principle that spurred the creation of the internet: the idea that information should be freely shared and available to all who want access.
Open source supports [global collaboration][3] by allowing some of the most progressive minds in tech to work together and craft solutions, and it makes technology cheaper and more widely available for developers. The potential benefits for every industry and level of society are immense.
When it comes to [artificial intelligence][4] and machine learning (ML), open source technology is all about high-speed innovation. If algorithm work was kept inside a closed system, growth would be stifled. But placing the fundamental building blocks of AI in the hands of the open source community has created a valuable feedback loop for all involved.
When individuals or organizations contribute to an open source AI project, they typically share code at the algorithm level to allow others to understand their method for managing datasets and detecting patterns. Then other groups can reuse or tweak this code to integrate it with their own products and solutions. The following are some of the industries and areas benefiting the most from open source AI.
### Autonomous vehicles
One of the most popular use cases for AI and ML technologies is the development of self-driving cars and other types of vehicles. With all of the competition in the auto industry, you might think that companies would be desperate to keep their technology private. However, the opposite is true, as evidenced by the open source projects that are becoming more and more common.
[Webviz][5] is an open source browser-based tool that lets developers visualize the huge amount of data being recorded by a self-driving car's various sensors. This becomes very valuable when trying to simulate different road conditions without running costly tests. There are over 1,000 engineers now contributing to Webviz, and it is also being used in various fields of robotics.
### E-commerce
Shopping online was once a novelty with a handful of storefronts. Now, thanks to trends in web design—away from custom content management systems—moving to [DIY website builders][6] and vendors like Shopify, even the smallest home business has an e-commerce website. In fact, not having an online option is the rarity now.
One challenge that online retailers face is how to deal with customer inquiries and complaints efficiently. That's where open source AI projects have pushed technology forward. A machine learning library called [TensorFlow][7] is capable of running algorithms to automatically tag and categorize incoming email messages. The system then prioritizes the content so that humans can respond to the most urgent issues more quickly.
### Cybersecurity and data privacy
A recent article on Forbes' website synthesized many leading opinions when it claimed that [AI is the future of cybersecurity][8]. The report, which summarized Capgemini research, states that 61% of enterprises admit they wouldn't be able to detect breach attempts effectively without AI. Considering the increasing number of malware and virus attacks, the internet's threat surface has reached such a level that we have little prayer of securing it without an AI-powered system that is super-fast and learns on the fly how to detect threats as they occur and shuts them down without human interference.
Popular cybersecurity software, like virtual private networks (VPNs), has been banned in a growing number of countries and is the target of regulatory extinction even in freedom-loving countries like Canada. Telecom giant Bell [asked NAFTA negotiators][9] to declare VPNs illegal due to their geoblocking feature, popular for [accessing Netflix content][10] when outside the United States.
Companies need smarter solutions to keep their technology assets safe. Open source tools like the [Adversarial Robustness Toolbox][11] can scan AI neural networks and determine their level of risk. This can help prevent the algorithms from being manipulated by external hackers.
### Banking and financial industries
Financial services are being revolutionized by open AI. AI's ability to analyze and make recommendations will allow banking professionals to turn over a lot of their more mundane duties over to technology while they perfect the art of customer service.
Currently, the primary use of open source by banks is on the analytics side, where they can leverage AI algorithms to filter large sets of data easily. But bigger changes could be coming soon, considering that popular cryptocurrencies like Bitcoin are based on open source machine learning platforms.
Some FinTech advances to look out for are:
* Banking APIs, such as [open banking][12], that allow banks to connect to customer data through third-party interfaces
* Microservices and containerization that remove old functions and replace them with new open cores and that eliminate functionalities one by one and reintroduce them as microservices
* Big data and machine learning applications that can coordinate data production, collection, processing, storage, and presentation
### Final thoughts
Machine learning technologies are powering forward with juggernaut speed as we speak. Many of them are making modern life possible and changing business in ways that most people may not fully realize. Although the technology [creates challenges][13] at times, it's difficult to imagine how we ever lived without many of these advancements, especially when we lose them, even temporarily.
With artificial intelligence, the likelihood of system breakdowns and obsolescence decreases and efficiency improves exponentially. It's self-correcting, scalable, and progressive in ways that will enrich our world immeasurably. When technology is in control behind the scenes, it frees us to realize the full extent of our capabilities—or at least come closer than we were before.
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/9/open-source-ai-future
作者:[Sam Bocetta][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/sambocetta
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/LAW_patents4abstract_B.png?itok=6RHeRaYh (A brain design in a head)
[2]: https://www.theverge.com/2019/7/16/20697123/elon-musk-neuralink-brain-reading-thread-robot
[3]: https://www.iflscience.com/technology/why-big-tech-companies-are-open-sourcing-their-ai-systems/
[4]: https://opensource.com/article/18/12/how-get-started-ai
[5]: https://webviz.io/
[6]: https://webeminence.com/wysiwyg-wordpress-website-builders/
[7]: https://www.tensorflow.org/
[8]: https://www.forbes.com/sites/louiscolumbus/2019/07/14/why-ai-is-the-future-of-cybersecurity/#69a04c8f117e
[9]: https://www.vice.com/en_us/article/d3mvam/canadian-telecom-giant-bell-wanted-nafta-to-ban-some-vpns
[10]: https://privacycanada.net/best-vpn-netflix/
[11]: https://adversarial-robustness-toolbox.readthedocs.io/en/latest/
[12]: https://www.thebalance.com/what-is-open-banking-and-how-will-it-affect-you-4173727
[13]: https://www.dataversity.net/for-better-or-worse-ai-is-eating-data-centers/

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: (way-ww)
[#]: translator: (heguangzhi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
@ -304,7 +304,7 @@ via: https://itsfoss.com/best-linux-distributions/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
译者:[heguangzhi](https://github.com/heguangzhi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,118 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (3 quick tips for working with Linux files)
[#]: via: (https://www.networkworld.com/article/3440035/3-quick-tips-for-working-with-linux-files.html)
[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
3 quick tips for working with Linux files
======
Linux provides lots of commands for finding, counting, and renaming files. Here's a look at some useful choices.
[GotCredit][1] [(CC BY 2.0)][2]
Linux provides a wide variety of commands for working with files — commands that can save you time and make your work a lot less tedious.
### Finding files
When you're looking for files, the **find** command is probably going to be the first command to come to mind, but sometimes a well-crafted **ls** command works even better. Want to remember what you called that script you were working on last night before you fled the office and drove home? Easy! Use an **ls** command with the **-ltr** options. The last files listed will be the ones most recently created or updated.
```
$ ls -ltr ~/bin | tail -3
-rwx------ 1 shs shs 229 Sep 22 19:37 checkCPU
-rwx------ 1 shs shs 285 Sep 22 19:37 ff
-rwxrw-r-- 1 shs shs 1629 Sep 22 19:37 test2
```
A command like this one will list only the files that were updated today:
```
$ ls -al --time-style=+%D | grep `date +%D`
drwxr-xr-x 60 shs shs 69632 09/23/19 .
drwxrwxr-x 2 shs shs 8052736 09/23/19 bin
-rw-rw-r-- 1 shs shs 506 09/23/19 stats
```
If the files you're looking for might not be in the current directory, the **find** command is going to provide better options than **ls**, but it can also result in a lot more output than you want to peruse. In this command, we're avoiding searching in directories that do _not_ begin with dots (many of those get updates all the time), specifying that we want to find files (i.e., not directories) and requesting that we only be shown files that were updated within the last day (-mtime -1).
```
$ find . -not -path '*/\.*' -type f -mtime -1 -ls
917517 0 -rwxrw-r-- 1 shs shs 683 Sep 23 11:00 ./newscript
```
Notice how the **-not** option reverses the **-path** specification, so our search doesn't dive into subdirectories that begin with dots.
If you want to find only the largest files and directories, you can use a command like this **du** command that lists the contents of the current directory by size. Pipe the output to **tail** to see only the largest few.
```
$ du -kx | egrep -v "\./.+/" | sort -n | tail -5
918984 ./reports
1053980 ./notes
1217932 ./.cache
31470204 ./photos
39771212 .
```
The **-k** option gets **du** to list file sizes in blocks, while **x** keeps it from traversing directories that are on other file systems (e.g., referenced through symbolic links). The fact that the **du** listing starts with the file sizes allows the sort by size (sort -n) to work.
### Counting files
Counting files in any particular directory is fairly easy with the **find** command. You just have to remember that find will recurse into subdirectories and will count the files in those subdirectories along with those in the current directory. In this command, we are counting files in one particular user's home directory. Depending on permissions on home directories, this may require the use of **sudo**. Remember that the first argument is the starting point for the search — in this case, the specified user's home directory.
```
$ find ~username -type f 2>/dev/null | wc -l
35624
```
Note that we're sending error output from the **find** command above to the bit bucket to avoid trying to search directories like ~username/.cache that we likely cannot search and the content of which is probably not of interest.
When needed, you can constrain **find** to a single directory using the **maxdepth 1** option:
```
$ find /home/shs -maxdepth 1 -type f | wc -l
387
```
### Renaming files
Files are easy to rename with the **mv** command, but sometimes you will want to rename large collections of files and likely won't want to spend a lot of time doing it. To change all the blanks that you might find in file names in the current directory to underscores, for example, you could use a command like this:
```
$ rename 's/ /_/g' *
```
The **g** in this command, as you likely suspect, means "global." That means the command will change _all_ blanks in a file name to underscores, not just the first one.
To drop the .txt extension from text files, you could use a command like this:
```
$ rename 's/.txt//g' *
```
### Wrap-up
The Linux command line provides a lot of useful options for manipulating files. Please suggest other commands that you find especially useful.
**[ Two-Minute Linux Tips: [Learn how to master a host of Linux commands in these 2-minute video tutorials][3] ]**
Join the Network World communities on [Facebook][4] and [LinkedIn][5] to comment on topics that are top of mind.
--------------------------------------------------------------------------------
via: https://www.networkworld.com/article/3440035/3-quick-tips-for-working-with-linux-files.html
作者:[Sandra Henry-Stocker][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.networkworld.com/author/Sandra-Henry_Stocker/
[b]: https://github.com/lujun9972
[1]: https://www.flickr.com/photos/gotcredit/33756797815/in/photolist-TqYpVr-ot3MbP-8GVk75-bDgdSV-d8UqyY-8A1Nvm-bDgHMT-3StdY-c3CSTq-9gXm8m-piEdt6-9Jme84-ao7jBT-9gUejH-9gpPtR-XzrMMD-bqn8Qs-bDa1AK-oV87g2-bqn8SE-7hKg3v-CyDj5-bDgHKF-ppTzHf-84Czrj-dWf3MY-eDXW3i-5nTPZb-oaFrev-bqf6Rw-58EpAQ-5bd2t8-9eyUFb-5zNBi9-6geKFz-ngaqHa-6zDJtt-bvJrAQ-28v4k1Y-6s2qrs-3fPsLz-hDNitm-4nfhZC-7dZYt1-PUTxVi-4nuP2y-bDgdVg-96HPjm-bce6J8-5Mnhy
[2]: https://creativecommons.org/licenses/by/2.0/legalcode
[3]: https://www.youtube.com/playlist?list=PL7D2RMSmRO9J8OTpjFECi8DJiTQdd4hua
[4]: https://www.facebook.com/NetworkWorld/
[5]: https://www.linkedin.com/company/network-world

View File

@ -0,0 +1,97 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Debugging in Emacs: The Grand Unified Debugger)
[#]: via: (https://opensourceforu.com/2019/09/debugging-in-emacs-the-grand-unified-debugger/)
[#]: author: (Vineeth Kartha https://opensourceforu.com/author/vineeth-kartha/)
Debugging in Emacs: The Grand Unified Debugger
======
[![][1]][2]
_This article briefly explores the features of the Grand Unified Debugger, a debugging tool for Emacs._
If you are a C/C++ developer, it is highly likely that you have crossed paths with GDB (the GNU debugger) which is, without doubt, one of the most powerful and unrivalled debuggers out there. Its only drawback is that it is command line based, and though that offers a lot of power, it is sometimes a bit restrictive as well. This is why smart people started coming up with IDEs to integrate editors and debuggers, and give them a GUI. There are still developers who believe that using the mouse reduces productivity and that mouse-click based GUIs are temptations by the devil.
Since Emacs is one of the coolest text editors out there, I am going to show you how to write, compile and debug code without having to touch the mouse or move out of Emacs.
![Figure 1: Compile command in Emacs mini buffer][3]
![Figure 2: Compilation status][4]
The Grand Unified Debugger, or GUD as it is commonly known, is an Emacs mode in which GDB can be run from within Emacs. This provides all the features of Emacs in GDB. The user does not have to move out of the editor to debug the code written.
**Setting the stage for the Grand Unified Debugger**
If you are using a Linux machine, then it is likely you will have GDB and gcc already installed. The next step is to ensure that Emacs is also installed. I am assuming that the readers are familiar with GDB and have used it at least for basic debugging. If not, please do check out some quick introductions to GDB that are widely available on the Internet.
For people who are new to Emacs, let me introduce you to some basic terminology. Throughout this article, you will see shortcut commands such as C-c, M-x, etc. C means the Ctrl key and M means the Alt key. C-c means the Ctrl + c keys are pressed. If you see C-c c, it means Ctrl + c is pressed followed by c. Also, in Emacs, the main area where you edit the text is called the main buffer, and the area at the bottom of the Emacs window, where commands are entered, is called the mini buffer.
Start Emacs and to create a new file, press _C-x C-f_. This will prompt you to enter a file name. Let us call our file buggyFactorial.cpp. Once the file is open, type in the code shown below:
```
#include<iostream>
#include <assert.h>
int factorial(int num) {
int product = 1;
while(num--) {
product *= num;
}
return product;
}
int main() {
int result = factorial(5);
assert(result == 120);
}
```
Save the file with _C-x C-s_. Once the file is saved, its time to compile the code. Press _M-x_ and in the prompt that comes up, type in compile and hit Enter. Then, in the prompt, replace whatever is there with _g++ -g buggyFactorial.cpp_ and again hit _Enter_.
This will open up another buffer in Emacs that will show the status of the compile and, hopefully, if the code typed in is correct, you will get a buffer like the one shown in Figure 2.
To hide this compilation status buffer, make sure your cursor is in the compilation buffer (you can do this without the mouse using _C-x o_-this is used to move the cursor from one open buffer to the other), and then press _C-x 0_. The next step is to run the code and see if it works fine. Press M-! and in the mini buffer prompt, type _./a.out._
See the mini buffer that says the assertion is failed. Clearly, something is wrong with the code, because the factorial (5) is 120. So lets debug the code now.
![Figure 3: Output of the code in the mini buffer][5]
![Figure 4: The GDB buffer in Emacs][6]
**Debugging the code using GUD**
Now, since we have the code compiled, its time to see what is wrong with it. Press M-x and in the prompt, enter _gdb._ In the next prompt that appears, write _gdb -i=mi a.out_, which will start GDB in the Emacs buffer and if everything goes well, you should get the window thats shown in Figure 4.
At the gdb prompt, type break main and then r to run the program. This should start running the program and should break at the _main()_.
As soon as GDB hits the break point at main, a new buffer will open up showing the code that you are debugging. Notice the red dot on the left side, which is where your breakpoint was set. There will be a small indicator that shows which line of the code you are on. Currently, this will be the same as the break point itself (Figure 5).
![Figure 5: GDB and the code in split windows][7]
![Figure 6: Show the local variables in a separate frame in Emacs][8]
To debug the factorial function, we need to step into it. For this, you can either use the _gdb_ prompt and the gdb command step, or you can use the Emacs shortcut _C-c C-s_. There are other similar shortcuts, but I prefer using the GDB commands. So I will use them in the rest of this article.
Let us keep an eye on the local variables while stepping through the factorial number. Check out Figure 6 for how to get an Emacs frame to show the local variables.
Step through the code in the GDB prompt and watch the value of the local variable change. In the first iteration of the loop itself, we see a problem. The value of the product should have been 5 and not 4.
This is where I leave you and now its up to the readers to explore and discover the magic land called GUD mode. Every gdb command works in the GUD mode as well. I leave the fix to this code as an exercise to readers. Explore and see how you can customise things to make your workflow simpler and become more productive while debugging.
--------------------------------------------------------------------------------
via: https://opensourceforu.com/2019/09/debugging-in-emacs-the-grand-unified-debugger/
作者:[Vineeth Kartha][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensourceforu.com/author/vineeth-kartha/
[b]: https://github.com/lujun9972
[1]: https://i0.wp.com/opensourceforu.com/wp-content/uploads/2019/09/Screenshot-from-2019-09-25-15-39-46.png?resize=696%2C440&ssl=1 (Screenshot from 2019-09-25 15-39-46)
[2]: https://i0.wp.com/opensourceforu.com/wp-content/uploads/2019/09/Screenshot-from-2019-09-25-15-39-46.png?fit=800%2C506&ssl=1
[3]: https://i1.wp.com/opensourceforu.com/wp-content/uploads/2019/09/Figure_1.png?resize=350%2C228&ssl=1
[4]: https://i2.wp.com/opensourceforu.com/wp-content/uploads/2019/09/Figure_2.png?resize=350%2C228&ssl=1
[5]: https://i0.wp.com/opensourceforu.com/wp-content/uploads/2019/09/Figure_3.png?resize=350%2C228&ssl=1
[6]: https://i0.wp.com/opensourceforu.com/wp-content/uploads/2019/09/Figure_4.png?resize=350%2C227&ssl=1
[7]: https://i1.wp.com/opensourceforu.com/wp-content/uploads/2019/09/Figure_5.png?resize=350%2C200&ssl=1
[8]: https://i1.wp.com/opensourceforu.com/wp-content/uploads/2019/09/Figure_6.png?resize=350%2C286&ssl=1

View File

@ -0,0 +1,230 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (5 tips for GNU Debugger)
[#]: via: (https://opensource.com/article/19/9/tips-gnu-debugger)
[#]: author: (Tim Waugh https://opensource.com/users/twaugh)
5 tips for GNU Debugger
======
Learn how to use some of the lesser-known features of gdb to inspect and
fix your code.
![Bug tracking magnifying glass on computer screen][1]
The [GNU Debugger][2] (gdb) is an invaluable tool for inspecting running processes and fixing problems while you're developing programs.
You can set breakpoints at specific locations (by function name, line number, and so on), enable and disable those breakpoints, display and alter variable values, and do all the standard things you would expect any debugger to do. But it has many other features you might not have experimented with. Here are five for you to try.
### Conditional breakpoints
Setting a breakpoint is one of the first things you'll learn to do with the GNU Debugger. The program stops when it reaches a breakpoint, and you can run gdb commands to inspect it or change variables before allowing the program to continue.
For example, you might know that an often-called function crashes sometimes, but only when it gets a certain parameter value. You could set a breakpoint at the start of that function and run the program. The function parameters are shown each time it hits the breakpoint, and if the parameter value that triggers the crash is not supplied, you can continue until the function is called again. When the troublesome parameter triggers a crash, you can step through the code to see what's wrong.
```
(gdb) break sometimes_crashes
Breakpoint 1 at 0x40110e: file prog.c, line 5.
(gdb) run
[...]
Breakpoint 1, sometimes_crashes (f=0x7fffffffd1bc) at prog.c:5
5      fprintf(stderr,
(gdb) continue
Breakpoint 1, sometimes_crashes (f=0x7fffffffd1bc) at prog.c:5
5      fprintf(stderr,
(gdb) continue
```
To make this more repeatable, you could count how many times the function is called before the specific call you are interested in, and set a counter on that breakpoint (for example, "continue 30" to make it ignore the next 29 times it reaches the breakpoint).
But where breakpoints get really powerful is in their ability to evaluate expressions at runtime, which allows you to automate this kind of testing. Enter: conditional breakpoints.
```
break [LOCATION] if CONDITION
(gdb) break sometimes_crashes if !f
Breakpoint 1 at 0x401132: file prog.c, line 5.
(gdb) run
[...]
Breakpoint 1, sometimes_crashes (f=0x0) at prog.c:5
5      fprintf(stderr,
(gdb)
```
Instead of having gdb ask what to do every time the function is called, a conditional breakpoint allows you to make gdb stop at that location only when a particular expression evaluates as true. If the execution reaches the conditional breakpoint location, but the expression evaluates as false, the
debugger automatically lets the program continue without asking the user what to do.
### Breakpoint commands
An even more sophisticated feature of breakpoints in the GNU Debugger is the ability to script a response to reaching a breakpoint. Breakpoint commands allow you to write a list of GNU Debugger commands to run whenever it reaches a breakpoint.
We can use this to work around the bug we already know about in the **sometimes_crashes** function and make it return from that function harmlessly when it provides a null pointer.
We can use **silent** as the first line to get more control over the output. Without this, the stack frame will be displayed each time the breakpoint is hit, even before our breakpoint commands run.
```
(gdb) break sometimes_crashes
Breakpoint 1 at 0x401132: file prog.c, line 5.
(gdb) commands 1
Type commands for breakpoint(s) 1, one per line.
End with a line saying just "end".
&gt;silent
&gt;if !f
 &gt;frame
 &gt;printf "Skipping call\n"
 &gt;return 0
 &gt;continue
 &gt;end
&gt;printf "Continuing\n"
&gt;continue
&gt;end
(gdb) run
Starting program: /home/twaugh/Documents/GDB/prog
warning: Loadable section ".note.gnu.property" outside of ELF segments
Continuing
Continuing
Continuing
#0  sometimes_crashes (f=0x0) at prog.c:5
5      fprintf(stderr,
Skipping call
[Inferior 1 (process 9373) exited normally]
(gdb)
```
### Dump binary memory
GNU Debugger has built-in support for examining memory using the **x** command in various formats, including octal, hexadecimal, and so on. But I like to see two formats side by side: hexadecimal bytes on the left, and ASCII characters represented by those same bytes on the right.
When I want to view the contents of a file byte-by-byte, I often use **hexdump -C** (hexdump comes from the [util-linux][3] package). Here is gdb's **x** command displaying hexadecimal bytes:
```
(gdb) x/33xb mydata
0x404040 &lt;mydata&gt;:    0x02    0x01    0x00    0x02    0x00    0x00    0x00    0x01
0x404048 &lt;mydata+8&gt;:    0x01    0x47    0x00    0x12    0x61    0x74    0x74    0x72
0x404050 &lt;mydata+16&gt;:    0x69    0x62    0x75    0x74    0x65    0x73    0x2d    0x63
0x404058 &lt;mydata+24&gt;:    0x68    0x61    0x72    0x73    0x65    0x75    0x00    0x05
0x404060 &lt;mydata+32&gt;:    0x00
```
What if you could teach gdb to display memory just like hexdump does? You can, and in fact, you can use this method for any format you prefer.
By combining the **dump** command to store the bytes in a file, the **shell** command to run hexdump on the file, and the **define** command, we can make our own new **hexdump** command to use hexdump to display the contents of memory.
```
(gdb) define hexdump
Type commands for definition of "hexdump".
End with a line saying just "end".
&gt;dump binary memory /tmp/dump.bin $arg0 $arg0+$arg1
&gt;shell hexdump -C /tmp/dump.bin
&gt;end
```
Those commands can even go in the **~/.gdbinit** file to define the hexdump command permanently. Here it is in action:
```
(gdb) hexdump mydata sizeof(mydata)
00000000  02 01 00 02 00 00 00 01  01 47 00 12 61 74 74 72  |.........G..attr|
00000010  69 62 75 74 65 73 2d 63  68 61 72 73 65 75 00 05  |ibutes-charseu..|
00000020  00                                                |.|
00000021
```
### Inline disassembly
Sometimes you want to understand more about what happened leading up to a crash, and the source code is not enough. You want to see what's going on at the CPU instruction level.
The **disassemble** command lets you see the CPU instructions that implement a function. But sometimes the output can be hard to follow. Usually, I want to see what instructions correspond to a certain section of source code in the function. To achieve this, use the **/s** modifier to include source code lines with the disassembly.
```
(gdb) disassemble/s main
Dump of assembler code for function main:
prog.c:
11    {
   0x0000000000401158 &lt;+0&gt;:    push   %rbp
   0x0000000000401159 &lt;+1&gt;:    mov      %rsp,%rbp
   0x000000000040115c &lt;+4&gt;:    sub      $0x10,%rsp
12      int n = 0;
   0x0000000000401160 &lt;+8&gt;:    movl   $0x0,-0x4(%rbp)
13      sometimes_crashes(&amp;n);
   0x0000000000401167 &lt;+15&gt;:    lea     -0x4(%rbp),%rax
   0x000000000040116b &lt;+19&gt;:    mov     %rax,%rdi
   0x000000000040116e &lt;+22&gt;:    callq  0x401126 &lt;sometimes_crashes&gt;
[...snipped...]
```
This, along with **info registers** to see the current values of all the CPU registers and commands like **stepi** to step one instruction at a time, allow you to have a much more detailed understanding of the program.
### Reverse debug
Sometimes you wish you could turn back time. Imagine you've hit a watchpoint on a variable. A watchpoint is like a breakpoint, but instead of being set at a location in the program, it is set on an expression (using the **watch** command). Whenever the value of the expression changes, execution stops, and the debugger takes control.
So imagine you've hit this watchpoint, and the memory used by a variable has changed value. This can turn out to be caused by something that occurred much earlier; for example, the memory was freed and is now being re-used. But when and why was it freed?
The GNU Debugger can solve even this problem because you can run your program in reverse!
It achieves this by carefully recording the state of the program at each step so that it can restore previously recorded states, giving the illusion of time flowing backward.
To enable this state recording, use the **target record-full** command. Then you can use impossible-sounding commands, such as:
* **reverse-step**, which rewinds to the previous source line
* **reverse-next**, which rewinds to the previous source line, stepping backward over function calls
* **reverse-finish**, which rewinds to the point when the current function was about to be called
* **reverse-continue**, which rewinds to the previous state in the program that would (now) trigger a breakpoint (or anything else that causes it to stop)
Here is an example of reverse debugging in action:
```
(gdb) b main
Breakpoint 1 at 0x401160: file prog.c, line 12.
(gdb) r
Starting program: /home/twaugh/Documents/GDB/prog
[...]
Breakpoint 1, main () at prog.c:12
12      int n = 0;
(gdb) target record-full
(gdb) c
Continuing.
Program received signal SIGSEGV, Segmentation fault.
0x0000000000401154 in sometimes_crashes (f=0x0) at prog.c:7
7      return *f;
(gdb) reverse-finish
Run back to call of #0  0x0000000000401154 in sometimes_crashes (f=0x0)
        at prog.c:7
0x0000000000401190 in main () at prog.c:16
16      sometimes_crashes(0);
```
These are just a handful of useful things the GNU Debugger can do. There are many more to discover. Which hidden, little-known, or just plain amazing feature of gdb is your favorite? Please share it in the comments.
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/9/tips-gnu-debugger
作者:[Tim Waugh][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/twaugh
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/bug_software_issue_tracking_computer_screen.jpg?itok=6qfIHR5y (Bug tracking magnifying glass on computer screen)
[2]: https://www.gnu.org/software/gdb/
[3]: https://en.wikipedia.org/wiki/Util-linux

View File

@ -0,0 +1,264 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (CentOS 8 Installation Guide with Screenshots)
[#]: via: (https://www.linuxtechi.com/centos-8-installation-guide-screenshots/)
[#]: author: (Pradeep Kumar https://www.linuxtechi.com/author/pradeep/)
CentOS 8 Installation Guide with Screenshots
======
After **RHEL 8** release, **CentOS** community has released its most awaited Linux distribution as **CentOS 8**. It is released into two forms:
* **CentOS stream** It is designed for the developers where they will get the updates quite frequently.
* **CentOS** It is RHEL 8 like stable OS where sysadmin can install and configure the servers and applications.
In this article, we will demonstrate how to install CentOS 8 Server step by step with screenshots.
###  New features in CentOS 8 :**
**
* DNF is the default package manager though yum can also be used.
* Network configuration will be controlled by Network Manager (nmcli &amp; nmtui) as network scripts are removed.
* Podman utility to manage containers
* Introduction of two new packages repositories: BaseOS and AppStream
* Cockpit available as default server management tool
* Wayland is the default display server
* Iptables are replaced by nftables
* Linux Kernel 4.18
* PHP 7.2, Python 3.6, Ansible 2.8, VIM 8.0 and Squid 4
### Minimum System Requirements CentOS 8:
* 2 GB RAM
* 2 GHz or Higher Processor
* 20 GB Hard Disk
* 64-bit x86 System
### CentOS 8 Installation Steps with Screenshots
### Step:1) Download CentOS 8 ISO File
Download CentOS 8 ISO file from its official site,
<https://www.centos.org/download/>
### Step:2) Create CentOS 8 bootable media (USB / DVD)
Once you have downloaded CentOS 8 iso file, burn it either into USB stick or in DVD to make it bootable.
Reboot the system on which you want to install CentOS 8, change the boot medium either as USB or DVD from bios settings.
### Step:3) Choose “Install CentOS  Linux 8.0” option
When the system boots up with CentOS 8 bootable media, then we will get the following screen, choose “**Install CentOS Linux 8.0**” and hit enter,
[![Choose-Install-CentOS8][1]][2]
### Step:4) Select your preferred language
Choose the language that suits to your CentOS 8 installation and then click on Continue,
[![Select-Language-CentOS8-Installation][1]][3]
### Step:5) Preparing CentOS 8 Installation
In this step we will configure the followings:
* Keyboard Layout
* Date / Time
* Installation Source
* Software Selection
* Installation Destination
* Kdump
[![Installation-Summary-CentOS8][1]][4]
As we can see in above window, installer has automatically pick **Keyboard** layout, **Time &amp; Date**, **Installation Source** and **Software Selection.**
If you want to change any of these settings, then click on their respective icon, lets assume we want to change Time &amp; Date of system, so click on **Time &amp; Date** and choose the time zone that suits to your installation and then click on **Done**
[![TimeZone-CentOS8-Installation][1]][5]
Choose your preferred option from “**Software Selection**“, in case you want to install server with GUI then choose “**Server with GUI**” option and if you want to do minimal installation then choose “**Minimal Install**“.
[![Software-Selection-CentOS8-Installation][1]][6]
In this tutorial we will go with “**Server with GUI**” option, click on Done
**Kdump** is enabled by default, if wish to disable it then click on its icon and disable it but it is strongly recommended one should enable kdump.
If you wish to configure networking during the installation, then click on “**Network &amp; Host Name**”
[![Networking-During-CentOS8-Installation][1]][7]
In case your system is connected to modem where DHCP is running then it will automatically pick the ip whenever we enable the interface and if  you wish to configure the static ip then click on **Configure** and specify IP details there and apart from this we have also set host name as “**linuxtechi.com**“.
Once you are done with network changes, click on Done,
Now finally configure **Installation Destination**, in this step we will specify on which disk we will install CentOS 8 and what would be its partition scheme.
[![Installation-Destination-Custom-CentOS8][1]][8]
Click on Done
As we can see I have 40 GB disk space for CentOS 8 installation, here we have two options to create partition scheme, if you want installer to create automatic partition on 40 GB disk space then choose “**Automatic**” from **Storage Configuration** and if you want to create partitions manually then choose “**Custom**” option.
In this tutorial I will create custom partitions by choosing “Custom” option. I will create following LVM based partitions,
* /boot         2 GB (ext4 file system)
* /                 12 GB (xfs file system)
* /home       20 GB (xfs file system)
* /tmp          5 GB (xfs file system)
* Swap          1 GB (xfs file system)
First create /boot as standard partition of size 2 GB, steps are shown below,
[![boot-partition-CentOS8-Installation][1]][9]
Click on “**Add mount point**”
Create second partition as / of size 12 GB on LVM, click on + symbol and specify mount point and size and then click on “Add mount point”
[![slash-root-partition-centos8-installation][1]][10]
In next screen change Partition Type from standard to LVM for / partition and click on update settings
[![Change-Partition-Type-CentOS8][1]][11]
As we can see above, installer has automatically created a volume group, if want to change the name of that volume group then click on “**Modify**” option from “**Volume Group**” Tab
Similarly create next partitions as /home and /tmp of size 20 GB and 5 GB respectively and also change their partition type from standard to **LVM**,
[![home-partition-CentOS8-Installation][1]][12]
[![tmp-partition-centos8-installation][1]][13]
Finally create swap partition,
[![Swap-Partition-CentOS8-Installation][1]][14]
Click on “Add mount point”
Once you are done with all partition creations then click on Done,
[![Choose-Done-after-manual-partition-centos8][1]][15]
In the next window, click on “**Accept changes**“, it will write the changes to disk,
[![Accept-changes-CentOS8-Installation][1]][16]
### Step:6) Choose “Begin Installation”
Once we Accept the changes in above window then we will move back to installation summary screen, there click on “**Begin Installation**” to start the installation
[![Begin-Installation-CentOS8][1]][17]
Below screen confirms that installation has been started,
[![Installation-progress-centos8][1]][18]
To set root password, click on “**Root Password**” option and then specify the password string and Click on “**User creation**” option to create a local user
[![Root-Password-CentOS8-Installation][1]][19]
Local User details,
[![Local-User-Details-CentOS8][1]][20]
Installation is progress and once it is completed, installer will prompt us to reboot the system
[![CentOS8-Installation-Progress][1]][21]
### Step:7) Installation Completed and reboot system
Once the installation is completed, reboot your system, Click on Reboot
[![Installation-Completed-CentOS8][1]][22]
**Note:** After the reboot, dont forget to remove the installation media and set the boot medium as disk from bios.
### Step:8) Boot newly installed CentOS 8 and Accept License
From the grub menu, select the first option to boot CentOS 8,
[![Grub-Boot-CentOS8][1]][23]
Accept CentOS 8 License and then click on Done,
[![Accept-License-CentOS8-Installation][1]][24]
In the next screen, click on “**Finish Configuration**”
[![Finish-Configuration-CentOS8-Installation][1]][25]
### Step:9) Login Screen after finishing the configuration
We will get the following login screen after accepting CentOS 8 license and finishing the configuration
[![Login-screen-CentOS8][1]][26]
Use the same credentials of the user that you created during the installation. Follow the screen instructions and then finally we will get the following screen,
[![CentOS8-Ready-Use-Screen][1]][27]
Click on “**Start Using CentOS Linux**”
[![Desktop-Screen-CentOS8][1]][28]
Thats all from this tutorial, this confirms we have successfully installed CentOS 8. Please do share your valuable feedback and comments.
--------------------------------------------------------------------------------
via: https://www.linuxtechi.com/centos-8-installation-guide-screenshots/
作者:[Pradeep Kumar][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.linuxtechi.com/author/pradeep/
[b]: https://github.com/lujun9972
[1]: data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
[2]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Choose-Install-CentOS8.jpg
[3]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Select-Language-CentOS8-Installation.jpg
[4]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Installation-Summary-CentOS8.jpg
[5]: https://www.linuxtechi.com/wp-content/uploads/2019/09/TimeZone-CentOS8-Installation.jpg
[6]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Software-Selection-CentOS8-Installation.jpg
[7]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Networking-During-CentOS8-Installation.jpg
[8]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Installation-Destination-Custom-CentOS8.jpg
[9]: https://www.linuxtechi.com/wp-content/uploads/2019/09/boot-partition-CentOS8-Installation.jpg
[10]: https://www.linuxtechi.com/wp-content/uploads/2019/09/slash-root-partition-centos8-installation.jpg
[11]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Change-Partition-Type-CentOS8.jpg
[12]: https://www.linuxtechi.com/wp-content/uploads/2019/09/home-partition-CentOS8-Installation.jpg
[13]: https://www.linuxtechi.com/wp-content/uploads/2019/09/tmp-partition-centos8-installation.jpg
[14]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Swap-Partition-CentOS8-Installation.jpg
[15]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Choose-Done-after-manual-partition-centos8.jpg
[16]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Accept-changes-CentOS8-Installation.jpg
[17]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Begin-Installation-CentOS8.jpg
[18]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Installation-progress-centos8.jpg
[19]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Root-Password-CentOS8-Installation.jpg
[20]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Local-User-Details-CentOS8.jpg
[21]: https://www.linuxtechi.com/wp-content/uploads/2019/09/CentOS8-Installation-Progress.jpg
[22]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Installation-Completed-CentOS8.jpg
[23]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Grub-Boot-CentOS8.jpg
[24]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Accept-License-CentOS8-Installation.jpg
[25]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Finish-Configuration-CentOS8-Installation.jpg
[26]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Login-screen-CentOS8.jpg
[27]: https://www.linuxtechi.com/wp-content/uploads/2019/09/CentOS8-Ready-Use-Screen.jpg
[28]: https://www.linuxtechi.com/wp-content/uploads/2019/09/Desktop-Screen-CentOS8.jpg

View File

@ -0,0 +1,83 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Microsoft open sourcing its C++ library, Cloudera's open source data platform, new tools to remove leaked passwords on GitHub and combat ransomware, and more open source news)
[#]: via: (https://opensource.com/article/19/9/news-september-28)
[#]: author: (Scott Nesbitt https://opensource.com/users/scottnesbitt)
Microsoft open sourcing its C++ library, Cloudera's open source data platform, new tools to remove leaked passwords on GitHub and combat ransomware, and more open source news
======
Catch up on the biggest open source headlines from the past two weeks.
![Weekly news roundup with TV][1]
In this edition of our open source news roundup, we take a look Cloudera's open source data platform, Microsoft open sourcing its C++ library, new tools to beef up digital security, and more!
### Cloudera releases open source cloud data platform
It was only a few months ago that data processing software vendor Cloudera went [all in on open source][2]. The results of that shift have started to appear, with the company releasing "[an integrated data platform made up entirely of open-source elements.][3]"
Called Cloudera Data Platform, it combines "a cloud-native data warehouse, machine learning service and data hub, each running as instances within the self-contained operating environments." Cloudera's chief product officer Arun Murthy said that by using "existing components in the cloud, the platform cuts deployment times from weeks to hours." The speed of open source adoption is a great industry proof point. One can image the next step is Cloudera's participation in the underlying open source communities they now depend on. 
### Microsoft open sources its C++ standard library
When you think of open source software, programming language libraries probably aren't the first things that come to mind. But they're often an essential part of the software that we use. A team at Microsoft recognized the importance of the company's implementation of the C++ Standard Library (STL) and it's been [released as open source][4].
By making the library open source, users get "easy access to all the latest developments in C++" and enables them to participate "in the STLs development by reporting issues and commenting on pull requests." The library, which is under an Apache License, is [available on GitHub][5].
### Two new open source security tools
Nowadays, more than ever it seems, digital security is important to anyone using a computer — from average users to system administrators to software developers. Open source has been playing its part in helping make systems more secure, and two new open source tools to help secure an organization's code and its computers have been released.
If you, or someone in your company, has ever accidentally published sensitive information to a public GitHub repository, then [Shhgit is for you][6]. The tool, which you can [find on GitHub][7], is designed to detect passwords, connection strings, and access keys that wind up being exposed. Unlike similar tools, you don't need to point Shhgit at a particular repository. Instead, it "taps into the GitHub firehose to automatically flag up leaked secrets".
Ransomware attacks are no joke, and defending against them is serious business. Cameyo, a company specializing in virtualization, has released an [open source monitoring tool][8] that "any organization can use to identify attacks taking place over RDP (Remote Desktop Protocol) in their environment." Called [RDPmon][9], the software enables users to "monitor and identify brute force attacks and to help protect against ransomware". It does this by watching the number of attempted RDP connections, along with the number of users and which programs those users are running.
### New foundation to develop open source data processing engine
There's a new open source foundation in town. Tech firms Alibaba, Facebook, Twitter, and Uber have [teamed up][10] to further develop Presto, a database search engine and processing tool originally crafted by Facebook.
The Presto Foundation, which operates under the Linux Foundation's umbrella, aims to make Presto the "fastest and most reliable SQL engine for massively distributed data processing." One of the foundation members, Alibaba, already has plans for the tool. According to an [article in CX Tech][11], Alibaba intends to refine Presto to more efficiently "sift through the mountains of data generated by its e-commerce platforms."
#### In other news
* [Scientists Create Worlds First Open Source Tool for 3D Analysis of Advanced Biomaterials][12]
* [Percona announces Percona Distribution for PostgreSQL to support open source databases][13]
* [Sage gets cloudy, moves towards open source and microservices][14]
* [Compliance monitoring of EUs Common Agricultural Policy made more transparent and efficient with Open Source][15]
* [WebLinc is taking its in-house ecommerce platform open source][16]
_Thanks, as always, to Opensource.com staff members and moderators for their help this week._
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/9/news-september-28
作者:[Scott Nesbitt][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/scottnesbitt
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/weekly_news_roundup_tv.png?itok=B6PM4S1i (Weekly news roundup with TV)
[2]: https://opensource.com/19/7/news-july-20#cloudera
[3]: https://siliconangle.com/2019/09/24/cloudera-debuts-open-source-integrated-cloud-data-platform/
[4]: https://devclass.com/2019/09/18/microsoft-turns-to-github-to-open-source-c-stl/
[5]: https://github.com/microsoft/STL
[6]: https://portswigger.net/daily-swig/open-source-tool-for-bug-hunters-searches-for-leaked-secrets-in-github-commits
[7]: https://github.com/eth0izzle/shhgit/
[8]: https://betanews.com/2019/09/18/tool-prevents-brute-force-ransomware/
[9]: https://github.com/cameyo/rdpmon
[10]: https://sdtimes.com/data/the-presto-foundation-launches-under-the-linux-foundation/
[11]: https://www.caixinglobal.com/2019-09-24/alibaba-global-tech-giants-form-foundation-for-open-source-database-tool-101465449.html
[12]: https://sputniknews.com/science/201909111076763585-russian-german-scientists-create-worlds-first-open-source-tool-for-3d-analysis-of-advanced/
[13]: https://hub.packtpub.com/percona-announces-percona-distribution-for-postgresql-to-support-open-source-databases/
[14]: https://www.itworldcanada.com/article/sage-gets-cloudy-moves-towards-open-source-and-microservices/421771
[15]: https://joinup.ec.europa.eu/node/702122
[16]: https://technical.ly/philly/2019/09/24/weblinc-ecommerce-platform-open-source-workarea/

View File

@ -0,0 +1,117 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Open Source Voice Chat Mumble Makes a Big Release After 10 Years)
[#]: via: (https://itsfoss.com/mumble-voice-chat/)
[#]: author: (John Paul https://itsfoss.com/author/john/)
Open Source Voice Chat Mumble Makes a Big Release After 10 Years
======
The greatest power of the Internet is its ability to connect people anywhere in the world. Voice chat applications are just one category of tools uniting us. Recently, one of the biggest open-source voice chat apps made a new release, 10 years after its previous release.
### Mumble: Open Source, Low Latency, High Quality Voice Chat
![Mumble][1]
[Mumble][2] is a “free, open source, low latency, high quality voice chat application”. It was originally created to be used by gamers, but it is also used to record podcasts. Several [Linux podcasts][3] use Mumble to record hosts located at different places in the world, including Late Nite Linux. To give you an idea of how powerful Mumble is, it has been used to connect “Eve Online players with huge communities of over 100 simultaneous voice participants”.
Here are some of the features that make Mumble interesting:
* Low-latency (ideal for gamers)
* Connections always encrypted and secured
* Connect with friends across servers
* Extensive user permission system
* Extendable through Ice and GRPC protocols
* Automatable administration through Ice middleware
* Low resource cost for hosting
* Free choice between official and third-party server software
* Provide users with channel viewer data (CVP) without giving control away
Its a powerful software with a lot of features. If you are new to it and want to start using it, I suggest [going through its documentation][4].
### Whats New in Mumble 1.3.0?
![Mumble 1.30 Interface with Lite Theme][5]
The team behind Mumble released [version 1.3.0][6] in early August. This is the first major release in ten years and it contains over 3,000 changes. Here are just a few of the new features in Mumble 1.3.0:
* UI redesign
* New lite and dark themes
* Individual user volume adjustment
* New bindable shortcut for changing transmission modes
* Quickly filter channels
* Multichannel recordings are synchronous even after several hours
* PulseAudio monitor devices can be used as input devices
* An optional clock (current time) in the overlay
* Improved user management, including searchable ban list
* Added support for systemd
* Option to disable public server list
* Lower volume of other users when “Priority Speaker” talks
* New interface allows renaming users as well as (batch) deletions
* Mumble client can be controlled through SocketRPC
* Support for Logitech G-keys has been added
### Installing Mumble on Linux
![Mumble 1.30 Interface Dark Theme][7]
The Mumble team has installers available for Linux, Windows (32 and 64 bit), and macOS. You can find and download them from the [projects website][8]. You can also browse its [source code on GitHub][9].
They have a [PPA available for Ubuntu][10]. Which means you can easily install it on Ubuntu and Ubuntu-based distributions like Linux Mint, elementary OS. To install, just enter these commands, one by one, in the terminal:
```
sudo add-apt-repository ppa:mumble/release
sudo apt update
sudo apt install mumble
```
The Snap community also created a [snap app for Mumble][11]. This makes installing Mumble easier in any Linux distribution that supports Snap. You can install it with the following command:
```
sudo snap install mumble
```
There are also _third-party clients_ for Android and iOS on the download page.
[Download Mumble for other platforms][8]
**Final Thoughts**
I have never used Mumble or any other voice chat app. I just never had the need. That being said, Im glad that there is a powerful FOSS option available and so widely used.
Have you ever used Mumble? What is your favorite voice chat app? Please let us know in the comments below.
If you found this article interesting, please take a minute to share it on social media, Hacker News or [Reddit][12].
--------------------------------------------------------------------------------
via: https://itsfoss.com/mumble-voice-chat/
作者:[John Paul][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/john/
[b]: https://github.com/lujun9972
[1]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/09/mumble-voice-chat-logo.png?ssl=1
[2]: https://www.mumble.info/
[3]: https://itsfoss.com/linux-podcasts/
[4]: https://wiki.mumble.info/wiki/Main_Page
[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/09/mumble-1.30-interface.jpg?ssl=1
[6]: https://www.mumble.info/blog/mumble-1.3.0-release-announcement/
[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2019/09/mumble-1.30-interface-1.png?resize=800%2C529&ssl=1
[8]: https://www.mumble.info/downloads/
[9]: https://github.com/mumble-voip/mumble
[10]: https://itsfoss.com/ppa-guide/
[11]: https://snapcraft.io/mumble
[12]: https://reddit.com/r/linuxusersgroup

View File

@ -1,169 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (qfzy1233)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (An introduction to Markdown)
[#]: via: (https://opensource.com/article/19/9/introduction-markdown)
[#]: author: (Juan Islas https://opensource.com/users/xislashttps://opensource.com/users/mbbroberghttps://opensource.com/users/scottnesbitthttps://opensource.com/users/scottnesbitthttps://opensource.com/users/f%C3%A1bio-emilio-costahttps://opensource.com/users/don-watkinshttps://opensource.com/users/greg-phttps://opensource.com/users/marcobravohttps://opensource.com/users/alanfdosshttps://opensource.com/users/scottnesbitthttps://opensource.com/users/jamesf)
一份 Markdown 简介
======
一次编辑便可将文本转换为多种格式。下面是如何开始使用 Markdown。
![Woman programming][1]
在很长一段时间里,我发现我在 GitLab 和 GitHub 上看到的所有文件都带有**.md**扩展名这是是专门为开发人员编写的文件类型。几周前当我开始使用Markdown时我的观念发生了变化。它很快成为我日常工作中最重要的工具。
Markdown 使我的生活更简易。我只需要在已经编写的代码中添加一些符号,并且在浏览器扩展或开源程序的帮助下,即可将文本转换为各种常用格式,如 ODT、电子邮件(稍后将详细介绍)、PDF 和 EPUB。
### 什么是 Markdown?
来自 [维基百科][2]的友情提示:
> Markdown是一种轻量级标记语言具有纯文本格式语法。
这意味着通过在文本中使用一些额外的符号Markdown 可以帮助您创建具有特定结构和格式的文档。当您以纯文本(例如,在记事本应用程序中)做笔记时,没有任何东西表明哪个文本应该是粗体或斜体。在普通文本中,你在编写链接时需要将一个链接编写为**<http://example.com>**,或者编写为**example.com**,又或**访问网站(example.com)**。这样没有内在的一致性。
但是如果你按照Markdown的方式编写你的文本就有了内在的一致性。计算机喜欢一致性因为这使得它们能够遵循严格的指令而不用担心异常。
相信我;一旦你学会使用Markdown每一项写作任务在某种程度上都会比以前更容易、更好。让我们开始吧。
### Markdown 基础
以下是使用 Markdown 的基础语法。
1. 创建一个以 **.md**扩展名结尾的文本文件(例如,**example.md**)。你可以使用任何文本编辑器(甚至像 LibreOffice 或 Microsoft word 这样的文字处理程序亦可)只要记住将其保存为_text_文件。
![Names of Markdown files][3]
2. 想写什么就写什么,就像往常一样:
```
Lorem ipsum
Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
De Finibus Bonorum et Malorum
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
  Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
```
3. 确保在段落之间留有空行。如果你习惯写商务信函或传统散文这可能会觉得不自然因为段落只有一行甚至在第一个单词前还有一个缩进。对于Markdown空行(一些文字处理程序使用 **¶**称为Pilcrow符号)保证在创建一个新段落应用另一种格式(如HTML)。
4. 指定标题和副标题。对于文档的标题,在文本前面添加一个 # 或散列符号(**#**)和一个空格(例如**# Lorem ipsum**)。第一个副标题级别使用两个(**## De Finibus Bonorum et Malorum**),下一个级别使用三个(**### #第三个副标题**),以此类推。注意,在磅号和第一个单词之间有一个空格。
```
# Lorem ipsum
Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
## De Finibus Bonorum et Malorum
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
  Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
```
5. 如果你想使用**粗体**字符,只需将字母放在两个星号之间,没有空格:****对应的文本将以粗体****显示。
![Bold text in Markdown][4]
6. 对于 _斜体_, 将文本放在没有空格的下划线符号之间:
**_I want this text to be in italics_**.
![Italics text in Markdown][5]
7. 要插入一个链接(像[Markdown Tutorial][6])把你想链接的文本放在括号里URL放在括号里中间没有空格:
**[Markdown Tutorial](<https://www.markdowntutorial.com/>)**.
![Hyperlinks in Markdown][7]
8. 块引用是用大于号编写的 (**&gt;**) 在你要引用的文本前加上符号和空格: **&gt; A famous quote**.
![Blockquote text in Markdown][8]
### Markdown 教程和技巧
这些技巧可以帮助你上手 Markdown ,但它涵盖了很多功能,不仅仅是粗体、斜体和链接。学习 Markdown 的最好方法是使用它但是我建议你花15分钟来学习简单的[Markdown教程][6],学以致用,勤加练习。
由于现代 Markdown 是对结构化文本概念的许多不同解释的融合,[CommonMark][9]项目定义了一个规范,其中包含一组严格的规则,以使 Markdown 更加清晰。在编辑时手边准备一份[符合公共标记的快捷键列表][10]可能会有帮助。
### 你能用 Markdown 做什么
Markdown 可以让你写任何你想写的东西,仅需一次编辑,就可以把它转换成几乎任何你想使用的格式。下面的示例演示如何将用 MD 编写简单的文本并转换为不同的格式。你不需要多种格式的文档-你可以仅仅编辑一次…然后拥有无限可能。
1. **简单的笔记:** 你可以用 Markdown 编写你的笔记,并且在保存笔记时,开源笔记应用程序[Turtl][11]将解释您的文本文件并显示为对应的格式。你可以把笔记存储在任何地方!
![Turtl application][12]
2. **PDF 文件:** 使用[Pandoc][13]应用程序,你可以使用一个简单的命令将 Markdown 文件转换为PDF:
**pandoc &lt;file.md&gt; -o &lt;file.pdf&gt;**.
![Markdown text converted to PDF with Pandoc][14]
3. **Email:** 你还可以通过安装浏览器扩展[Markdown Here][15]将Markdown 文本转换为 html 格式的电子邮件。要使用它只需选择您的Markdown 文本,在这里使用 Markdown 将其转换为HTML并使用你喜欢的电子邮件客户端发送消息。
![Markdown text converted to email with Markdown Here][16]
### 现在就开始上手吧
你不需要一个特殊的应用程序来使用 Markdown—你只需要一个文本编辑器和上面的技巧。它与你已有的写作方式兼容;你所需要做的就是使用它,所以试试吧。
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/9/introduction-markdown
作者:[Juan Islas][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/xislashttps://opensource.com/users/mbbroberghttps://opensource.com/users/scottnesbitthttps://opensource.com/users/scottnesbitthttps://opensource.com/users/f%C3%A1bio-emilio-costahttps://opensource.com/users/don-watkinshttps://opensource.com/users/greg-phttps://opensource.com/users/marcobravohttps://opensource.com/users/alanfdosshttps://opensource.com/users/scottnesbitthttps://opensource.com/users/jamesf
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/programming-code-keyboard-laptop-music-headphones.png?itok=EQZ2WKzy (Woman programming)
[2]: https://en.wikipedia.org/wiki/Markdown
[3]: https://opensource.com/sites/default/files/uploads/markdown_names_md-1.png (Names of Markdown files)
[4]: https://opensource.com/sites/default/files/uploads/markdown_bold.png (Bold text in Markdown)
[5]: https://opensource.com/sites/default/files/uploads/markdown_italic.png (Italics text in Markdown)
[6]: https://www.markdowntutorial.com/
[7]: https://opensource.com/sites/default/files/uploads/markdown_link.png (Hyperlinks in Markdown)
[8]: https://opensource.com/sites/default/files/uploads/markdown_blockquote.png (Blockquote text in Markdown)
[9]: https://commonmark.org/help/
[10]: https://opensource.com/downloads/cheat-sheet-markdown
[11]: https://turtlapp.com/
[12]: https://opensource.com/sites/default/files/uploads/markdown_turtl_02.png (Turtl application)
[13]: https://opensource.com/article/19/5/convert-markdown-to-word-pandoc
[14]: https://opensource.com/sites/default/files/uploads/markdown_pdf.png (Markdown text converted to PDF with Pandoc)
[15]: https://markdown-here.com/
[16]: https://opensource.com/sites/default/files/uploads/markdown_mail_02.png (Markdown text converted to email with Markdown Here)