diff --git a/translated/tech/20190322 Printing from the Linux command line.md b/published/20190322 Printing from the Linux command line.md
similarity index 65%
rename from translated/tech/20190322 Printing from the Linux command line.md
rename to published/20190322 Printing from the Linux command line.md
index 9e13b78a35..a497906293 100644
--- a/translated/tech/20190322 Printing from the Linux command line.md
+++ b/published/20190322 Printing from the Linux command line.md
@@ -1,24 +1,24 @@
[#]: collector: (lujun9972)
[#]: translator: (stevenzdg988)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-13012-1.html)
[#]: subject: (Printing from the Linux command line)
[#]: via: (https://www.networkworld.com/article/3373502/printing-from-the-linux-command-line.html)
[#]: author: (Sandra Henry-Stocker https://www.networkworld.com/author/Sandra-Henry_Stocker/)
-Linux 命令行打印
+从 Linux 命令行进行打印
======
-通过一些可用选项 Linux 命令行打印的内容比 `lp` 命令多得多。
+> 在 Linux 命令行进行打印的内容比单单一个 `lp` 命令多得多,让我们来看一些可用选项。
![Sherry \(CC BY 2.0\)][1]
-Linux 命令行打印很容易。您可以使用 **lp** 命令来请求打印,并使用 **lpq** 命令来查看队列中有哪些打印作业,但是当您要双面打印或使用纵向模式时,这些会变得有些复杂。 您可能还需要做很多其他事情,例如打印多份文档副本或取消打印作业。 让我们通过某些选项以使打印输出的内容看起来像从命令行打印时的方式一样。
+Linux 命令行打印很容易。你可以使用 `lp` 命令来请求打印,并使用 `lpq` 命令来查看队列中有哪些打印作业,但是当你要双面打印或使用纵向模式时,这些会变得有些复杂。你可能还需要做很多其他事情,例如打印多份文档副本或取消打印作业。让我们来看看一些选项,当你从命令行打印时,如何让你的打印输出看起来如你所愿。
### 显示打印机配置
-要从命令行查看打印机设置,请使用 **lpoptions** 命令。 输出应如下所示:
+要从命令行查看打印机设置,请使用 `lpoptions` 命令。 输出应如下所示:
```
$ lpoptions
@@ -62,7 +62,7 @@ printer-uri-supported=ipp://localhost/printers/Color-LaserJet-CP2025dn
sides=one-sided
```
-使用 **-v** 选项时,**lpinfo** 命令将列出驱动程序和相关信息。
+使用 `-v` 选项时,`lpinfo` 命令将列出驱动程序和相关信息:
```
$ lpinfo -v
@@ -80,13 +80,13 @@ network dnssd://HP%20Color%20LaserJet%20CP2025dn%20(F47468)._pdl-datastream._tcp
network socket://192.168.0.23 <== printer IP
```
-`lpoptions` 命令将显示默认打印机的设置。使用 **-p** 选项指定其中一个可用打印机代号。
+`lpoptions` 命令将显示默认打印机的设置。使用 `-p` 选项指定其中一个可用打印机代号:
```
$ lpoptions -p LaserJet
```
-**lpstat -p** 命令显示打印机的状态,而 **lpstat -p -d** 列出可用打印机列表。
+`lpstat -p` 命令显示打印机的状态,而 `lpstat -p -d` 列出可用打印机列表。
```
$ lpstat -p -d
@@ -96,14 +96,14 @@ system default destination: Color-LaserJet-CP2025dn
### 非常有用的命令
-要在默认打印机上打印文档,只需使用 **lp** 命令,后跟要打印的文件名即可。 如果文件名包含空格(在 Linux 系统上很少见),请将该名称放在引号中或开始输入文件名并按 Tab 键调用空格的转义标志(如下面的第二个示例所示)。
+要在默认打印机上打印文档,只需使用 `lp` 命令,后跟要打印的文件名即可。 如果文件名包含空格(在 Linux 系统上很少见),请将该名称放在引号中或开始输入文件名并按 `Tab` 键调用空格的转义标志(如下面的第二个示例所示)。
```
$ lp "never leave home angry"
$ lp never\ leave\ home\ angry
```
-**lpq** 命令显示打印队列。
+`lpq` 命令显示打印队列:
```
$ lpq
@@ -112,13 +112,13 @@ Rank Owner Job File(s) Total Size
active shs 234 agenda 2048 bytes
```
-使用 **-n** 选项时,`lp` 命令可用来指定所需打印输出的份数。
+使用 `-n` 选项时,`lp` 命令可用来指定所需打印输出的份数:
```
$ lp -n 11 agenda
```
-要取消打印作业,可以使用 **cancel** 或 **lprm** 命令。 如果没来得及执行,则可能会看到以下信息:
+要取消打印作业,可以使用 `cancel` 或 `lprm` 命令。如果没来得及执行,则可能会看到以下信息:
```
$ cancel 229
@@ -127,13 +127,13 @@ cancel: cancel-job failed: Job #229 is already completed - can't cancel.
### 双面打印
-要以双面模式打印,您可以在 **lp** 命令中使用 **sides** 选项,该选项表示既可以在纸张的正反面进行打印,又可以在纸张的其中一面进行打印。 通常此设置表示看起来像双面竖排格式文档方式。
+要以双面模式打印,你可以在 `lp` 命令中使用 `sides` 选项,该选项不但表示了在纸张的正反面进行打印,还表示了从纸张的哪个边开始打印。这个设置代表了你期望以双面纵向文档的正常方式打印。
```
$ lp -o sides=two-sided-long-edge Notes.pdf
```
-如果要所有文档以双面模式打印,则可以使用 **lpoptions** 命令更改 `lp` 设置进而更改 **sides** 的设置。
+如果要所有文档以双面模式打印,则可以使用 `lpoptions` 命令更改 `sides` 设置以修改 `lp` 的设置。
```
$ lpoptions -o sides=two-sided-short-edge
@@ -147,7 +147,7 @@ $ lpoptions -o sides=one-sided
#### 横向打印
-要以横向模式打印,可以在 `lp` 命令中使用 **landscape** 选项。
+要以横向模式打印,可以在 `lp` 命令中使用 `landscape` 选项。
```
$ lp -o landscape penguin.jpg
@@ -155,9 +155,7 @@ $ lp -o landscape penguin.jpg
### CUPS(Unix 通用打印系统)
-Linux 系统上使用的打印系统是基于标准的开源打印系统,称为 **CUPS**,原本基于 **Unix 通用打印系统**。 它允许计算机充当打印服务器。
-
-加入 Network World 社区的 [Facebook][2] 和 [LinkedIn][3],以评论最感兴趣的主题。
+Linux 系统上使用的打印系统是基于标准的开源打印系统,称为 **CUPS**,原意是Unix 通用打印系统。 它允许计算机充当打印服务器。
--------------------------------------------------------------------------------
@@ -165,8 +163,8 @@ via: https://www.networkworld.com/article/3373502/printing-from-the-linux-comman
作者:[Sandra Henry-Stocker][a]
选题:[lujun9972][b]
-译者:[译者ID](https://github.com/stevenzdg988)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[stevenzdg988](https://github.com/stevenzdg988)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/published/20210106 Learn C by writing a simple game.md b/published/20210106 Learn C by writing a simple game.md
new file mode 100644
index 0000000000..dbc12ecfe6
--- /dev/null
+++ b/published/20210106 Learn C by writing a simple game.md
@@ -0,0 +1,150 @@
+[#]: collector: (lujun9972)
+[#]: translator: (qfzy1233)
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-13013-1.html)
+[#]: subject: (Learn C by writing a simple game)
+[#]: via: (https://opensource.com/article/21/1/learn-c)
+[#]: author: (Jim Hall https://opensource.com/users/jim-hall)
+
+通过编写一个简单的游戏学习 C 语言
+======
+
+> 当你学习一门新的编程语言时,这个“猜数字”游戏是一个很好的入门程序。下面是如何用 C 语言来编写它。
+
+
+
+我在小学时就开始 [自学编程][2]。我的第一个程序是在 Apple II 上编写的,但最终,我还是通过看书和编程练习学会了 C 语言。练习编程的最佳方法是编写示例程序,它能帮助你练习新知识。
+
+在我学习一种新的编程语言时,我喜欢编写一个简单的“猜数字”游戏来练习。电脑从 1 到 100 中随机挑选一个数字,你必须通过猜测来算出来。在另一篇文章中,我展示了如何用 Bash 语言编写这个[“猜数字”游戏][3],我的同事也写了一些文章,介绍如何用 [Java][4]、[Julia][5] 和其他计算机语言编写它。
+
+“猜数字”游戏的伟大之处在于它践行了几个编程概念:如何使用变量、如何比较值、如何打印输出以及如何读取输入。
+
+整个夏天,我录制了[一个系列视频][6],教人们如何用 [C 语言][7]编写程序。从那以后,我听到了很多人都在跟着它学习 C 语言编程的消息。所以,我想接着用 C 语言写一个“猜数字”的游戏。
+
+### 去取一个随机数
+
+从写一个函数来选择一个随机数字来开始“猜数字”游戏。在编写函数时,优秀的程序员会尽量使它们具有灵活性,这样他们就可以重用它们来解决略有不同的问题。因此,与其硬编码函数来选择 1 到 100 之间的一个随机数,不如编写函数来选择 1 到某个整数 `maxval` 之间的一个随机数:
+
+```
+#include
+#include
+
+int
+randnum(int maxval)
+{
+ /* pick a random number from 1 to maxval */
+
+ int randval;
+
+ getrandom(&randval, sizeof(int), GRND_NONBLOCK);
+
+ /* could be negative, so ensure it's positive */
+
+ if (randval < 0) {
+ return (-1 * randval % maxval + 1);
+ }
+ else {
+ return (randval % maxval + 1);
+ }
+}
+```
+
+该函数使用 Linux 的系统调用 `getrandom` 来生成一系列随机数。你可以在手册页中了解关于这个系统调用的更多信息,但请注意,`getrandom` 将用随机的 0 和 1 填充变量。这意味着最终值可以是正的,也可以是负的,因此你需要在之后进行测试,以确保 `randnum` 函数的结果是正值。
+
+### 编写程序
+
+你可以用这个函数来写你的“猜数字”程序:
+
+```
+#include
+#include
+
+int
+randnum(int maxval)
+{
+ ...
+}
+
+int
+main(void)
+{
+ int number;
+ int guess;
+
+ number = randnum(100);
+
+ puts("Guess a number between 1 and 100");
+
+ do {
+ scanf("%d", &guess);
+
+ if (guess < number) {
+ puts("Too low");
+ }
+ else if (guess > number) {
+ puts("Too high");
+ }
+ } while (guess != number);
+
+ puts("That's right!");
+
+ return 0;
+}
+```
+
+程序首先使用 `randnum` 函数从 1 到 100 之间选择一个随机数。在向用户输出一个提示后,程序进入一个 `do-while` 循环,以便用户可以猜测数字。
+
+在循环的每次迭代中,程序测试用户的猜测的数值。如果用户的猜测小于随机数,程序将输出“Too low”,如果猜测大于随机数,程序将输出“Too high”。循环继续,直到用户的猜测与随机数相同。
+
+当循环退出时,程序输出 “That's right!”,然后立即结束:
+
+```
+$ gcc -o guess -Wall guess.c
+
+$ ./guess
+Guess a number between 1 and 100
+50
+Too high
+30
+Too low
+40
+Too low
+45
+Too high
+42
+Too low
+43
+Too low
+44
+That's right!
+```
+
+### 尝试动手
+
+在学习一门新的编程语言时,这个“猜数字”游戏是一个很好的入门程序,因为它以一种非常直接的方式练习了几个常见的编程概念。通过用不同的编程语言实现这个简单的游戏,你可以演示一些核心概念,并比较每种语言的细节。
+
+你有最喜欢的编程语言吗?你会如何用它来编写“猜数字”游戏呢?关注本系列文章,查看你可能感兴趣的其他编程语言的示例。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/21/1/learn-c
+
+作者:[Jim Hall][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/jim-hall
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png?itok=-8E2ihcF (Woman using laptop concentrating)
+[2]: https://opensource.com/article/20/8/learn-open-source
+[3]: https://linux.cn/article-12962-1.html
+[4]: https://opensource.com/article/20/12/learn-java
+[5]: https://opensource.com/article/20/12/julia
+[6]: https://opensource.com/article/20/8/teaching-c
+[7]: https://opensource.com/article/20/8/c-programming-cheat-sheet
+[8]: http://www.opengroup.org/onlinepubs/009695399/functions/puts.html
+[9]: http://www.opengroup.org/onlinepubs/009695399/functions/scanf.html
diff --git a/sources/talk/20181009 GCC- Optimizing Linux, the Internet, and Everything.md b/sources/talk/20181009 GCC- Optimizing Linux, the Internet, and Everything.md
deleted file mode 100644
index f25a6665e8..0000000000
--- a/sources/talk/20181009 GCC- Optimizing Linux, the Internet, and Everything.md
+++ /dev/null
@@ -1,83 +0,0 @@
-Chao-zhi is translating
-
-GCC: Optimizing Linux, the Internet, and Everything
-======
-
-
-
-Software is useless if computers can't run it. Even the most talented developer is at the mercy of the compiler when it comes to run-time performance - if you don’t have a reliable compiler toolchain you can’t build anything serious. The GNU Compiler Collection (GCC) provides a robust, mature and high performance partner to help you get the most out of your software. With decades of development by thousands of people GCC is one of the most respected compilers in the world. If you are building applications and not using GCC, you are missing out on the best possible solution.
-
-GCC is the “de facto-standard open source compiler today” [1] according to LLVM.org and the foundation used to build complete systems - from the kernel upwards. GCC supports over 60 hardware platforms, including ARM, Intel, AMD, IBM POWER, SPARC, HP PA-RISC, and IBM Z, as well as a variety of operating environments, including GNU, Linux, Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFly BSD, Solaris, AIX, HP-UX, and RTEMS. It offers highly compliant C/C++ compilers and support for popular C libraries, such as GNU C Library (glibc), Newlib, musl, and the C libraries included with various BSD operating systems, as well as front-ends for Fortran, Ada, and GO languages. GCC also functions as a cross compiler, creating executable code for a platform other than the one on which the compiler is running. GCC is the core component of the tightly integrated GNU toolchain, produced by the GNU Project, that includes glibc, Binutils, and the GNU Debugger (GDB).
-
-"My all-time favorite GNU tool is GCC, the GNU Compiler Collection. At a time when developer tools were expensive, GCC was the second GNU tool and the one that enabled a community to write and build all the others. This tool single-handedly changed the industry and led to the creation of the free software movement, since a good, free compiler is a prerequisite to a community creating software." —Dave Neary, Open Source and Standards team at Red Hat. [2]
-
-### Optimizing Linux
-
-As the default compiler for the Linux kernel source, GCC delivers trusted, stable performance along with the additional extensions needed to correctly build the kernel. GCC is a standard component of popular Linux distributions, such as Arch Linux, CentOS, Debian, Fedora, openSUSE, and Ubuntu, where it routinely compiles supporting system components. This includes the default libraries used by Linux (such as libc, libm, libintl, libssh, libssl, libcrypto, libexpat, libpthread, and ncurses) which depend on GCC to provide correctness and performance and are used by applications and system utilities to access Linux kernel features. Many of the application packages included with a distribution are also built with GCC, such as Python, Perl, Ruby, nginx, Apache HTTP Server, OpenStack, Docker, and OpenShift. This combination of kernel, libraries, and application software translates into a large volume of code built with GCC for each Linux distribution. For the openSUSE distribution nearly 100% of native code is built by GCC, including 6,135 source packages producing 5,705 shared libraries and 38,927 executables. This amounts to about 24,540 source packages compiled weekly. [3]
-
-The base version of GCC included in Linux distributions is used to create the kernel and libraries that define the system Application Binary Interface (ABI). User space developers have the option of downloading the latest stable version of GCC to gain access to advanced features, performance optimizations, and improvements in usability. Linux distributions offer installation instructions or prebuilt toolchains for deploying the latest version of GCC along with other GNU tools that help to enhance developer productivity and improve deployment time.
-
-### Optimizing the Internet
-
-GCC is one of the most widely adopted core compilers for embedded systems, enabling the development of software for the growing world of IoT devices. GCC offers a number of extensions that make it well suited for embedded systems software development, including fine-grained control using compiler built-ins, #pragmas, inline assembly, and application-focussed command-line options. GCC supports a broad base of embedded architectures, including ARM, AMCC, AVR, Blackfin, MIPS, RISC-V, Renesas Electronics V850, and NXP and Freescale Power-based processors, producing efficient, high quality code. The cross-compilation capability offered by GCC is critical to this community, and prebuilt cross-compilation toolchains [4] are a major requirement. For example, the GNU ARM Embedded toolchains are integrated and validated packages featuring the Arm Embedded GCC compiler, libraries, and other tools necessary for bare-metal software development. These toolchains are available for cross-compilation on Windows, Linux and macOS host operating systems and target the popular ARM Cortex-R and Cortex-M processors, which have shipped in tens of billions of internet capable devices. [5]
-
-GCC empowers Cloud Computing, providing a reliable development platform for software that needs to directly manages computing resources, like database and web serving engines and backup and security software. GCC is fully compliant with C++11 and C++14 and offers experimental support for C++17 and C++2a [6], creating performant object code with a solid debugging information. Some examples of applications that utilize GCC include: MySQL Database Management System, which requires GCC for Linux [7]; the Apache HTTP Server, which recommends using GCC [8]; and Bacula, an enterprise ready network backup tool which require GCC. [9]
-
-### Optimizing Everything
-
-For the research and development of the scientific codes used in High Performance Computing (HPC), GCC offers mature C, C++, and Fortran front ends as well as support for OpenMP and OpenACC APIs for directive-based parallel programming. Because GCC offers portability across computing environments, it enables code to be more easily targeted and tested across a variety of new and legacy client and server platforms. GCC offers full support for OpenMP 4.0 for C, C++ and Fortran compilers and full support for OpenMP 4.5 for C and C++ compilers. For OpenACC, GCC supports most of the 2.5 specification and performance optimizations and is the only non-commercial, nonacademic compiler to provide [OpenACC][1] support.
-
-Code performance is an important parameter to this community and GCC offers a solid performance base. A Nov. 2017 paper published by Colfax Research evaluates C++ compilers for the speed of compiled code parallelized with OpenMP 4.x directives and for the speed of compilation time. Figure 1 plots the relative performance of the computational kernels when compiled by the different compilers and run with a single thread. The performance values are normalized so that the performance of G++ is equal to 1.0.
-
-![performance][3]
-
-Figure 1. Relative performance of each kernel as compiled by the different compilers. (single-threaded, higher is better).
-
-[Used with permission][4]
-
-The paper summarizes “the GNU compiler also does very well in our tests. G++ produces the second fastest code in three out of six cases and is amongst the fastest compiler in terms of compile time.” [10]
-
-### Who Is Using GCC?
-
-In The State of Developer Ecosystem Survey in 2018 by JetBrains, out of 6,000 developers who took the survey GCC is regularly used by 66% of C++ programmers and 73% of C programmers. [11] Here is a quick summary of the benefits of GCC that make it so popular with the developer community.
-
- * For developers required to write code for a variety of new and legacy computing platforms and operating environments, GCC delivers support for the broadest range of hardware and operating environments. Compilers offered by hardware vendors focus mainly on support for their products and other open source compilers are much more limited in the hardware and operating systems supported. [12]
-
- * There is a wide variety of GCC-based prebuilt toolchains, which has particular appeal to embedded systems developers. This includes the GNU ARM Embedded toolchains and 138 pre-compiled cross compiler toolchains available on the Bootlin web site. [13] While other open source compilers, such as Clang/LLVM, can replace GCC in existing cross compiling toolchains, these would need to be completely rebuilt by the developer. [14]
-
- * GCC delivers to application developers trusted, stable performance from a mature compiler platform. The GCC 8/9 vs. LLVM Clang 6/7 Compiler Benchmarks On AMD EPYC article provides results of 49 benchmarks ran across the four tested compilers at three optimization levels. Coming in first 34% of the time was GCC 8.2 RC1 using "-O3 -march=native" level, while at the same optimization level LLVM Clang 6.0 came in second with wins 20% of the time. [15]
-
- * GCC delivers improved diagnostics for compile time debugging [16] and accurate and useful information for runtime debugging. GCC is tightly integrated with GDB, a mature and feature complete tool which offers ‘non-stop’ debugging that can stop a single thread at a breakpoint.
-
- * GCC is a well supported platform with an active, committed community that supports the current and two previous releases. With releases schedule yearly this provides two years of support for a version.
-
-
-
-
-### GCC: Continuing to Optimize Linux, the Internet, and Everything
-
-GCC continues to move forward as a world-class compiler. The most current version of GCC is 8.2, which was released in July 2018 and added hardware support for upcoming Intel CPUs, more ARM CPUs and improved performance for AMD’s ZEN CPU. Initial C17 support has been added along with initial work towards C++2A. Diagnostics have continued to be enhanced including better emitted diagnostics, with improved locations, location ranges, and fix-it hints, particularly in the C++ front end. A blog written by David Malcolm of Red Hat in March 2018 provides an overview of usability improvements in GCC 8. [17]
-
-New hardware platforms continue to rely on the GCC toolchain for software development, such as RISC-V, a free and open ISA that is of interest to machine learning, Artificial Intelligence (AI), and IoT market segments. GCC continues to be a critical component in the continuing development of Linux systems. The Clear Linux Project for Intel Architecture, an emerging distribution built for cloud, client, and IoT use cases, provides a good example of how GCC compiler technology is being used and improved to boost the performance and security of a Linux-based system. GCC is also being used for application development for Microsoft's Azure Sphere, a Linux-based operating system for IoT applications that initially supports the ARM based MediaTek MT3620 processor. In terms of developing the next generation of programmers, GCC is also a core component of the Windows toolchain for Raspberry PI, the low-cost embedded board running Debian-based GNU/Linux that is used to promote the teaching of basic computer science in schools and developing countries.
-
-GCC was first released on March 22, 1987 by Richard Stallman, the founder of the GNU Project and was considered a significant breakthrough since it was the first portable ANSI C optimizing compiler released as free software. GCC is maintained by a community of programmers from all over the world under the direction of a steering committee that ensures broad, representative oversight of the project. GCC’s community approach is one of its strengths, resulting in a large and diverse community of developers and users that contribute to and provide support for the project. According to Open Hub, GCC “is one of the largest open-source teams in the world, and is in the top 2% of all project teams on Open Hub.” [18]
-
-There has been a lot of discussion about the licensing of GCC, most of which confuses rather than enlightens. GCC is distributed under the GNU General Public License version 3 or later with the Runtime Library Exception. This is a copyleft license, which means that derivative work can only be distributed under the same license terms. GPLv3 is intended to protect GCC from being made proprietary and requires that changes to GCC code are made available freely and openly. To the ‘end user’ the compiler is just the same as any other; using GCC makes no difference to any licensing choices you might make for your own code. [19]
-
---------------------------------------------------------------------------------
-
-via: https://www.linux.com/blog/2018/10/gcc-optimizing-linux-internet-and-everything
-
-作者:[Margaret Lewis][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.linux.com/users/margaret-lewis
-[b]: https://github.com/lujun9972
-[1]: https://www.openacc.org/tools
-[2]: /files/images/gccjpg-0
-[3]: https://www.linux.com/sites/lcom/files/styles/rendered_file/public/gcc_0.jpg?itok=HbGnRqWX "performance"
-[4]: https://www.linux.com/licenses/category/used-permission
diff --git a/sources/talk/20210113 Gain control of your calendar with this simple strategy.md b/sources/talk/20210113 Gain control of your calendar with this simple strategy.md
new file mode 100644
index 0000000000..c6935332d1
--- /dev/null
+++ b/sources/talk/20210113 Gain control of your calendar with this simple strategy.md
@@ -0,0 +1,73 @@
+[#]: collector: (lujun9972)
+[#]: translator: ( )
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (Gain control of your calendar with this simple strategy)
+[#]: via: (https://opensource.com/article/21/1/calendar-time-boxing)
+[#]: author: (Kevin Sonney https://opensource.com/users/ksonney)
+
+Gain control of your calendar with this simple strategy
+======
+Time boxing is a time management strategy that helps protect your time
+so you can focus on the task at hand.
+![Calendar close up snapshot][1]
+
+In prior years, this annual series covered individual apps. This year, we are looking at all-in-one solutions in addition to strategies to help in 2021. Welcome to day 3 of 21 Days of Productivity in 2021.
+
+Before we had calendars on our computers, we often had to do a dance around scheduling a meeting. A time that was good for Alice and Bob might not be suitable for Carol and Dave, so there was a lot of talking about when the meeting could be held. When electronic calendars became generally available, it was a revolution. Alice could check to see when Bob, Carol, Dave, _and_ a meeting room were open, and send out an invitation asking for all of them to attend.
+
+And, if you're looking for an open source calendar client, check [these alternatives][2] out.
+
+![A typical day][3]
+
+A typical day (Kevin Sonney, [CC BY-SA 4.0][4])
+
+However, this led to problems where the only time available was when Carol, who is on the West Coast, is at lunch. Or Bob planned to use that big empty space on his calendar for writing a new function, but now has a meeting in the middle of it.
+
+If Bob wants to avoid this, he creates an appointment with himself on his calendar to "Write Code," and Alice sees that block of time is not available.
+
+This strategy is called _time boxing_ and is not only useful for preventing that meeting from being scheduled at a given time, but for giving a person the time to focus on a specific task. That task might be responding to email, writing code, or taking a break.
+
+![An on-call week][5]
+
+An on-call week (Kevin Sonney, [CC BY-SA 4.0][4])
+
+Time boxing is very good for working on long projects with a deadline. With dedicated time set aside, it is easier to focus on individual steps and track progress. It also allows a person to say, "this is when I will be working on X," in a status update email or meeting.
+
+[As discussed yesterday][6], assigning dedicated times to read and respond to email helps reduce stress and set expectations for when people might receive a response. Users can schedule time to work on more complex issues that may be brought up in email as well.
+
+Taking breaks is one of the things I, at least, am _really bad_ at. After two hours of working on a problem, I know that my mind is going to be stuck in that space. For me, getting up and stepping away from my desk for a short while helps me clear my mind and focus on the next thing. In my case, this is very important after a meeting since what I may be working on next is not very likely to be directly related to the meeting I just attended.
+
+I also block out time to eat lunch since I, like many people in technology, will get wrapped up in something and forget to eat lunch until late in the day or not have a meal at all, and just snack here and there.
+
+![Blocked out time][7]
+
+Blocked out time (Kevin Sonney, [CC BY-SA 4.0][4])
+
+How do we deal with the person who schedules something in the middle of a block? There are a couple of ways. The easiest is to request a new time, just like any other meeting with a conflicting time. Sometimes, though, it can't be moved, and the meetings with myself must be moved around to accommodate.
+
+Time boxing is an effective strategy for protecting time to work on specific things, take breaks, or process other tasks, and one I regularly use for both work and my hobbies (like writing articles for OpenSource.com 😄).
+
+Need to keep your schedule straight? Learn how to do it using open source with these free...
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/21/1/calendar-time-boxing
+
+作者:[Kevin Sonney][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/ksonney
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/calendar.jpg?itok=jEKbhvDT (Calendar close up snapshot)
+[2]: https://opensource.com/alternatives/google-calendar
+[3]: https://opensource.com/sites/default/files/pictures/a-typical-day.png (A typical day)
+[4]: https://creativecommons.org/licenses/by-sa/4.0/
+[5]: https://opensource.com/sites/default/files/pictures/an-on-call-week.png (An on-call week)
+[6]: https://opensource.com/article/21/1/email-rules
+[7]: https://opensource.com/sites/default/files/pictures/oh-that-person.png (Blocked out time)
diff --git a/sources/tech/20190205 5 Streaming Audio Players for Linux.md b/sources/tech/20190205 5 Streaming Audio Players for Linux.md
index 1ddd4552f5..3b03f7bce1 100644
--- a/sources/tech/20190205 5 Streaming Audio Players for Linux.md
+++ b/sources/tech/20190205 5 Streaming Audio Players for Linux.md
@@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
-[#]: translator: ( )
+[#]: translator: (Chao-zhi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
diff --git a/sources/tech/20190924 Integrate online documents editors, into a Python web app using ONLYOFFICE.md b/sources/tech/20190924 Integrate online documents editors, into a Python web app using ONLYOFFICE.md
deleted file mode 100644
index 35c101ed2c..0000000000
--- a/sources/tech/20190924 Integrate online documents editors, into a Python web app using ONLYOFFICE.md
+++ /dev/null
@@ -1,381 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (Integrate online documents editors, into a Python web app using ONLYOFFICE)
-[#]: via: (https://opensourceforu.com/2019/09/integrate-online-documents-editors-into-a-python-web-app-using-onlyoffice/)
-[#]: author: (Aashima Sharma https://opensourceforu.com/author/aashima-sharma/)
-
-Integrate online documents editors, into a Python web app using ONLYOFFICE
-======
-
-[![][1]][2]
-
-_[ONLYOFFICE][3] is an open-source collaborative office suite distributed under the terms of GNU AGPL v.3 license. It contains three editors for text documents, spreadsheets, and presentations and features the following:_
-
- * Viewing, editing and co-editing docx, .xlsx, pptx files. OOXML as a core format ensures high compatibility with Microsoft Word, Excel and PowerPoint files.
- * Editing other popular formats (.odt, .rtf, .txt, .html, .ods., .csv, .odp) with inner conversion to OOXML.
- * Familiar tabbed interface.
- * Collaboration tools: two co-editing modes (fast and strict), track changes, comments and integrated chat.
- * Flexible access rights management: full access, read only, review, form filling and comment.
- * Building your own add-ons using the API.
- * 250 languages available and hieroglyphic alphabets.
-
-
-
-API allowing the developers integrate ONLYOFFICE editors into their own web sites and apps written in any programming language and setup and manage the editors.
-
-To integrate ONLYOFFICE editors, we will need an integration app connecting the editors (ONLYOFFICE Document Server) and your service. To use editors within your interface, it should grant to ONLYOFFICE the following permissions :
-
- * Adding and executing custom code.
- * Anonymous access for downloading and saving files. It means that the editors only communicate with your service on the server side without involving any user authorization data from the client side (browser cookies).
- * Adding new buttons to UI (for example, “Open in ONLYOFFICE”, “Edit in ONLYOFFICE”).
- * Оpening a new page where ONLYOFFICE can execute the script to add an editor.
- * Ability to specify Document Server connection settings.
-
-
-
-There are several cases of successful integration with popular collaboration solutions such as Nextcloud, ownCloud, Alfresco, Confluence and SharePoint, via official ready-to-use connectors offered by ONLYOFFICE.
-
-One of the most actual integration cases is the integration of ONLYOFFICE editors with its open-source collaboration platform written in C#. This platform features document and project management, CRM, email aggregator, calendar, user database, blogs, forums, polls, wiki, and instant messenger.
-
-Integrating online editors with CRM and Projects modules, you can:
-
- * Attach documents to CRM opportunities and cases, or to project tasks and discussions, or even create a separate folder with documents, spreadsheets, and presentations related to the project.
- * Create new docs, sheets, and presentations right in CRM or in the Project module.
- * Open and edit attached documents, or download and delete them.
- * Import contacts to your CRM in bulk from a CSV file as well as export the customer database as a CSV file.
-
-
-
-In the Mail module, you can attach files stored in the Documents module or insert a link to the needed document into the message body. When ONLYOFFICE users receive a message with an attached document, they are able to: download the attachment, view the file in the browser, open the file for editing or save it to the Documents module. As mentioned above, if the format differs from OOXML, the file will be automatically converted to .docx/.xlsx/.pptx and its copy will be saved in the original format as well.
-
-In this article, you will see the integration process of ONLYOFFICE into the Document Management System written in Python, one of the most popular programming languages. The following steps will show you how to create all the necessary elements to make possible work and collaboration on documents within DMS interface: viewing, editing, co-editing, saving files and users access management and may serve as an example of integration into your Python app.
-
-**1\. What you will need**
-
-Let’s start off by creating key components of the integration process: [_ONLYOFFICE Document Server_][4] and DMS written in Python.
-
-1.1 To install ONLYOFFICE Document Server you can choose from multiple installation options: compile the source code available on GitHub, use .deb or .rpm packages or the Docker image.
-We recommend installing Document Server and all the necessary dependencies with only one command using the Docker image. Please note, that choosing this method, you need the latest Docker version installed.
-
-```
-docker run -itd -p 80:80 onlyoffice/documentserver-de
-```
-
-1.2 We need to develop DMS in Python. If you have one already, please, check if it meets the following conditions:
-
- * Has a list of files you need to open for viewing/editing
- * Allows downloading files
-
-
-
-For the app, we will use a Bottle framework. We will install it in the working directory using the following command:
-
-```
-pip install bottle
-```
-
-Then we create the app’s code * main.py* and the template _index.tpl_ .
-We add the following code into this * main.py* file:
-
-```
-from bottle import route, run, template, get, static_file # connecting the framework and the necessary components
-@route('/') # setting up routing for requests for /
-def index():
-return template('index.tpl') # showing template in response to request
-run(host="localhost", port=8080) # running the application on port 8080
-```
-
-Once we run the app, an empty page will be rendered on .
-
-In order, the Document Server to be able to create new docs, add default files and form a list of their names in the template, we should create a folder _files_ , and put 3 files (.docx, .xlsx and .pptx) in there.
-
-To read these files’ names, we use the _listdir_ component.
-
-```
-from os import listdir
-```
-
-Now let’s create a variable for all the file names from the files folder:
-
-```
-sample_files = [f for f in listdir('files')]
-```
-
-To use this variable in the template, we need to pass it through the _template_ method:
-
-```
-def index():
-return template('index.tpl', sample_files=sample_files)
-
-Here’s this variable in the template:
-%for file in sample_files:
-