From ee5dc1c18b44ef239d7aa1ce23097a85731bde14 Mon Sep 17 00:00:00 2001
From: cool-summer-021
Date: Mon, 5 Dec 2022 17:04:43 +0800
Subject: [PATCH 001/266] =?UTF-8?q?=E7=94=B3=E9=A2=86=E6=96=87=E7=AB=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sources/tech/20221004 Learn the OSI model in 5 minutes.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sources/tech/20221004 Learn the OSI model in 5 minutes.md b/sources/tech/20221004 Learn the OSI model in 5 minutes.md
index 717e6d1946..eb53583bb2 100644
--- a/sources/tech/20221004 Learn the OSI model in 5 minutes.md
+++ b/sources/tech/20221004 Learn the OSI model in 5 minutes.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/10/osi-model-network-communications"
[#]: author: "Anamika https://opensource.com/users/anamika"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "cool-summer-021"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
@@ -83,7 +83,7 @@ via: https://opensource.com/article/22/10/osi-model-network-communications
作者:[Anamika][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
+译者:[cool-summer-021](https://github.com/cool-summer-021)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From 01945aa25467e527d9211902884ee16a7eaad513 Mon Sep 17 00:00:00 2001
From: CanYellow
Date: Mon, 12 Dec 2022 10:49:48 +0800
Subject: [PATCH 002/266] Second Translation Request
---
sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
index c95461a3c6..82d777b905 100644
--- a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
+++ b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/10/tooljet-open-source-journey"
[#]: author: "Navaneeth PK https://opensource.com/users/navaneeth"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "CanYellow"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 162e301137f1226cce141acbc3a6a9f7ae6ad579 Mon Sep 17 00:00:00 2001
From: yzuowei
Date: Mon, 12 Dec 2022 14:14:44 +0800
Subject: [PATCH 003/266] translated
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 第一段结尾的 lingua franca 我没有翻译因为我认为这里不应该翻译
- 文中有一处提到 epoch 的地方我一半觉得不用翻译,一半不会翻译
- 链接中的 [1] 我把 lingua franca 的 wiki 链接换成了百度百科链接
- epoch 处我添加了 [4] UNIX时间 的百度百科链接
- 我在 ### 调用涉及指针的 C 函数 结尾处加入了较长一段注释,主要解释作者代码在本地运行时可能会遇到的问题,我在其中加入了两个链接 [5] 和 [6]
- [1] 的原链接是 https://en.wikipedia.org/wiki/Lingua_franca
- [4] epoch 的 wiki 链接是 https://en.wikipedia.org/wiki/Epoch_(computing)
- 我感觉 wiki 写的比百度百科要好,但是写得好的 wiki 内容是英文的,访问也是个问题
---
...️ Introducing Rust calls to C library functions.md | 283 -----------------
...️ Introducing Rust calls to C library functions.md | 287 ++++++++++++++++++
2 files changed, 287 insertions(+), 283 deletions(-)
delete mode 100644 sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
create mode 100644 translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
diff --git a/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
deleted file mode 100644
index d275e3617b..0000000000
--- a/sources/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
+++ /dev/null
@@ -1,283 +0,0 @@
-[#]: subject: "Introducing Rust calls to C library functions"
-[#]: via: "https://opensource.com/article/22/11/rust-calls-c-library-functions"
-[#]: author: "Marty Kalin https://opensource.com/users/mkalindepauledu"
-[#]: collector: "lkxed"
-[#]: translator: "yzuowei"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Introducing Rust calls to C library functions
-======
-
-Why call C functions from Rust? The short answer is software libraries. A longer answer touches on where C stands among programming languages in general and towards Rust in particular. C, C++, and Rust are systems languages, which give programmers access to machine-level data types and operations. Among these three systems languages, C remains the dominant one. The kernels of modern operating systems are written mainly in C, with assembly language accounting for the rest. The standard system libraries for input and output, number crunching, cryptography, security, networking, internationalization, string processing, memory management, and more, are likewise written mostly in C. These libraries represent a vast infrastructure for applications written in any other language. Rust is well along the way to providing fine libraries of its own, but C libraries—around since the 1970s and still growing—are a resource not to be ignored. Finally, C is still the [lingua franca][1] among programming languages: most languages can talk to C and, through C, to any other language that does so.
-
-### Two proof-of-concept examples
-
-Rust has an FFI (Foreign Function Interface) that supports calls to C functions. An issue for any FFI is whether the calling language covers the data types in the called language. For example, `ctypes` is an FFI for calls from Python into C, but Python doesn't cover the unsigned integer types available in C. As a result, `ctypes` must resort to workarounds.
-
-By contrast, Rust covers all the primitive (that is, machine-level) types in C. For example, the Rust `i32` type matches the C `int` type. C specifies only that the `char` type must be one byte in size and other types, such as `int`, must be at least this size; but nowadays every reasonable C compiler supports a four-byte `int`, an eight-byte `double` (in Rust, the `f64` type), and so on.
-
-There is another challenge for an FFI directed at C: Can the FFI handle C's raw pointers, including pointers to arrays that count as strings in C? C does not have a string type, but rather implements strings as character arrays with a non-printing terminating character, the _null terminator_ of legend. By contrast, Rust has two string types: `String` and `&str` (string slice). The question, then, is whether the Rust FFI can transform a C string into a Rust one—and the answer is _yes_.
-
-Pointers to structures also are common in C. The reason is efficiency. By default, a C structure is passed _by_value (that is, by a byte-per-byte copy) when a structure is either an argument passed to a function or a value returned from one. C structures, like their Rust counterparts, can include arrays and nest other structures and so be arbitrarily large in size. Best practice in either language is to pass and return structures by reference, that is, by passing or returning the structure's address rather than a copy of the structure. Once again, the Rust FFI is up to the task of handling C pointers to structures, which are common in C libraries.
-
-The first code example focuses on calls to relatively simple C library functions such as `abs` (absolute value) and `sqrt` (square root). These functions take non-pointer scalar arguments and return a non-pointer scalar value. The second code example, which covers strings and pointers to structures, introduces the [bindgen][2] utility, which generates Rust code from C interface (header) files such as `math.h` and `time.h`. C header files specify the calling syntax for C functions and define structures used in such calls. The two code examples are [available on my homepage][3].
-
-### Calling relatively simple C functions
-
-The first code example has four Rust calls to C functions in the standard mathematics library: one call apiece to `abs` (absolute value) and `pow` (exponentiation), and two calls to `sqrt` (square root). The program can be built directly with the `rustc` compiler, or more conveniently with the `cargo build` command:
-
-```
-use std::os::raw::c_int; // 32 bits
-use std::os::raw::c_double; // 64 bits
-
-// Import three functions from the standard library libc.
-// Here are the Rust declarations for the C functions:
-extern "C" {
- fn abs(num: c_int) -> c_int;
- fn sqrt(num: c_double) -> c_double;
- fn pow(num: c_double, power: c_double) -> c_double;
-}
-
-fn main() {
- let x: i32 = -123;
- println!("\nAbsolute value of {x}: {}.", unsafe { abs(x) });
-
- let n: f64 = 9.0;
- let p: f64 = 3.0;
- println!("\n{n} raised to {p}: {}.", unsafe { pow(n, p) });
-
- let mut y: f64 = 64.0;
- println!("\nSquare root of {y}: {}.", unsafe { sqrt(y) });
-
- y = -3.14;
- println!("\nSquare root of {y}: {}.", unsafe { sqrt(y) }); //** NaN = NotaNumber
-}
-```
-
-The two `use` declarations at the top are for the Rust data types `c_int` and `c_double`, which match the C types `int` and `double`, respectively. The standard Rust module `std::os::raw` defines fourteen such types for C compatibility. The module `std::ffi` has the same fourteen type definitions together with support for strings.
-
-The `extern "C"` block above the `main` function then declares the three C library functions called in the `main` function below. Each call uses the standard C function's name, but each call must occur within an `unsafe` block. As every programmer new to Rust discovers, the Rust compiler enforces memory safety with a vengeance. Other languages (in particular, C and C++) do not make the same guarantees. The `unsafe` block thus says: Rust takes no responsibility for whatever unsafe operations may occur in the external call.
-
-The first program's output is:
-
-```
-Absolute value of -123: 123.
-9 raised to 3: 729
-Square root of 64: 8.
-Square root of -3.14: NaN.
-```
-
-In the last output line, the `NaN` stands for Not a Number: the C `sqrt` library function expects a non-negative value as its argument, which means that the argument -3.14 generates `NaN` as the returned value.
-
-### Calling C functions involving pointers
-
-C library functions in security, networking, string processing, memory management, and other areas regularly use pointers for efficiency. For example, the library function `asctime` (time as an ASCII string) expects a pointer to a structure as its single argument. A Rust call to a C function such as `asctime` is thus trickier than a call to `sqrt`, which involves neither pointers nor structures.
-
-The C structure for the `asctime` function call is of type `struct tm`. A pointer to such a structure also is passed to library function `mktime` (make a time value). The structure breaks a time into units such as the year, the month, the hour, and so forth. The structure's fields are of type `time_t`, an alias for for either `int` (32 bits) or `long` (64 bits). The two library functions combine these broken-apart time pieces into a single value: `asctime` returns a string representation of the time, whereas `mktime` returns a `time_t` value that represents the number of elapsed seconds since the _epoch_, which is a time relative to which a system's clock and timestamp are determined. Typical epoch settings are January 1 00:00:00 (zero hours, minutes, and seconds) of either 1900 or 1970.
-
-The C program below calls `asctime` and `mktime`, and uses another library function `strftime` to convert the `mktime` returned value into a formatted string. This program acts as a warm-up for the Rust version:
-
-```
-#include
-#include
-
-int main () {
- struct tm sometime; /* time broken out in detail */
- char buffer[80];
- int utc;
-
- sometime.tm_sec = 1;
- sometime.tm_min = 1;
- sometime.tm_hour = 1;
- sometime.tm_mday = 1;
- sometime.tm_mon = 1;
- sometime.tm_year = 1;
- sometime.tm_hour = 1;
- sometime.tm_wday = 1;
- sometime.tm_yday = 1;
-
- printf("Date and time: %s\n", asctime(&sometime));
-
- utc = mktime(&sometime);
- if( utc < 0 ) {
- fprintf(stderr, "Error: unable to make time using mktime\n");
- } else {
- printf("The integer value returned: %d\n", utc);
- strftime(buffer, sizeof(buffer), "%c", &sometime);
- printf("A more readable version: %s\n", buffer);
- }
-
- return 0;
-}
-```
-
-The program outputs:
-
-```
-Date and time: Fri Feb 1 01:01:01 1901
-The integer value returned: 2120218157
-A more readable version: Fri Feb 1 01:01:01 1901
-```
-
-In summary, the Rust calls to library functions `asctime` and `mktime` must deal with two issues:
-
-- Passing a raw pointer as the single argument to each library function.
-- Converting the C string returned from `asctime` into a Rust string.
-
-### Rust calls to `asctime` and `mktime`
-
-The `bindgen` utility generates Rust support code from C header files such as `math.h` and `time.h`. In this example, a simplified version of `time.h` will do but with two changes from the original:
-
-- The built-in type `int` is used instead of the alias type `time_t`. The bindgen utility can handle the `time_t` type but generates some distracting warnings along the way because `time_t` does not follow Rust naming conventions: in `time_t` an underscore separates the `t` at the end from the `time` that comes first; Rust would prefer a CamelCase name such as `TimeT`.
-- The type `struct tm` type is given `StructTM` as an alias for the same reason.
-
-Here is the simplified header file with declarations for `mktime` and `asctime` at the bottom:
-
-```
-typedef struct tm {
- int tm_sec; /* seconds */
- int tm_min; /* minutes */
- int tm_hour; /* hours */
- int tm_mday; /* day of the month */
- int tm_mon; /* month */
- int tm_year; /* year */
- int tm_wday; /* day of the week */
- int tm_yday; /* day in the year */
- int tm_isdst; /* daylight saving time */
-} StructTM;
-
-extern int mktime(StructTM*);
-extern char* asctime(StructTM*);
-```
-
-With `bindgen` installed, `%` as the command-line prompt, and `mytime.h` as the header file above, the following command generates the required Rust code and saves it in the file `mytime.rs`:
-
-```
-% bindgen mytime.h > mytime.rs
-```
-
-Here is the relevant part of `mytime.rs`:
-
-```
-/* automatically generated by rust-bindgen 0.61.0 */
-
-#[repr(C)]
-#[derive(Debug, Copy, Clone)]
-pub struct tm {
- pub tm_sec: ::std::os::raw::c_int,
- pub tm_min: ::std::os::raw::c_int,
- pub tm_hour: ::std::os::raw::c_int,
- pub tm_mday: ::std::os::raw::c_int,
- pub tm_mon: ::std::os::raw::c_int,
- pub tm_year: ::std::os::raw::c_int,
- pub tm_wday: ::std::os::raw::c_int,
- pub tm_yday: ::std::os::raw::c_int,
- pub tm_isdst: ::std::os::raw::c_int,
-}
-
-pub type StructTM = tm;
-
-extern "C" {
- pub fn mktime(arg1: *mut StructTM) -> ::std::os::raw::c_int;
-}
-
-extern "C" {
- pub fn asctime(arg1: *mut StructTM) -> *mut ::std::os::raw::c_char;
-}
-
-#[test]
-fn bindgen_test_layout_tm() {
- const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit();
- let ptr = UNINIT.as_ptr();
- assert_eq!(
- ::std::mem::size_of::(),
- 36usize,
- concat!("Size of: ", stringify!(tm))
- );
- ...
-```
-
-The Rust structure `struct tm`, like the C original, contains nine 4-byte integer fields. The field names are the same in C and Rust. The `extern "C"` blocks declare the library functions `asctime` and `mktime` as taking one argument apiece, a raw pointer to a mutable `StructTM` instance. (The library functions may mutate the structure via the pointer passed as an argument.)
-
-The remaining code, under the `#[test]` attribute, tests the layout of the Rust version of the time structure. The test can be run with the `cargo test` command. At issue is that C does not specify how the compiler must lay out the fields of a structure. For example, the C `struct tm` starts out with the field `tm_sec` for the second; but C does not require that the compiled version has this field as the first. In any case, the Rust tests should succeed and the Rust calls to the library functions should work as expected.
-
-### Getting the second example up and running
-
-The code generated from `bindgen` does not include a `main` function and, therefore, is a natural module. Below is the `main` function with the `StructTM` initialization and the calls to `asctime` and `mktime`:
-
-```
-mod mytime;
-use mytime::*;
-use std::ffi::CStr;
-
-fn main() {
- let mut sometime = StructTM {
- tm_year: 1,
- tm_mon: 1,
- tm_mday: 1,
- tm_hour: 1,
- tm_min: 1,
- tm_sec: 1,
- tm_isdst: -1,
- tm_wday: 1,
- tm_yday: 1
- };
-
- unsafe {
- let c_ptr = &mut sometime; // raw pointer
-
- // make the call, convert and then own
- // the returned C string
- let char_ptr = asctime(c_ptr);
- let c_str = CStr::from_ptr(char_ptr);
- println!("{:#?}", c_str.to_str());
-
- let utc = mktime(c_ptr);
- println!("{}", utc);
- }
-}
-```
-
-The Rust code can be compiled (using either `rustc` directly or `cargo`) and then run. The output is:
-
-```
-Ok(
- "Mon Feb 1 01:01:01 1901\n",
-)
-2120218157
-```
-
-The calls to the C functions `asctime` and `mktime` again must occur inside an `unsafe` block, as the Rust compiler cannot be held responsible for any memory-safety mischief in these external functions. For the record, `asctime` and `mktime` are well behaved. In the calls to both functions, the argument is the raw pointer `ptr`, which holds the (stack) address of the `sometime` structure.
-
-The call to `asctime` is the trickier of the two calls because this function returns a pointer to a C `char`, the character `M` in `Mon` of the text output. Yet the Rust compiler does not know where the C string (the null-terminated array of `char`) is stored. In the static area of memory? On the heap? The array used by the `asctime` function to store the text representation of the time is, in fact, in the static area of memory. In any case, the C-to-Rust string conversion is done in two steps to avoid compile-time errors:
-
-- The call `Cstr::from_ptr(char_ptr)` converts the C string to a Rust string and returns a reference stored in the `c_str` variable.
-- The call to `c_str.to_str()` ensures that `c_str` is the owner.
-
-The Rust code does not generate a human-readable version of the integer value returned from `mktime`, which is left as an exercise for the interested. The Rust module `chrono::format` includes a `strftime` function, which can be used like the C function of the same name to get a text representation of the time.
-
-### Calling C with FFI and bindgen
-
-The Rust FFI and the `bindgen` utility are well designed for making Rust calls out to C libraries, whether standard or third-party. Rust talks readily to C and thereby to any other language that talks to C. For calling relatively simple library functions such as `sqrt`, the Rust FFI is straightforward because Rust's primitive data types cover their C counterparts.
-
-For more complicated interchanges—in particular, Rust calls to C library functions such as `asctime` and `mktime` that involve structures and pointers—the `bindgen` utility is the way to go. This utility generates the support code together with appropriate tests. Of course, the Rust compiler cannot assume that C code measures up to Rust standards when it comes to memory safety; hence, calls from Rust to C must occur in `unsafe` blocks.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/11/rust-calls-c-library-functions
-
-作者:[Marty Kalin][a]
-选题:[lkxed][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/mkalindepauledu
-[b]: https://github.com/lkxed
-[1]: https://en.wikipedia.org/wiki/Lingua_franca
-[2]: https://github.com/rust-lang/rust-bindgen
-[3]: https://condor.depaul.edu/mkalin
-
diff --git a/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
new file mode 100644
index 0000000000..c318bfa2dd
--- /dev/null
+++ b/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
@@ -0,0 +1,287 @@
+[#]: subject: "Introducing Rust calls to C library functions"
+[#]: via: "https://opensource.com/article/22/11/rust-calls-c-library-functions"
+[#]: author: "Marty Kalin https://opensource.com/users/mkalindepauledu"
+[#]: collector: "lkxed"
+[#]: translator: "yzuowei"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+介绍从 Rust 调用 C 库函数
+======
+
+为什么要从 Rust 调用 C 函数?简短的回答就是软件库。冗长的答案则触及到 C 在众多编程语言中的地位,特别是相对 Rust 而言。C,C++,还有 Rust 都是系统语言,这意味着程序员会访问机器层面的数据类型与操作。在这三个系统语言中,C 依然占据主导地位。现代操作系统的内核大致用 C 来写,其余部分依靠汇编语言来补充。在标准系统函数库中,输入与输出、数字处理、加密计算、安全、网络、国际化、字符串处理、内存管理,还用更多,都大体用 C 来写。这些函数库所代表的是一个庞大的基础架构,支撑着用其他语言写出来的应用。Rust 发展至今也有着可观的函数库,但是 C 的函数库——自1970年代就已存在,迄今还在蓬勃发展——是一个无法被忽视的资源。最后一点是, C 依然还是编程语言中的 [lingua franca][1]:大部分语言都与 C 交流,透过 C,语言互相交流。
+
+### 两个概念证明的例子
+
+Rust 支持 FFI (外部函数接口)用以调用 C 函数。任何 FFI 所需要面临的问题是调用方语言是否包括了被调用语言的数据类型。例如,`ctypes` 是 Python 调用 C 的 FFI,但是 Python 并没有包括 C 所支持的无符号整数类型。结果就是,`ctypes` 必须寻求解决方案。
+
+与之相对的是,Rust 包含了所有 C 中的原始(即,机器层面)类型。比如说,Rust 中的 `i32` 类对应 C 中的 `int` 类。C 特别声明了 `char` 类必须是一个字节大小,而其他类型,比如 `int`,必须至少是这个大小(LCTT 译注:原文处有评论指出 `int` 大小依照 C 标准应至少为2字节);然而如今所有合理的 C 编译器都支持四字节的 `int`,以及八字节的 `double`(Rust 中则是 `f64` 类),以此类推。
+
+面向 C 的 FFI 所面临的另一个挑战是:FFI 是否能够处理 C 的裸指针,包括指向被看作是字符串的数组指针。C 没有字符串类型,它通过结合字符组和一个不会被打印的终止符来实现字符串,大名鼎鼎的_空终止符_。与之相对,Rust 有两个字符串类型:`String` 和 `&str` (字符串切片)。问题是,Rust FFI 是否能将 C 字符串转化成 Rust 字符串——答案是_肯定的_。
+
+出于对效率的追求,结构体指针在 C 中也很常见。一个 C 结构体在作为一个函数的参数或者返回值的时候,其默认行为是传递值(即,一个字节一个字节的复制)。C 结构体,如同它在 Rust 中的对应部分一样,可以包含数组和嵌套其他结构体,所以其大小是不定的。结构体在两种语言中的最佳用法是传递或返回引用,也就是说,传递或返回结构体的地址而不是结构体本身的复制。Rust 再一次成功处理了 C 的结构体指针,其在 C 函数库中十分普遍。
+
+第一段代码案例专注于调用相对简单的 C 库函数,比如 `abs`(绝对值)和 `sqrt`(平方根)。这些函数使用非指针标量参数并返回一个非指针标量值。第二段代码案例则涉及了字符串和结构体指针,在这里会介绍工具 [bindgen][2],其通过 C 接口(头)文件生成 Rust 代码,比如 `math.h` 以及 `time.h`。C 头文件声明了 C 函数的调用语法并定义了会被调用的结构体。两段代码都能在[我的主页上][3]找到。
+
+### 调用相对简单的 C 函数
+
+第一段代码案例有四处 Rust 对标准数学库内的 C 函数的调用:两处分别调用了 `abs`(绝对值)和 `pow`(幂),两处重复调用了 `sqrt`(平方根)。这个程序可以直接用 `rustc` 编译器进行构建,或者使用更方便的命令 `cargo build`:
+
+```
+use std::os::raw::c_int; // 32位
+use std::os::raw::c_double; // 64位
+
+// 从标准库 libc 中引入三个函数。
+// 此处是 Rust 对三个 C 函数的声明:
+extern "C" {
+ fn abs(num: c_int) -> c_int;
+ fn sqrt(num: c_double) -> c_double;
+ fn pow(num: c_double, power: c_double) -> c_double;
+}
+
+fn main() {
+ let x: i32 = -123;
+ println!("\n{x}的绝对值是: {}.", unsafe { abs(x) });
+
+ let n: f64 = 9.0;
+ let p: f64 = 3.0;
+ println!("\n{n}的{p}次方是: {}.", unsafe { pow(n, p) });
+
+ let mut y: f64 = 64.0;
+ println!("\n{y}的平方根是: {}.", unsafe { sqrt(y) });
+
+ y = -3.14;
+ println!("\n{y}的平方根是: {}.", unsafe { sqrt(y) }); //** NaN = NotaNumber(不是数字)
+}
+```
+
+顶部的两个 `use` 声明是 Rust 的数据类型 `c_int` 和 `c_double`,对应 C 类型里的 `int` 和 `double`。Rust 标准模块 `std::os::raw` 定义了十四个类似的类型以确保跟 C 的兼容性。模块 `std::ffi` 中有十四个同样的类型定义以及对字符串的支持。
+
+位于 `main` 函数上的 `extern "C"` 区域声明了三个 C 库函数,这些函数会在 `main` 函数内被调用。每次调用都使用了标准的 C 函数名,但每次调用都必须发生在一个 `unsafe` 区域内。正如每个新接触 Rust 的程序员所发现的那样,Rust 编译器极度强制内存安全。其他语言(特别是 C 和 C++)作不出相同的保证。`unsafe` 区域其实是说:Rust 对外部调用中可能存在的不安全行为不负责。
+
+第一个程序输出为:
+
+```
+-123的绝对值是: 123.
+9的3次方是: 729.
+64的平方根是: 8.
+-3.14的平方根是: NaN.
+```
+
+输出的最后一行的 `NaN` 表示不是数字 (Not a Number):C 库函数 `sqrt` 期待一个非负值作为参数,这使得参数-3.14生成了 `NaN` 作为返回值。
+
+### 调用涉及指针的 C 函数
+
+C 库函数为了提高效率经常在安全、网络、字符串处理、内存管理,以及其他领域中使用指针。例如,库函数 `asctime`(时间作为 ASCII 字符串)期待一个结构体指针作为其参数。Rust 调用类似 `asctime` 的 C 函数就会比调用 `sqrt` 要更加棘手一些,后者既没有牵扯到指针,也不涉及到结构体。
+
+函数 `asctime` 调用的 C 结构体类型为 `struct tm`。一个指向此结构体的指针会作为参数被传递给库函数 `mktime`(时间作为值)。此结构体会将时间拆分成诸如年、月、小时之类的单位。此结构体的字段 (fields) 类型为 `time_t`,是 `int`(32位)和 `long`(64位)的异名。两个库函数将这些破碎的时间碎片组合成了一个单一值:`asctime` 返回一个字符串用以表达时间,而 `mktime` 返回一个 `time_t` 值表示自 [_epoch_][4],即系统时钟和时间戳被决定的那一刻,以来所经历的秒数。典型的 epoch 设置为1900年或1970年,1月1日,0时0分0秒。
+
+以下的 C 程序调用了 `asctime` 和 `mktime`,并使用了其他库函数 `strftime` 来将 `mktime` 的返回值转化成一个格式化的字符串。这个程序可被视作 Rust 对应版本的预热:
+
+```
+#include
+#include
+
+int main () {
+ struct tm sometime; /* 时间被打破细分 */
+ char buffer[80];
+ int utc;
+
+ sometime.tm_sec = 1;
+ sometime.tm_min = 1;
+ sometime.tm_hour = 1;
+ sometime.tm_mday = 1;
+ sometime.tm_mon = 1;
+ sometime.tm_year = 1;
+ sometime.tm_hour = 1; /*LCTT 译注:这里作者多敲了一行*/
+ sometime.tm_wday = 1;
+ sometime.tm_yday = 1;
+
+ printf("日期与时间: %s\n", asctime(&sometime));
+
+ utc = mktime(&sometime);
+ if( utc < 0 ) {
+ fprintf(stderr, "错误: mktime 无法生成时间\n");
+ } else {
+ printf("返回的整数值: %d\n", utc);
+ strftime(buffer, sizeof(buffer), "%c", &sometime);
+ printf("更加可读的版本: %s\n", buffer);
+ }
+
+ return 0;
+}
+```
+
+程序输出为:
+
+```
+日期与时间: Fri Feb 1 01:01:01 1901
+返回的整数值: 2120218157
+更加可读的版本: Fri Feb 1 01:01:01 1901
+```
+
+(LCTT 译注:如果你尝试在自己电脑上运行这段代码,然后得到了一行关于 `mktime` 的错误信息,然后又在网上随便找了个在线 C 编译器,复制代码然后得到了跟这里的结果有区别但是没有错误的结果,不要慌,我的电脑上也是这样的。导致本地机器上 `mktime` 失败的原因是作者没有设置 `tm_isdst`,这个是用来标记夏令时的 flag。[`tm_isdst` 大于零则夏令时生效中,等于零则不生效,小于零标记未知][5]。加入 `sometime.tm_isdst = 0` 或 `= -1` 后应该就能得到跟在线编译器大致一样的结果。不同的地方在于结果第一行我得到的是 `Mon Feb ...`,这个与作者代码中 `sometime.tm_wday = 1` 对应,这里因该是作者写错了;第二行我和作者和网上得到的数字都不一样,这大概是合理的,因为这与机器的 epoch 有关;第三行我跟作者的结果是一样的,1901年2月1日也确实是周五,这是因为 [`mktime` 其实会修正时间参数中不合理的地方][6]。至于夏令时具体是如何影响 `mktime` 这个问题,我能查到的只有 `mktime` 的计算受时区影响,更底层的原因我也不知道了。)
+
+总的来说,Rust 在调用库函数 `asctime` 和 `mktime` 时,必须处理以下两个问题:
+
+- 将裸指针作为唯一参数传递给每个库函数。
+- 把从 `asctime` 返回的 C 字符串转化为 Rust 字符串。
+
+### Rust 调用 `asctime` 和 `mktime`
+
+工具 `bindgen` 会根据类似 `math.h` 和 `time.h` 之类的 C 头文件生成 Rust 支持的代码。下面这个简化版的 `time.h` 就可以用来做例子,简化版与原版主要有两个不同:
+
+- 内置类型 `int` 被用来取代异名类型 `time_t`。工具 bindgen 可以处理 `time_t` 类但是会生成一些烦人的警告,因为 `time_t` 不符合 Rust 的命名规范:`time_t` 以下划线区分 `time` 和 `t`;Rust 更偏好驼峰式命名方法,比如 `TimeT`。
+- 出于同样的原因,这里选择 `StructTM` 作为 `struct tm` 的异名。
+
+以下是一份简化版的头文件,`mktime` 和 `asctime` 在文件底部:
+
+```
+typedef struct tm {
+ int tm_sec; /* 秒 */
+ int tm_min; /* 分钟 */
+ int tm_hour; /* 小时 */
+ int tm_mday; /* 日 */
+ int tm_mon; /* 月 */
+ int tm_year; /* 年 */
+ int tm_wday; /* 星期 */
+ int tm_yday; /* 一年中的第几天 */
+ int tm_isdst; /* 夏令时 */
+} StructTM;
+
+extern int mktime(StructTM*);
+extern char* asctime(StructTM*);
+```
+
+`bindgen` 安装好后,`%` 作为命令行提示,`mytime.h` 作为以上提到的头文件,以下命令可以生成所需的 Rust 代码并将其保存到文件 `mytime.rs`:
+
+```
+% bindgen mytime.h > mytime.rs
+```
+
+以下是 `mytime.rs` 中的重要部分:
+
+```
+/* automatically generated by rust-bindgen 0.61.0 */
+
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct tm {
+ pub tm_sec: ::std::os::raw::c_int,
+ pub tm_min: ::std::os::raw::c_int,
+ pub tm_hour: ::std::os::raw::c_int,
+ pub tm_mday: ::std::os::raw::c_int,
+ pub tm_mon: ::std::os::raw::c_int,
+ pub tm_year: ::std::os::raw::c_int,
+ pub tm_wday: ::std::os::raw::c_int,
+ pub tm_yday: ::std::os::raw::c_int,
+ pub tm_isdst: ::std::os::raw::c_int,
+}
+
+pub type StructTM = tm;
+
+extern "C" {
+ pub fn mktime(arg1: *mut StructTM) -> ::std::os::raw::c_int;
+}
+
+extern "C" {
+ pub fn asctime(arg1: *mut StructTM) -> *mut ::std::os::raw::c_char;
+}
+
+#[test]
+fn bindgen_test_layout_tm() {
+ const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit();
+ let ptr = UNINIT.as_ptr();
+ assert_eq!(
+ ::std::mem::size_of::(),
+ 36usize,
+ concat!("Size of: ", stringify!(tm))
+ );
+ ...
+```
+
+Rust 结构体 `struct tm`,跟原本在 C 中的一样,包含了九个4字节的整型字段。这些字段名称在 C 和 Rust 中是一样的。`extern "C"` 区域声明了库函数 `astime` 和 `mktime` 分别需要只一个参数,一个指向可变实例 `extern "C"` 的裸指针。(库函数可能会通过指针改变作为参数传递的结构体。)
+
+`#[test]` 属性下的其余代码是用来测试 Rust 版的时间结构体的布局。通过命令 `cargo test` 可以进行这些测试。一个 C 不会声明的问题是编译器应该如何对结构体中的字段进行布局。比如说,C 的 `struct tm` 以字段 `tm_sec` 开头用以表示秒;但是 C 不需要编译版本遵循这个排序。不管怎样,Rust 测试应该会成功而 Rust 对库函数的调用也应如预期般工作。
+
+### 设置好第二个案例并开始运行
+
+从 `bindgen` 生成的代码不包含 `main` 函数,所以是一个天然的模块。以下是一个 `main` 函数初始化了 `StructTM` 并调用了 `asctime` 和 `mktime`:
+
+```
+mod mytime;
+use mytime::*;
+use std::ffi::CStr;
+
+fn main() {
+ let mut sometime = StructTM {
+ tm_year: 1,
+ tm_mon: 1,
+ tm_mday: 1,
+ tm_hour: 1,
+ tm_min: 1,
+ tm_sec: 1,
+ tm_isdst: -1,
+ tm_wday: 1,
+ tm_yday: 1
+ };
+
+ unsafe {
+ let c_ptr = &mut sometime; // 裸指针
+
+ // 调用,转化,并拥有
+ // 返回的 C 字符串
+ let char_ptr = asctime(c_ptr);
+ let c_str = CStr::from_ptr(char_ptr);
+ println!("{:#?}", c_str.to_str());
+
+ let utc = mktime(c_ptr);
+ println!("{}", utc);
+ }
+}
+```
+
+这段 Rust 代码可以被编译(直接用 `rustc` 或使用 `cargo`)并运行。输出为:
+
+```
+Ok(
+ "Mon Feb 1 01:01:01 1901\n",
+)
+2120218157
+```
+
+对 C 函数 `asctime` 和 `mktime` 的调用必须再一次被放在 `unsafe` 区域内,因为 Rust 编译器无法对这些外部函数的潜在内存安全风险负责。此处声明一下,`asctime` 和 `mktime` 并没有安全风险。调用的两个函数的参数是裸指针 `ptr`,其指向结构体 `sometime` (在栈 (stack) 中)的地址。
+
+`asctime` 是两个函数中调用起来更棘手的那个,因为这个函数返回的是一个指向 C `char` 的指针,如果函数返回 `Mon` 那么指针就指向 `M`。但是 Rust 编译器并不知道 C 字符串 (`char` 的空终止数组)的储存位置。是内存里的静态空间?还是堆 (heap)?`asctime` 函数内用来储存时间的文字表达的数组实际上是在内存的静态空间里。无论如何,C 到 Rust 字符串转化需要两个步骤来避免编译错误:
+
+- 调用 `Cstr::from_ptr(char_ptr)` 来将 C 字符串转化为 Rust 字符串并返回一个引用储存在变量 `c_str` 中。
+- 对 `c_str.to_str()` 的调用确保了 `c_str` 是所有者。
+
+Rust 代码不会增加从 `mktime` 返回的整型值的易读性,这一部分留作课外作业给感兴趣的人去探究。Rust 模板 `chrono::format` 也有一个 `strftime` 函数,它可以被当作 C 的同名函数来使用,两者都是获取时间的文字表达。
+
+### 使用 FFI 和 bindgen 调用 C
+
+Rust FFI 和工具 `bindgen` 都能够出色地协助 Rust 调用 C 库,无论是标准库还是第三方库。Rust 轻松地与 C 交流,并透过 C 与其他语言交流。对于调用像 `sqrt` 一样简单的库函数,Rust FFI 表现直截了当,这是因为 Rust 的原始数据类型覆盖了它们在 C 中的对应部分。
+
+对于更为复杂的交流——特别是 Rust 调用像 `asctime` 和 `mktime` 一样,会涉及到结构体和指针的 C 库函数——工具 `bindgen` 是优秀的帮手。这个工具会生成支持代码以及所需要的测试。当然,Rust 编译器无法假设 C 代码对内存安全的考虑会符合 Rust 的标准;因此,Rust 必须在 `unsafe` 区域内调用 C。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/11/rust-calls-c-library-functions
+
+作者:[Marty Kalin][a]
+选题:[lkxed][b]
+译者:[yzuowei](https://github.com/yzuowei)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/mkalindepauledu
+[b]: https://github.com/lkxed
+[1]: https://baike.baidu.com/item/lingua%20franka/5359711
+[2]: https://github.com/rust-lang/rust-bindgen
+[3]: https://condor.depaul.edu/mkalin
+[4]: https://baike.baidu.com/item/UNIX时间/8932323
+[5]: https://cplusplus.com/reference/ctime/tm/
+[6]: https://cplusplus.com/reference/ctime/mktime/
From 4d68f76999a3729fbd9c3303f2e4df66a6a09a00 Mon Sep 17 00:00:00 2001
From: Bright Huang
Date: Mon, 12 Dec 2022 16:28:49 +0800
Subject: [PATCH 004/266] first translation
---
...ng Linus-s Law for open source security.md | 90 ------------------
...ng Linus-s Law for open source security.md | 91 +++++++++++++++++++
2 files changed, 91 insertions(+), 90 deletions(-)
delete mode 100644 sources/talk/20210209 Understanding Linus-s Law for open source security.md
create mode 100644 translated/talk/20210209 Understanding Linus-s Law for open source security.md
diff --git a/sources/talk/20210209 Understanding Linus-s Law for open source security.md b/sources/talk/20210209 Understanding Linus-s Law for open source security.md
deleted file mode 100644
index 258d401019..0000000000
--- a/sources/talk/20210209 Understanding Linus-s Law for open source security.md
+++ /dev/null
@@ -1,90 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: (CanYellow)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (Understanding Linus's Law for open source security)
-[#]: via: (https://opensource.com/article/21/2/open-source-security)
-[#]: author: (Seth Kenlon https://opensource.com/users/seth)
-
-Understanding Linus's Law for open source security
-======
-Linus's Law is that given enough eyeballs, all bugs are shallow. How
-does this apply to open source software security?
-![Hand putting a Linux file folder into a drawer][1]
-
-In 2021, there are more reasons why people love Linux than ever before. In this series, I'll share 21 different reasons to use Linux. This article discusses Linux's influence on the security of open source software.
-
-An often-praised virtue of open source software is that its code can be reviewed (or "audited," as security professionals like to say) by anyone and everyone. However, if you actually ask many open source users when the last time they reviewed code was, you might get answers ranging from a blank stare to an embarrassed murmur. And besides, there are some really big open source applications out there, so it can be difficult to review every single line of code effectively.
-
-Extrapolating from these slightly uncomfortable truths, you have to wonder: When nobody looks at the code, does it really matter whether it's open or not?
-
-### Should you trust open source?
-
-We tend to make a trite assumption in hobbyist computing that open source is "more secure" than anything else. We don't often talk about what that means, what the basis of comparison is ("more" secure than what?), or how the conclusion has even been reached. It's a dangerous statement to make because it implies that as long as you call something _open source_, it automatically and magically inherits enhanced security. That's not what open source is about, and in fact, it's what open source security is very much against.
-
-You should never assume an application is secure unless you have personally audited and understood its code. Once you have done this, you can assign _ultimate trust_ to that application. Ultimate trust isn't a thing you do on a computer; it's something you do in your own mind: You trust software because you choose to believe that it is secure, at least until someone finds a way to exploit that software.
-
-You're the only person who can place ultimate trust in that code, so every user who wants that luxury must audit the code for themselves. Taking someone else's word for it doesn't count!
-
-So until you have audited and understood a codebase for yourself, the maximum trust level you can give to an application is a spectrum ranging from approximately, _not trustworthy at all_ to _pretty trustworthy_. There's no cheat sheet for this. It's a personal choice you must make for yourself. If you've heard from people you strongly trust that an application is secure, then you might trust that software more than you trust something for which you've gotten no trusted recommendations.
-
-Because you cannot audit proprietary (non-open source) code, you can never assign it _ultimate trust_.
-
-### Linus's Law
-
-The reality is, not everyone is a programmer, and not everyone who is a programmer has the time to dedicate to reviewing hundreds and hundreds of lines of code. So if you're not going to audit code yourself, then you must choose to trust (to some degree) the people who _do_ audit code.
-
-So exactly who does audit code, anyway?
-
-Linus's Law asserts that _given enough eyeballs, all bugs are shallow_, but we don't really know how many eyeballs are "enough." However, don't underestimate the number. Software is very often reviewed by more people than you might imagine. The original developer or developers obviously know the code that they've written. However, open source is often a group effort, so the longer code is open, the more software developers end up seeing it. A developer must review major portions of a project's code because they must learn a codebase to write new features for it.
-
-Open source packagers also get involved with many projects in order to make them available to a Linux distribution. Sometimes an application can be packaged with almost no familiarity with the code, but often a packager gets familiar with a project's code, both because they don't want to sign off on software they don't trust and because they may have to make modifications to get it to compile correctly. Bug reporters and triagers also sometimes get familiar with a codebase as they try to solve anomalies ranging from quirks to major crashes. Of course, some bug reporters inadvertently reveal code vulnerabilities not by reviewing it themselves but by bringing attention to something that obviously doesn't work as intended. Sysadmins frequently get intimately familiar with the code of an important software their users rely upon. Finally, there are security researchers who dig into code exclusively to uncover potential exploits.
-
-### Trust and transparency
-
-Some people assume that because major software is composed of hundreds of thousands of lines of code, it's basically impossible to audit. Don't be fooled by how much code it takes to make an application run. You don't actually have to read millions of lines. Code is highly structured, and exploitable flaws are rarely just a single line hidden among the millions of lines; there are usually whole functions involved.
-
-There are exceptions, of course. Sometimes a serious vulnerability is enabled with just one system call or by linking to one flawed library. Luckily, those kinds of errors are relatively easy to notice, thanks to the active role of security researchers and vulnerability databases.
-
-Some people point to bug trackers, such as the [Common Vulnerabilities and Exposures (CVE)][2] website, and deduce that it's actually as plain as day that open source isn't secure. After all, hundreds of security risks are filed against lots of open source projects, out in the open for everyone to see. Don't let that fool you, though. Just because you don't get to see the flaws in closed software doesn't mean those flaws don't exist. In fact, we know that they do because exploits are filed against them, too. The difference is that _all_ exploits against open source applications are available for developers (and users) to see so those flaws can be mitigated. That's part of the system that boosts trust in open source, and it's wholly missing from proprietary software.
-
-There may never be "enough" eyeballs on any code, but the stronger and more diverse the community around the code, the better chance there is to uncover and fix weaknesses.
-
-### Trust and people
-
-In open source, the probability that many developers, each working on the same project, have noticed something _not secure_ but have all remained equally silent about that flaw is considered to be low because humans rarely mutually agree to conspire in this way. We've seen how disjointed human behavior can be recently with COVID-19 mitigation:
-
- * We've all identified a flaw (a virus).
- * We know how to prevent it from spreading (stay home).
- * Yet the virus continues to spread because one or more people deviate from the mitigation plan.
-
-
-
-The same is true for bugs in software. If there's a flaw, someone noticing it will bring it to light (provided, of course, that someone sees it).
-
-However, with proprietary software, there can be a high probability that many developers working on a project may notice something not secure but remain equally silent because the proprietary model relies on paychecks. If a developer speaks out against a flaw, then that developer may at best hurt the software's reputation, thereby decreasing sales, or at worst, may be fired from their job. Developers being paid to work on software in secret do not tend to talk about its flaws. If you've ever worked as a developer, you've probably signed an NDA, and you've been lectured on the importance of trade secrets, and so on. Proprietary software encourages, and more often enforces, silence even in the face of serious flaws.
-
-### Trust and software
-
-Don't trust software you haven't audited.
-
-If you must trust software you haven't audited, then choose to trust code that's exposed to many developers who independently are likely to speak up about a vulnerability.
-
-Open source isn't inherently more secure than proprietary software, but the systems in place to fix it are far better planned, implemented, and staffed.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/2/open-source-security
-
-作者:[Seth Kenlon][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/seth
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer)
-[2]: https://cve.mitre.org
diff --git a/translated/talk/20210209 Understanding Linus-s Law for open source security.md b/translated/talk/20210209 Understanding Linus-s Law for open source security.md
new file mode 100644
index 0000000000..70ce78b0dd
--- /dev/null
+++ b/translated/talk/20210209 Understanding Linus-s Law for open source security.md
@@ -0,0 +1,91 @@
+[#]: collector: (lujun9972)
+[#]: translator: (CanYellow)
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (Understanding Linus's Law for open source security)
+[#]: via: (https://opensource.com/article/21/2/open-source-security)
+[#]: author: (Seth Kenlon https://opensource.com/users/seth)
+
+理解开源安全中的李纳斯定律
+======
+李纳斯定律 (Linus's Law) 即“只要有足够多的眼睛关注,任何漏洞都无处隐藏” (given enough eyeballs, all bugs are shallow)。那么李纳斯定律是如何应用于开源软件安全的呢?
+
+![Hand putting a Linux file folder into a drawer][1]
+
+2021 年,有更多的原因使人们比以往更钟情 Linux 。在本系列中,我将分享 21 个使用 Linux 的不同原因。 这篇文章则讨论 Linux 对开源软件安全的影响。
+
+开源软件的一个常被赞扬的优点是它的代码能够被任何人检查(安全专家通常称之为“代码审计”)。然而,如果你真的去问很多开源软件用户他们上一次检查代码是什么时候。你大概只能收获他们茫然的眼神或者是喃喃的低语。此外,对于一些相当大型的开源应用,高效地审查每一行代码也是困难的。
+
+根据上述这些稍显不安的事实,我们不得不思考:如果没有人察看这些代码,它是开源还是闭源真的有关系吗?
+
+
+### 你应该相信开源吗?
+
+计算机爱好者倾向于作出认为开源软件比其他软件更加安全的传统假设。我们通常不会讨论这意味者什么:比较的基础是什么(比什么更安全?),或者上述结论是如何得到的。这是一个危险的陈述,因为它表明只要你将一些东西称之为“开源”,它就自动如魔法般地继承了更高的安全性。这不是开源,事实上,这正是开源安全所非常反对的。
+
+除非你已经亲自审计并理解了软件代码,否则就不应该假定一个应用程序是安全的。一但你做到了这一点,就可以给予它_最高信任_。_最高信任_不是对计算机而言的,而是对你本人而言的,至少在这一应用程序被渗透攻击之前,你信任它是因为你选择了相信它是安全的。
+
+使用者本人是唯一可以对软件代码最高信任的人,因此任何人想要获得这样的享受都必须亲自审查代码。相信其他人的话是不管用的。
+
+只有你已经亲自审计并理解了软件代码,你才可以对一个应用程序给予最高信任,最高信任的范围可以是从_根本不信任_到_相当信任_之间。然而我们并没有一个关于信任程度的标准对照表,这是一个你必须亲自做出的个人选择。如果你已经听说了一款应用程序的安全性是可以信任的,相比没有任何建议的情况而言,你可能更加信任它。
+
+然而,因为无法审计专有(闭源)软件代码,你不可能给予它_最高信任_。
+
+### 李纳斯定律
+
+现实很骨感,并不是每个人都是程序员,同时也不是每个程序员都有时间检查数以万计的代码行。因此如果你没有亲自审查代码,你就只能选择相信(一定程度上)_亲自_审查了代码的人。
+
+那么,有哪些人会审计代码呢?
+
+李纳斯定律声称_只要有足够的眼睛关注,任何漏洞都无处隐藏_,然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量,应用程序往往经过了远超你想象数量的人员审计。原始开发人员以及后续开发人员显然清楚他们自己写下的代码,不过开源软件往往都是团队成果,开源时间越长,阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分,因为他们必须学习基础代码以加入新的功能。
+
+同时,为了使开源软件能够在 Linux 发行版上可用,负责开源软件打包分发的开发人员会加入多个项目。有时一个应用程序可能会在不熟悉项目代码的情况下打包,但是大多数时候,开源软件打包人员都是熟悉所打包的项目代码的。这不仅仅是因为他们不想在他们不信任的软件上签名,还由于他们可能不得不修改代码来使得程序能够正确编译。漏洞报告人员和漏洞修复人员一般也是熟悉基本代码的,因为他们需要尝试解决的问题小到运行异常,大到程序崩溃。当然,一些漏洞报告人员无意中揭示了代码漏洞不是通过亲自审查项目代码而是通过关注明显未按预期工作的现象。系统管理员通常都是通晓用户依赖的重要应用软件的代码的。最后,是安全研究人员,他们专门深入代码内部以揭露潜在的漏洞。
+
+### 信任与透明
+
+很多人先入为主的认为大型软件的审计是基本不可能的,因为它由数以万计的代码行组成。不要被软件运行所需的代码量欺骗了。我们不需要真的阅读数以万计的代码行。代码是高度结构化的,可被利用的代码漏洞仅仅只是其中的一行,不过它通常影响软件的全部功能。
+
+当然,也有例外。有时仅仅一个系统调用或者链接一个有缺陷的库文件就可能引入一系列漏洞。幸运的是,多亏安全研究人员以及漏洞数据库所扮演的积极角色,这些错误相对而言是容易发现的。
+
+一些人指向错误追踪系统,比如 [通用漏洞披露 (CVE)][2] 网站,并推断开源软件显而易见是不安全的。毕竟已经向公众公开了大量的安全风险,涉及许多开源项目。但是不要被数据欺骗了。只是因为我们不能发现闭源软件的漏洞,并不意味着闭源软件中不存在漏洞。事实上,已经有很多针对闭源软件的漏洞攻击提出了,闭源软件也是存在漏洞的。区别在于开发者(以及用户)可以查看开源软件的_所有的漏洞_从而降低漏洞的影响。这是扩大对开源软件信任的系统机制的一部分,却正是闭源软件软件所缺少的。
+
+对于任何代码而言,可能永远没有“足够的眼睛”来发现漏洞,但是开发社区越壮大、越多样化,越有机会发现和修复代码中的缺陷。
+
+### 信任与人
+
+在开源社区中,参与同一项目的众多开发者已经发现“不安全”的漏洞却保持沉默的的可能性是微乎其微的,因为人们彼此间不会同意以这样的方式密谋。我们已经看到了在应对 COVID-19 的过程中,人类的行为是如何不一致了,在这里也一样:
+
+ * 我们都识别出了漏洞(病毒)。
+ * 我们知晓如何避免它传播(待在家里)。
+ * 然而病毒还是在持续传播,因为总是有一个或者多个人偏离了消减疫情的计划。
+
+开源软件中的漏洞也一样,如果有人发现了漏洞总会公之于众(当然,我们说的是“假如”能够发现)。
+
+然而就专有软件而言,有很大可能参与项目的众多开发者即使注意到不安全的漏洞却仍然保持沉默,因为专有模式依赖于回报。如果一个开发者将漏洞泄漏出来,他可能只是伤害了该专有软件的声誉,进而降低软件的销售额;或者,在更糟糕的情况下,他可能因此而丢了工作。付费秘密开发软件的开发者倾向于不讨论软件的缺陷。如果你曾经是一名开发者,你可能曾经签署过 NDA (译者注:Non-Disclosure Agreement,保密协议),你可能被培训过商业秘密的重要性等等不一而足。专有软件鼓励在面对严重的秘密缺陷时保持沉默,更多时候甚至是强制要求沉默。
+
+
+### 信任与软件
+
+不要信任未经你审计的软件。
+
+如果你必须相信未经你审计的软件,那么选择相信已经面向那些更有可能将软件缺陷公之于众的开发者公开代码的软件。
+
+开源软件并没有比专有软件继承更高的安全性,但是修复它的系统得到了更好的规划实施和人员配置。
+
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/21/2/open-source-security
+
+作者:[Seth Kenlon][a]
+选题:[lujun9972][b]
+译者:[CanYellow](https://github.com/CanYellow)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/seth
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer)
+[2]: https://cve.mitre.org
From c40c6db51b7fd50fcbf8f46d60a1144e451987df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Mon, 12 Dec 2022 18:52:01 +0800
Subject: [PATCH 005/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221212.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Li?=
=?UTF-8?q?nux=20Kernel=206.1=20Released=20With=20Initial=20Rust=20Code.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...inux Kernel 6.1 Released With Initial Rust Code.md | 146 ++++++++++++++++++
1 file changed, 146 insertions(+)
create mode 100644 sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
diff --git a/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md b/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
new file mode 100644
index 0000000000..f406377262
--- /dev/null
+++ b/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
@@ -0,0 +1,146 @@
+[#]: subject: "Linux Kernel 6.1 Released With Initial Rust Code"
+[#]: via: "https://news.itsfoss.com/linux-kernel-6-1-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Linux Kernel 6.1 Released With Initial Rust Code
+======
+
+Linux Kernel 6.1 is now available! Potentially an LTS version considering it is the last stable release of the year.
+
+![Linux Kernel 6.1 Released With Initial Rust Code][1]
+
+Linux Kernel 6.1 is finally here, and it comes bearing early Christmas gifts in the form of improvements and support for new hardware. 🎄
+
+It comes a few months after the release of Linux Kernel 6.0, where the naming scheme was changed from 5.x.x to 6.x in favor of a less confusing alternative.
+
+As usual, the last kernel release of the year **may be considered a long-term release version** that gets support for a couple of years.
+
+#### Suggested Read 📖
+
+Linux Kernel 6.1 promises many improvements and includes initial support for unreleased hardware by AMD and Intel.
+
+With the announcement, Linus Torvalds mentions:
+
+> So here we are, a week late, but last week was nice and slow, and I'm much happier about the state of 6.1 than I was a couple of weeks ago when things didn't seem to be slowing down. Of course, that means that now we have the merge window from hell, just before the holidays, with me having some pre-holiday travel coming up too. So while delaying things for a week was the right thing to do, it does make the timing for the 6.2 merge window awkward.
+
+He further adds that he will be stricter about the merge window rules considering it should be a calm holiday season for everyone.
+
+### 🆕 Linux Kernel 6.1: What’s New?
+
+With this release, we see various changes, such as improved support for ARM SoCs, initial support for Intel's upcoming Meteor lake CPUs, and AMD's RDNA 3 GPUs.
+
+You can find more technical details in its [announcement post][2].
+
+#### Experimental Support for Rust
+
+![linux 6.1 rust code][3]
+
+While we expected this to happen with Linux Kernel 6.0, it arrives with Linux Kernel 6.1, allowing developers to write kernel code in Rust.
+
+#### Enablement Of Intel Meteor Lake
+
+![intel logo][4]
+
+Intel's open-source developers have been hard at work to provide initial support for the upcoming Meteor Lake chips.
+
+Dubbed as Intel's first 7 nm microarchitecture, developers have pushed various commits to DRM-next.
+
+These include a variety of firmware commits with initial support for the Meteor Lake CPUs and their integrated GPUs.
+
+#### Initial Support For AMD RDNA 3 Graphics
+
+![amd logo][5]
+
+AMD has been adding code for the RDNA 3 graphics architecture to Linux Kernel 6.1 for some time now.
+
+This includes support for their upcoming GPUs and various fixes for their old GPU products.
+
+You can go through the full list of patches [here][6].
+
+#### Optimizations for AMD PCs
+
+![pc optimizations amd][7]
+
+AMD PMF has been introduced with this kernel release; it stands for AMD Platform Management Framework.
+
+This driver is meant to provide a framework for the quieter and more efficient running of AMD PCs.
+
+It makes use of the onboard sensors in tandem with AMD's various thermal and power kernel drivers to achieve that.
+
+#### Improved ARM SoC Support
+
+![arm soc][8]
+
+Linux Kernel 6.1 brings in support for additional ARM SoCs, such as:
+
+- MediaTek MT8186
+- Texas Instruments AM62A
+- NXP i.MX8DXL
+- Various variants of Qualcomm IPQ8064
+
+The kernel also features support for a few smartphones such as PINE64 PinePhone Pro, Sony Xperia 1 IV, and Samsung Galaxy E5/E7/Grand Max.
+
+#### Storage Improvements
+
+The kernel has a lot of improvements for storage.
+
+For instance, Btrfs is bringing async buffered writes with this update, resulting in more than 2x throughput improvement.
+
+Then there are the improvements to EXT4 with performance optimization and a few bug fixes.
+
+Alongside this, [EROFS][9] has introduced FSCache-based shared domain support to Linux Kernel 6.1.
+
+#### 🛠️ Other Improvements
+
+Those are not the only improvements being offered with Linux Kernel 6.1; here are some of the other notable ones:
+
+- **Support for Microsoft Surface Pro 9 and Surface Laptop 5.**
+- **Enablement of AMD Zen 4 LbrExtV2.**
+- **AMD CPU Cache-To-Cache & Memory Reporting Capabilities.**
+- **Introduction of AMD IOMMU v2.**
+- **Preparations for Wi-Fi 802. 11be/Wi-Fi 7.**
+
+### How to Install Linux Kernel 6.1?
+
+You can easily upgrade if you use an Arch-based distro or Fedora.
+
+Unfortunately, if you are using other Linux distributions (Pop!_OS and Linux Lite can be an exception to some extent), you may not receive an upgrade directly from your distro.
+
+However, almost all Linux distributions explicitly allow you to install the latest kernel. Here's a guide for Ubuntu 👇
+
+So, if you are feeling adventurous (and know what you are doing), you can find the newer kernel listed on [Linux Kernel Archives][10]. You can download the [tarball][11] to test it out.
+
+However, as always, we recommend waiting for your Linux distribution to push an update if you do not want to take any chances. It is best to stick to what’s being offered for your Linux distribution by default.
+
+[Download Linux 6.1][12]
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/linux-kernel-6-1-release/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-kernel-6-1-release.png
+[2]: https://lore.kernel.org/lkml/CAHk-=wj_HcgFZNyZHTLJ7qC2613zphKDtLh6ndciwopZRfH0aQ@mail.gmail.com/T/#u
+[3]: https://news.itsfoss.com/content/images/2022/12/linux-6-1-rust.png
+[4]: https://news.itsfoss.com/content/images/2022/12/intel-meteor.png
+[5]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3.png
+[6]: https://lists.freedesktop.org/archives/dri-devel/2022-September/373430.html
+[7]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--1-.png
+[8]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--2-.png
+[9]: https://en.wikipedia.org/wiki/EROFS
+[10]: https://www.kernel.org/
+[11]: https://git.kernel.org/torvalds/t/linux-6.1.tar.gz
+[12]: https://www.kernel.org
From 63a13122d5b96d585b32fe650a8e88029e35a46f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Mon, 12 Dec 2022 18:52:49 +0800
Subject: [PATCH 006/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221212.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Ho?=
=?UTF-8?q?w=20to=20Install=20the=20Minimalist=20ArchBang=20Linux=20Distro?=
=?UTF-8?q?.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...to Install the Minimalist ArchBang Linux Distro.md | 301 ++++++++++++++++++
1 file changed, 301 insertions(+)
create mode 100644 sources/tech/20221212.1 ⭐️⭐️ How to Install the Minimalist ArchBang Linux Distro.md
diff --git a/sources/tech/20221212.1 ⭐️⭐️ How to Install the Minimalist ArchBang Linux Distro.md b/sources/tech/20221212.1 ⭐️⭐️ How to Install the Minimalist ArchBang Linux Distro.md
new file mode 100644
index 0000000000..2a0195401f
--- /dev/null
+++ b/sources/tech/20221212.1 ⭐️⭐️ How to Install the Minimalist ArchBang Linux Distro.md
@@ -0,0 +1,301 @@
+[#]: subject: "How to Install the Minimalist ArchBang Linux Distro"
+[#]: via: "https://itsfoss.com/install-archbang/"
+[#]: author: "Sreenath https://itsfoss.com/author/sreenath/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Install the Minimalist ArchBang Linux Distro
+======
+
+ArchBang is a minimal and lightweight [Arch Linux based distribution][1]. It uses the i3 window manager. With its minimal nature, ArchBang can help you revive your old computer or low-end devices.
+
+There are two ways to install Arch Bang:
+
+- Using the guided installer script
+- Following Arch wiki
+
+No prizes for guessing that using the guided installer script will be easier to follow.
+
+In this tutorial, I’ll show you the steps for installing ArchBang with its text-based installer script.
+
+Please [check if your computer has UEFI or the legacy BIOS system][2]. Some steps are different for them.
+
+I have performed the demo in a virtual machine. And hence the wifi configuration part is not there. Internet connection is not mandatory here; you can also install it offline. You can connect to wifi from within the system after successfully installing ArchBang.
+
+Also, this method will remove any other operating system installed on your disk. Please be mindful of that.
+
+### Download ArchBang Live ISO
+
+To install ArchBang, you need the live ISO first.
+
+You can go to their [official website and download the required ISO][3], as shown in the below screenshot.
+
+![go to archbang iso images to download the iso file from sourceforge][4]
+
+It brings you to their Sourceforge page. Download the ISO, which is approximately 1.2 GiB in size.
+
+### Create the Live USB of ArchBang
+
+Once downloaded, you should make a bootable USB of ArchBang. You can [use software like Balena Etcher][5] to create it. It’s quite simple to use.
+
+Plug in your USB, browse to the downloaded ISO file and then hit the Flash button.
+
+![etcher flash][6]
+
+### Using text-based ArchBang installer
+
+ArchBang live ISO will bring you to the default i3 desktop with conky running.
+
+![archbang live iso home screen][7]
+
+You have two methods to start the installation process:
+
+- Press **Super + I** (as per desktop conky) to start installation directly.
+- Press **Super + T** to enter the terminal and use the command: `sudo abinstall`
+
+A terminal with several options will appear when you do the above step:
+
+![archbang installer][8]
+
+The above screenshot shows the main menu of ArchBang installer. You can select each section with the associated number.
+
+When you complete each category of the above installer, it will return to this menu and you can select the next category by pressing the corresponding number and Enter key.
+
+Also, the completed sections will be checked with an “x” mark.
+
+#### Step 1: Select / Set Partition
+
+On the new installer screen, enter “1” to start [partitioning the disk][9].
+
+Inside this, select the **Default** option. The installer has several tools to partition the disk, like cfdisk, fdisk, parted, etc. I used fdisk to do the job.
+
+##### Partitioning for Non-UEFI system
+
+Once the tool is selected, it will ask to choose the storage device. In my case, it was `/dev/sda` . Select the appropriate choice in your context.
+
+To start partitioning, enter “n” for a new partition. After that, select **Primary Partition.**
+
+![creating partition for non uefi system][10]
+
+For [non-UEFI systems][2], you can create one single root partition for all purposes. So, accept all the default values for “First Sector” and “Last Sector”. Then, press “w” to write the changes.
+
+On the next screen, you have to choose your filesystem and swap method. In this tutorial, I am using the EXT4 file system and Swap to File as the swap method.
+
+So set those according to the screenshot.
+
+![format the disk and select ext4 partition][11]
+
+##### Partitioning for UEFI system
+
+For UEFI users, you need to have two partitions, one EFI, with a 550 MB space, and another main root partition with the rest of the space (Swap as a file setting).
+
+Press n and select **Primary Partition.** Then select the Partition number as 1.
+
+Accept the default value for “First sector”. Now enter “+550M” as the value for “Last Sector”.
+
+Once again, press “n” and select **Primary Partition**. Accept the default value for the first and last sectors.
+
+![create two partitions for efi system][12]
+
+Press “t” to change the type and select the partition number “1” or `/dev/sda1`, whose type is to be changed from “Linux” to “EFI”.
+
+Select the partition type as EFI, as shown below:
+
+![change type of smaller partition to efi][13]
+
+Press “w” to write the changes. Then it will ask for filesystem selection. Here, you need to select the larger partition as the root partition (/dev/sda2, that is option 2 in the below screenshot).
+
+![select larger partition for root partition in efi system][14]
+
+Select EXT4 filesystem. This will again ask for mounting EFI partition.
+
+![select efi partition][15]
+
+In this step, you need to select the EFI partition at `/dev/sda1` and choose the mount point as `/boot/efi` . This will ask for format. Give consent by pressing “y”.
+
+Also, don’t forget to choose the swap to file option.
+
+#### Step 2: Start ArchBang installation
+
+This is pretty simple. Select the Install ArchBang option from the main menu by pressing the corresponding number (2 in this case). It will start the installation process.
+
+![installing archbang progress bar][16]
+
+You should wait for some time to complete the installation.
+
+#### Step 3: Set Hostname
+
+Once installation is completed, Select the 3rd option on the main menu, which is for setting the hostname. You need to enter a hostname.
+
+![provide hostname and press enter][17]
+
+#### Step 4: Set Location
+
+Location/Time Zone is typically mentioned in Zone/City format. I used Asia/Kolkata as the time zone.
+
+The installer provides the list of available zones and cities; you need to enter the number corresponding to your choice.
+
+![set time zone info][18]
+
+Also, set your location the same way.
+
+#### Step 5: Set Hardware Clock
+
+You have two options; Set Hardware Clock to UTC or Local Time.
+
+![set hardware clock time][19]
+
+There are two time standards:** localtime** and Coordinated Universal Time (UTC). The localtime standard depends on the current time zone, while UTC is the global time standard and is independent of time zone values.
+
+Enter your choice and press Enter key.
+
+#### Step 6: Set Locale
+
+Usually, you set the locale to en_US, if you are unsure what to do. That should be fine for most English-speaking users.
+
+If you want to use the operating system in some other language like French, Spanish, Dutch etc, you can choose the appropriate locale from the list.
+
+![set locale][20]
+
+#### Step 7: Desktop Keyboard Layout
+
+Similarly, most users should be fine with US keyboard. If you have some other keyboard (like French, or Italian), enter the appropriate choice from the available ones.
+
+![set desktop keyboard layout][21]
+
+#### Step 8: Configure Bootloader
+
+In ArchBang, you get GRUB2, Syslinux, or Systemd for the bootloader. To make it simple, I am selecting GRUB2 from the choice.
+
+![select grub2 as bootloader][22]
+
+Now, it will ask you to specify the method to install GRUB. Select **Automatic** and press enter.
+
+![select automatic grub][23]
+
+#### Step 9: Set Root Password
+
+Now, you should enter the root password. Select “Root Password” from the main menu.
+
+![enter and confirm root password][24]
+
+Here, enter and confirm the root password.
+
+#### Step 10: Create a New User
+
+Using a system with only a Root User is not secure. So, you should create a new user. In this installer, select the 10th option. Here, you should type a user name, password and confirm the password.
+
+![create user and password][25]
+
+Once done, press Enter to go to the main menu.
+
+#### Step 11: Finish configuration
+
+At this stage, you have reviewed all the configurations needed. You can now make it to effect by entering the letter “d” as shown in the screenshot below:
+
+![enter d option to finish the installation][26]
+
+This will ask permission to reboot your system.
+
+![press y to reboot your system to new archbang][27]
+
+Entering “y” will reboot your system to the newly installed ArchBang system.
+
+### Post Installation Tweaks
+
+Once rebooted, you will land in the same console. Probably there is no [display manager][28] installed. Here you should enter the username and password and press enter.
+
+![login to archbang through tty][29]
+
+This will bring you to the i3WM.
+
+![installed archbang with i3wm][30]
+
+Once installed, you need to do a couple of update tasks. **Connect to the internet first**.
+
+Firstly, you need to update the Pacman keys and archlinux-keyring.
+
+To do the same, open a terminal by pressing **Super + T** and run the following commands one by one:
+
+```
+sudo pacman-key –init
+sudo pacman-key –populate
+sudo pacman -Syyu archlinux-keyring
+```
+
+This will update system packages and keyrings. Reboot your system.
+
+Now, you should install a display manager. I prefer LightDM display manager. So open a terminal and enter the following command to install it:
+
+```
+sudo pacman -S lightdm lightdm-gtk-greeter
+```
+
+Once installed, use the following command to start the Lightdm service:
+
+```
+sudo systemctl enable lightdm.service
+```
+
+You will get a good and minimal login screen from the next reboot.
+
+![lightdm login screen in archbang][31]
+
+You can now enjoy ArchBang Linux according to your liking.
+
+### Wrapping Up
+
+ArchBang brings a good Arch Linux experience coupled with a not-so-hard installer and i3WM as the window manager.
+
+I understand that using a text-based installer like this one could be intimidating for some users. But then, it is [one of the joys of the Arch Linux][32] domain. It feels like a challenge and when you successfully install it, it gives you a sense of accomplishment.
+
+I have tried to detail all the steps with the necessary explanation. Please let me know if you face any issues or if you have any questions.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/install-archbang/
+
+作者:[Sreenath][a]
+选题:[lkxed][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/sreenath/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/arch-based-linux-distros/
+[2]: https://itsfoss.com/check-uefi-or-bios/
+[3]: https://sourceforge.net/projects/archbang/files/
+[4]: https://itsfoss.com/wp-content/uploads/2022/12/go-to-archbang-iso-images-to-download-the-iso-file-from-sourceforge.png
+[5]: https://itsfoss.com/install-etcher-linux/
+[6]: https://itsfoss.com/wp-content/uploads/2022/06/etcher-flash.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/12/archbang-live-iso-home-screen.webp
+[8]: https://itsfoss.com/wp-content/uploads/2022/12/archbang-installer.png
+[9]: https://itsfoss.com/partition-managers-linux/
+[10]: https://itsfoss.com/wp-content/uploads/2022/12/creating-partition-for-non-uefi-system.png
+[11]: https://itsfoss.com/wp-content/uploads/2022/12/format-the-disk-and-select-ext4-partition.png
+[12]: https://itsfoss.com/wp-content/uploads/2022/12/create-two-partitions-for-efi-system.png
+[13]: https://itsfoss.com/wp-content/uploads/2022/12/change-type-of-smaller-partition-to_efi.png
+[14]: https://itsfoss.com/wp-content/uploads/2022/12/select-larger-partition-for-root-partition-in-efi-system.png
+[15]: https://itsfoss.com/wp-content/uploads/2022/12/select-efi-partition.png
+[16]: https://itsfoss.com/wp-content/uploads/2022/12/installing-archbang-progress-bar.png
+[17]: https://itsfoss.com/wp-content/uploads/2022/12/provide-hostname-and-press-enter.png
+[18]: https://itsfoss.com/wp-content/uploads/2022/12/set-time-zone-info.png
+[19]: https://itsfoss.com/wp-content/uploads/2022/12/set-hardware-clock-time.png
+[20]: https://itsfoss.com/wp-content/uploads/2022/12/set-locale.png
+[21]: https://itsfoss.com/wp-content/uploads/2022/12/set-desktop-keyboard-layout.png
+[22]: https://itsfoss.com/wp-content/uploads/2022/12/select-grub2-as-bootloader.png
+[23]: https://itsfoss.com/wp-content/uploads/2022/12/select-automatic-grub.png
+[24]: https://itsfoss.com/wp-content/uploads/2022/12/enter-and-confirm-root-password.png
+[25]: https://itsfoss.com/wp-content/uploads/2022/12/create-user-and-password.png
+[26]: https://itsfoss.com/wp-content/uploads/2022/12/enter-d-option-to-finish-the-installation.png
+[27]: https://itsfoss.com/wp-content/uploads/2022/12/press-y-to-reboot-your-system-to-new-archbang.png
+[28]: https://itsfoss.com/display-manager/
+[29]: https://itsfoss.com/wp-content/uploads/2022/12/login-to-archbang-through-tty.png
+[30]: https://itsfoss.com/wp-content/uploads/2022/12/installed-archbang-with-i3wm.png
+[31]: https://itsfoss.com/wp-content/uploads/2022/12/lightdm-login-screen-in-archbang.png
+[32]: https://itsfoss.com/why-arch-linux/
From 20ad2a71ab3e39263e2323af638329da8eef3039 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Mon, 12 Dec 2022 18:53:32 +0800
Subject: [PATCH 007/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221212.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20A?=
=?UTF-8?q?=20sysadmin's=20guide=20to=20Carbonio.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...2.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md | 119 ++++++++++++++++++
1 file changed, 119 insertions(+)
create mode 100644 sources/tech/20221212.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md
diff --git a/sources/tech/20221212.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md b/sources/tech/20221212.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md
new file mode 100644
index 0000000000..aad2bc5ffa
--- /dev/null
+++ b/sources/tech/20221212.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md
@@ -0,0 +1,119 @@
+[#]: subject: "A sysadmin's guide to Carbonio"
+[#]: via: "https://opensource.com/article/22/12/carbonio-community-edition-sysadmin"
+[#]: author: "Arman Khosravi https://opensource.com/users/arman-khosravi"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+A sysadmin's guide to Carbonio
+======
+
+[Carbonio Community Edition (Carbonio CE)][1] is an open source no-cost email and collaboration platform by Zextras. It provides privacy for organizations seeking digital sovereignty by using on-premises self-hosted servers. Using self-hosted servers offers a deeper level of control over infrastructure and data. However, it requires more attention to server configurations and infrastructure management to guarantee data sovereignty. Tasks done by system administrators play an important role in this matter. This makes administrative tasks a crucial part of achieving digital sovereignty, therefore, an administrative console dedicated to such tasks becomes extremely valuable to facilitate sysadmins' everyday jobs.
+
+This is why Zextras launched the first release of its own admin panel for Carbonio CE on October 2022. For Carbonio CE system administrators, it is the first step toward the creation of an all-inclusive admin console.
+
+In this article, I go into detail about the Carbonio CE Admin Panel and take a deeper look into what it can accomplish.
+
+![Image of the Carbonio admin panel.][2]
+
+### What is the Carbonio CE Admin Panel?
+
+The Carbonio CE Admin Panel is designed to assist the Carbonio CE system administrators with the most repetitive and frequent tasks such as user management and domain configuration. It is a browser-based application that runs on a particular port and is available for system administrators to use in production environments as soon as Carbonio CE is installed.
+
+### Why do you need the admin panel?
+
+Everything done in Carbonio CE Admin Panel can be done through the command-line interface as well. This raises the question: why might system administrators prefer using the admin panel rather than the command-line interface?
+
+Using the admin panel has its own obvious advantages such as:
+
+- Making repetitive activities much easier to perform
+- Saving system administrators' time monitoring servers
+- Providing a much easier learning process for junior system administrators
+
+Even though using the admin panel makes administrative tasks easier to perform, there is more to using this native user interface for Carboino CE. In essence, the Carbonio CE Admin Panel gives you the ability to monitor and manage your organization server from a single centralized location. Even when you're far away, you may still access your admin panel to check the status of servers and carry out various administrative activities.
+
+### Creating and managing user accounts
+
+Managing users has always been one of the most, if not the most, performed action by sysadmins. Therefore it should be an essential part of every administrative GUI available for system administrators. Suppose you, as the system administrator of the company have received some request by users to edit some information on their account. For instance, giving them access to some features, or your company has hired new employees, or some employees have left the company. All these scenarios require a sysadmin to manage user accounts frequently.
+
+Using the Carbonio CE Admin Panel you can simply go to **Domains > select a domain > Accounts** and select any account to modify, or press the **+** button to add a new account.
+
+![Image of the accounts Carbonio adminpanel.][3]
+
+### Creating and managing mailing lists
+
+Besides creating user accounts, a system administrator is often required to create different mailing lists that reflect the organizational structure of the company. Using mailing lists, users can simply send emails to a group of users by inserting the list address instead of every user address one by one.
+
+Creating mailing lists in Carbonio CE is extremely easy using the admin panel. You need to go to **Domains > select a domain > Mailing List > press the + button**. You can now use the wizard that opens up to create a mailing list.
+
+![Image of the Carbonio admin panel mailing list.][4]
+
+The essential steps to follow are:
+
+- Insert the name
+- Insert the mailing list address
+- Press **NEXT**
+- Insert the members
+- Press **CREATE**.
+
+You can follow the same path to edit mail lists created before.
+
+### Creating and managing domains
+
+Managing domains is another task frequently done by system administrators. Similar to accounts, creating a domain is very easy in the Carbonio Admin Panel. You only need to go to **Domains > select a domain > under the details** and find different entries to monitor the status of the domain. To create a new domain simply click on the **CREATE** button on the top bar and select **Create New Domain** and insert the necessary information such as:
+
+- Domain name
+- Maximum number of accounts and maximum email quota
+- Mail server where the domain is hosted
+
+![Image of the Carbonio admin domains panel.][5]
+
+### Creating and managing mailstore servers
+
+The Carbonio CE Admin Panel allows system administrators to manage different servers present in the infrastructure and provide them with different tools to configure them. To monitor a new mailstore server you can go to **Mailstores > Servers List** and find all the available mailstore servers in your infrastructure in a list (when just one server is installed, only one server is shown in this area).
+
+Under **Server Details**, you can select any of the available servers in the list and select **Data Volumes** to show more details of the storage volumes attached to it. While multiple volumes can be mounted simultaneously, only one primary volume, one secondary volume, and one index volume can be designated as active. You can add new volumes using the **NEW VOLUME +** button in the same section. You can also change the volume properties simply by clicking on them to open their detail window.
+
+![Image of the Carbonio admin panel volumes.][6]
+
+### Creating and managing classes of service
+
+Another scenario that can be facilitated with the help of the admin panel is creating classes of service (COS). After the installation, a system administrator might need to create different classes (groups) and assign different properties to them. This way, later in the process each user or a group of users can be easily nominated to a class of service in order to have access to the features and properties assigned to that specific COS.
+
+![Image of the Carbonio admin panel COS features.][7]
+
+To create a COS simply click on the **CREATE** button and select **Create New COS** or alternatively go to **COS** on the left panel and click on **CREATE NEW COS +**. You can then insert the name of the COS and define the different services available to this specific class.
+
+To edit a COS, go to **COS** on the left panel and select a COS from the dropdown menu at top of the list.
+
+You can define settings like quotas, the mail servers that can host accounts from this COS, or enable features for this COS. You can also define features for general features like Mail, Calendar, and Contacts. Additional customizable options include Tagging, Out of Office Reply, Distribution List Folders, and so on.
+
+![Image of the Carbonio admin panel classes of service preferences.][8]
+
+### Conclusion
+
+In this article, you saw a few scenarios in which the Carbonio CE Admin Panel saves you time and effort. The admin panel is an evolution of classical administrative tools in a new and centralized interface that gives the possibility of accessing different functionalities and monitoring tools from the same location.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/carbonio-community-edition-sysadmin
+
+作者:[Arman Khosravi][a]
+选题:[lkxed][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/arman-khosravi
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/22/3/open-source-collaboration-carbonio
+[2]: https://opensource.com/sites/default/files/2022-11/carbonio_admin_panel.webp
+[3]: https://opensource.com/sites/default/files/2022-11/accounts_carbonio_admin_panel.webp
+[4]: https://opensource.com/sites/default/files/2022-11/mailing_list_carbonio_admin_panel.webp
+[5]: https://opensource.com/sites/default/files/2022-11/domains_carbonio_admin_panel.webp
+[6]: https://opensource.com/sites/default/files/2022-11/volumes_carbonio_admin_panel.webp
+[7]: https://opensource.com/sites/default/files/2022-11/cos_features_carbonio_admin_panel.webp
+[8]: https://opensource.com/sites/default/files/2022-11/cos_preferences_carbonio_admin_panel.webp
From 732b5884e30a21430268ce79e1ad95ca45aaade5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Mon, 12 Dec 2022 18:55:25 +0800
Subject: [PATCH 008/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221212.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Un?=
=?UTF-8?q?fortunately,=20Komodo=20IDE=20is=20now=20Open=20Source!.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... Unfortunately, Komodo IDE is now Open Source!.md | 89 +++++++++++++++++++
1 file changed, 89 insertions(+)
create mode 100644 sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md
diff --git a/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md b/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md
new file mode 100644
index 0000000000..96da969f33
--- /dev/null
+++ b/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md
@@ -0,0 +1,89 @@
+[#]: subject: "Unfortunately, Komodo IDE is now Open Source!"
+[#]: via: "https://news.itsfoss.com/komodo-ide-open-source/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Unfortunately, Komodo IDE is now Open Source!
+======
+
+Komodo IDE is now open-source and not at a great time. Curious to take a peek at the source code? Learn more here.
+
+![Unfortunately, Komodo IDE is now Open Source!][1]
+
+Komodo IDE is a popular integrated development environment for dynamic programming languages that was introduced back in May 2000.
+
+Used by many programmers around the world, it has proved to be quite helpful over the years.
+
+Unfortunately, all good things end.
+
+This is the case with Komodo IDE, it has now been retired, and all development has ceased.
+
+But there's a silver lining to this 😃
+
+The company behind it, called '[ActiveState][2]', has now made the code openly available for anyone to use and modify.
+
+> 💡 Similar to "Komodo Edit" application, which was made open-source in 2008.
+
+They have cited numerous factors for their decision, which I will explain.
+
+### So, Why Open-Source it Now?
+
+![komodo ide][3]
+
+ActiveState felt that it was becoming difficult to maintain Komodo IDE without encountering various compatibility issues on newer systems.
+
+**What were the contributing factors?:** There were many factors that led to this. Take, for instance, the frameworks on which Komodo was built, '_XUL and XULRunner_'; they were retired by Mozilla back in 2016.
+
+Then there was the amount of effort needed to make Komodo compatible with newer systems. They would have to completely rewrite Komodo using a newer framework they felt was not feasible.
+
+And the final nail in the coffin was the fact that there are already a lot of free code editors available on the market right now doing better. They feel that '_it’s not a good business to be in anymore_'.
+
+**What now?:** ActiveState have made the whole Komodo IDE codebase available on their [GitHub repo][4] without the revision history.
+
+They have provided 3.2 million lines of code that consist of various programming languages such as Python, JavaScript, XUL, HTML, C++, and more.
+
+Anyone can copy, change, and use the code as they see fit.
+
+The forums for Komodo will be kept open for a year from their [original announcement][5], as it contains a treasure trove of information relating to Komodo.
+
+They are also open to moving the content to a different platform if anyone is willing to take on the task of managing it.
+
+On this topic, one of the employees from the Komodo dev team, Carey Hoffman, had this to add:
+
+> The extensive existing help information in the forums can act as a significant knowledge base for users and continue to be a central place to ask questions of the community and receive answers. I’ll very likely be there periodically on my own time to help where I can, such as when people are trying to build Komodo at home, or having difficulty making any kind of code edits.
+
+### Community Gets a Chance
+
+This can come in pretty handy for the community in general, as people can now try their hand at creating something truly special out of the code for Komodo.
+
+A Reddit user, [yvrelna][6] mentions:
+
+> I never used Komodo, but it's great to hear that Komodo is now freed from its cage. Companies should do this more often. If they're unwilling to support a software anymore, they should just release it as open source.It would've been better if the software is open source to begin with of course, but there's really no reason for a company to retain their codebase closed if they have no interest in maintaining it.Only thing is that they should've done it sooner, when there are still enough people that still cares about the software to possibly pick it up to maintain it.
+
+Indeed, the user is not wrong here; companies should go the extra mile by making code for their deprecated software open so that the community has a chance to create something out of it or even maintain it for the long term.
+
+ActiveState seems to have understood this sentiment and has thanked its users by open-sourcing Komodo.
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/komodo-ide-open-source/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/komodo-ide-goes-open-source.png
+[2]: https://www.activestate.com/
+[3]: https://news.itsfoss.com/content/images/2022/12/Komodo_IDE.png
+[4]: https://github.com/ActiveState/OpenKomodoIDE
+[5]: https://www.activestate.com/blog/activestate-komodo-ide-now-open-source/
+[6]: https://www.reddit.com/user/yvrelna/
From 3f54b6ae2c8996226d0f28656db69027ebacb62f Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 12 Dec 2022 19:35:08 +0800
Subject: [PATCH 009/266] R
---
....3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md b/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md
index b7b5a83fe8..9dfda0adff 100644
--- a/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md
+++ b/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md
@@ -31,7 +31,7 @@ $ sudo dnf install cinnamon-desktop
在 Linux Mint、Debian 和类似系统上:
```
-$ sudo dnf install cinnamon-desktop-environment
+$ sudo apt install cinnamon-desktop-environment
```
当然,作为该桌面的发源地,Linux Mint 也预装了 Cinnamon。
From 64c825dd5dedabe5cb99ba4bde23a0e7368ae5fd Mon Sep 17 00:00:00 2001
From: cool-summer-021
Date: Mon, 12 Dec 2022 21:36:09 +0800
Subject: [PATCH 010/266] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...221004 Learn the OSI model in 5 minutes.md | 100 ------------------
...221004 Learn the OSI model in 5 minutes.md | 100 ++++++++++++++++++
2 files changed, 100 insertions(+), 100 deletions(-)
delete mode 100644 sources/tech/20221004 Learn the OSI model in 5 minutes.md
create mode 100644 translated/tech/20221004 Learn the OSI model in 5 minutes.md
diff --git a/sources/tech/20221004 Learn the OSI model in 5 minutes.md b/sources/tech/20221004 Learn the OSI model in 5 minutes.md
deleted file mode 100644
index eb53583bb2..0000000000
--- a/sources/tech/20221004 Learn the OSI model in 5 minutes.md
+++ /dev/null
@@ -1,100 +0,0 @@
-[#]: subject: "Learn the OSI model in 5 minutes"
-[#]: via: "https://opensource.com/article/22/10/osi-model-network-communications"
-[#]: author: "Anamika https://opensource.com/users/anamika"
-[#]: collector: "lkxed"
-[#]: translator: "cool-summer-021"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Learn the OSI model in 5 minutes
-======
-Get the basics of the Open Systems Interconnection (OSI) framework for conceptualizing communication within a computer system.
-
-The Open Systems Interconnection (OSI) model is a standard for how computers, servers, and people communicate within a system. It was the first standard model for network communications and was adopted in the early 1980s by all major computer and telecommunications companies.
-
-The OSI model provides a universal language for describing networks and thinking about them in discrete chunks, or layers.
-
-### Layers of the OSI model
-
-The model describes the seven layers through which computer systems communicate over a network.
-
-1. [Application layer][2]
-2. [Presentation layer][3]
-3. [Session layer][4]
-4. [Transport layer][5]
-5. [Network layer][6]
-6. [Data link layer][7]
-7. [Physical layer][8]
-
-Each of these layers has its own way of working, with its own set of protocols that distinguish it from the others. This article provides a breakdown of the layers one by one.
-
-### Application layer
-
-The application layer is implemented in software. It is the layer used to interact with applications.
-
-Consider the example of sending a message. The sender will interact with the application layer and send the message. The application layer sends the message to the next layer in the OSI Model, the presentation layer.
-
-### Presentation layer
-
-The data from the application layer is forwarded to the presentation layer. The presentation layer receives the data in the form of words, characters, letters, numbers, and so on, and converts them into machine representable binary format. This process is known as translation.
-
-At this stage, ASCII characters (American Standard Code for Information Interchange) are converted into Extended Binary Coded Decimal Interchange Code (EBCDIC). Before the converted data goes further, it also undergoes encoding and encryption processes, using the SSL protocol for encryption and decryption.
-
-The presentation layer provides abstraction and assumes that the layers following it will take care of the data forwarded to them from this layer. It also plays a role in compression of the data. The compression can be lossy or lossless, depending on various factors beyond this article's scope.
-
-### Session layer
-
-The session layer helps in setting up and managing connections. The main work of this layer is to establish a session. For example, on an online shopping site, a session is created between your computer and the site's server.
-
-The session layer enables the sending and receiving of data, followed by the termination of connected sessions. Authentication is done before a session is established, followed by authorization. Like the previous layers, the session layer also assumes that, after its work is done, the data will be correctly handled by the subsequent layers.
-
-### Transport layer
-
-The transport layer manages data transportation and its own set of protocols for how data will be transferred. The data received here from the session layer is divided into smaller data units called segments. This process is known as segmentation. Every segment contains the source's and destination's port numbers and a sequence number. Port numbers identify the application on which the data needs to be sent. Note that the data is transferred in chunks. The sequence numbers are used to reassemble the segments in the correct order.
-
-The transport layer takes care of the flow control, or the amount of data transferred at a given time. It also accounts for error control, such as data loss, data corruption, and so on. It makes use of an error-detecting value known as a checksum. The transport layer adds a checksum to every data segment to check whether the sent data is received correctly. Data is then transferred to the network layer.
-
-### Network layer
-
-The network layer helps communicate with other networks. It works to transmit received data segments from one computer to another located in a different network. The router lives in the network layer.
-
-The function of the network layer is logical addressing (IP Addressing). It assigns the sender's and receiver's IP addresses to each data packet to ensure it is received at the correct destination. The network layer then routes the data packets. Load balancing also happens in the network layer to make sure that no overloading takes place. Next, the data is transported to the data link layer.
-
-### Data link layer
-
-The data link layer allows direct communication with other devices, such as computers and hosts.
-
-It receives data packets containing the IP addresses of the sender and receiver from the network layer and does the physical addressing, assigning the media access control (MAC) addresses of the sender and receiver to a data packet to form a frame.
-
-### Physical layer
-
-This layer consists of all the hardware and mechanical elements of a system, including the configuration of wires, pins, adapters, and so forth. The data received here by the preceding layers is in the form of 0s and 1s. The physical layer converts this data and transports it to local media via various means, including wires, electrical signals, light signals (as in optical fiber cables), and radio signals (as in WiFi).
-
-Note that the physical layer works at the receiver's end and transports the received signal to the data link as a frame (by converting it back to bits). The frame is moved to the higher layers, and ultimately the required data is received at the application layer, which is the software.
-
-### Conclusion
-
-The OSI model is helpful when you need to describe network architecture or troubleshoot network problems. I hope this article gave you a clearer understanding of the elements this model.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/10/osi-model-network-communications
-
-作者:[Anamika][a]
-选题:[lkxed][b]
-译者:[cool-summer-021](https://github.com/cool-summer-021)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/anamika
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/sites/default/files/lead-images/code_computer_development_programming.png
-[2]: https://opensource.com/article/22/10/osi-model-network-communications#application-layer
-[3]: https://opensource.com/article/22/10/osi-model-network-communications#presentation-layer
-[4]: https://opensource.com/article/22/10/osi-model-network-communications#session-layer
-[5]: https://opensource.com/article/22/10/osi-model-network-communications#transport-layer
-[6]: https://opensource.com/article/22/10/osi-model-network-communications#network-layer
-[7]: https://opensource.com/article/22/10/osi-model-network-communications#data-link-layer
-[8]: https://opensource.com/article/22/10/osi-model-network-communications#physical-layer
diff --git a/translated/tech/20221004 Learn the OSI model in 5 minutes.md b/translated/tech/20221004 Learn the OSI model in 5 minutes.md
new file mode 100644
index 0000000000..cd2b6d735a
--- /dev/null
+++ b/translated/tech/20221004 Learn the OSI model in 5 minutes.md
@@ -0,0 +1,100 @@
+[#]: subject: "Learn the OSI model in 5 minutes"
+[#]: via: "https://opensource.com/article/22/10/osi-model-network-communications"
+[#]: author: "Anamika https://opensource.com/users/anamika"
+[#]: collector: "lkxed"
+[#]: translator: "cool-summer-021"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+5 分钟内了解 OSI 模型
+======
+理解OSI框架的基本概念,掌握计算机系统通信机制
+
+开放系统互联(OSI)模型是一个定义计算机、服务器和用户如何在一个系统内通信的标准。它是第一个网络通信标准模型,在20世纪80年代早期,所有主流的计算机和通信公司都采用了这个标准。
+
+OSI 模型提供了一种通用语言,用于描述网络,以及在离散的块或层中考虑相关的问题。
+
+### OSI模型的各个层
+
+该模型描述了计算机系统通过网络进行通信的七个层。
+
+1. [应用层][2]
+2. [表现层][3]
+3. [会话层][4]
+4. [传输层][5]
+5. [网络层][6]
+6. [数据链路层][7]
+7. [物理层][8]
+
+每个层都有自己的工作方式和一系列跟其他层不同的协议。本文将逐个剖析这些层级。
+
+### 应用层
+
+应用层是在软件中实现的。它是与应用程序交互的层级。
+
+考虑发送消息的例子。发送消息的程序与应用层进行交互,并发送消息。接着,应用层向 OSI 模型的下一个层级(即表现层)发送消息。
+
+### 表现层
+
+来自应用层的数据被转发到表现层。表现层接收到文字、字符、字母、数字等形式的数据,并把它们转换为机器可识读的二进制格式数据。这个过程叫做编译。
+
+在此阶段,ASCII(美国信息交换标准码) 字符被转换为扩充的二进制编码的十进制交换码(EBCDIC)。转换后的数据在继续传输前,也会进行编码和加密过程,使用SSL协议进行加密和解密。
+
+表现层的作用是抽象化,它假设下面的层级会处理它们收到的数据。它也负责压缩数据。数据的压缩可能是有损的,也有可能是无损的,这取决于很多因素,不属于本文的讨论范围。
+
+### 会话层
+
+会话层的作用是建立和管理连接。该层级的主要工作是建立会话。例如,你登录网上商城,就在你的机器和服务器之间建立了会话。
+
+会话层的作用是实现数据的发送和接收,完成后连接的会话就终止了。在一个会话建立前,会进行身份验证。与上一层类似,会话层也假设在它的工作完成后,下面的层级也会准确无误地处理数据。
+
+### 传输层
+
+传输层的作用是管理数据传输和其自身的关于数据如何传输的一些协议。从会话层传到这里的数据被分为更小的数据单元,这些数据单元称为片段。这个过程叫做“分割”。每个片段包含来源端口号、目标端口号和一个序列号。端口号用来识别发送数据的应用程序。注意,数据以块的形式传输。序列号用于把这些片段按正确的顺序排列。
+
+传输层负责控制流量或在给定的时间内传输的数据量。它也负责错误的管理,比如数据丢失、损坏等情况。它利用一种错误探测值,通常叫做校验和。传输层对每个数据片段加上校验和,就可以检查所发送的数据是否被正确接收。然后数据传输到网络层。
+
+### 网络层
+
+网络层的作用是跟其他网络进行通信。它把从一台机器接收到的数据片段传输给另一台位于不同网络的机器。路由器是作用于网络层的。
+
+网络层的功能是逻辑寻址(就是确定 IP 地址)。它为发送方和接收方分配 IP 地址,数据包附带了这个地址,就可以被传输到正确的目标机器。接着网络层对数据包进行路由。负载均衡也是在网络层进行的,旨在确保不会发生过载。下一步,数据传输到数据链路层。
+
+### 数据链路层
+
+数据链路层支持跟其他设备直接通信。
+
+它接收到来自网络层、包含发送方和接收方 IP 地址的数据包,进行物理寻址,然后将发送方和接收方的 MAC 地址分配给数据包,形成帧。
+
+### 物理层
+
+物理层由系统的所有硬件和物理设备(包括网线、导航系统、适配器等)组成。在这里,从前面层级接收到的数据都是 0 和 1 形式的。物理层把这些数据转换并通过各种方式(如果是光纤电缆,有电线、电信号、光信号;如果是 WIFI,则为无线电信号)传输至本地媒介。
+
+注意,物理层作用于接收方的一端,把接收到的信号以帧的形式传输到数据链路层(把它转换回二进制数据形式)。然后帧传输到上面的层级,最终应用层(应用软件)会接收到需要的数据。
+
+### 结语
+
+当你需要描述网络架构或排除网络问题时,OSI 模型的相关知识会对你有所帮助。我希望本文能令你对这个模型的方方面面有清晰的理解。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/osi-model-network-communications
+
+作者:[Anamika][a]
+选题:[lkxed][b]
+译者:[cool-summer-021](https://github.com/cool-summer-021)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/anamika
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/code_computer_development_programming.png
+[2]: https://opensource.com/article/22/10/osi-model-network-communications#application-layer
+[3]: https://opensource.com/article/22/10/osi-model-network-communications#presentation-layer
+[4]: https://opensource.com/article/22/10/osi-model-network-communications#session-layer
+[5]: https://opensource.com/article/22/10/osi-model-network-communications#transport-layer
+[6]: https://opensource.com/article/22/10/osi-model-network-communications#network-layer
+[7]: https://opensource.com/article/22/10/osi-model-network-communications#data-link-layer
+[8]: https://opensource.com/article/22/10/osi-model-network-communications#physical-layer
From 41204c3485994e890396d93288efa27fc9790efc Mon Sep 17 00:00:00 2001
From: geekpi
Date: Tue, 13 Dec 2022 08:43:58 +0800
Subject: [PATCH 011/266] translating
---
...ow to Access UEFI Settings in Linux Systems.md | 122 ------------------
...ow to Access UEFI Settings in Linux Systems.md | 122 ++++++++++++++++++
2 files changed, 122 insertions(+), 122 deletions(-)
delete mode 100644 sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
create mode 100644 translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
diff --git a/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
deleted file mode 100644
index 3ff19e8639..0000000000
--- a/sources/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
+++ /dev/null
@@ -1,122 +0,0 @@
-[#]: subject: "How to Access UEFI Settings in Linux Systems"
-[#]: via: "https://itsfoss.com/access-uefi-from-linux/"
-[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How to Access UEFI Settings in Linux Systems
-======
-
-Want to check the boot order or the power settings at the firmware level? **You can access the UEFI settings by pressing the F2, F10 or Del buttons when your system boots**.
-
-The problem with this approach is that you may not know the exact key and must be alert about pressing those keys at the right time.
-
-![Mr. Bean][1a]
-
-If you don’t want to feel like Mr. Bean in the above Gif, you can access the UEFI settings from the [Grub bootloader][1] screen in Linux.
-
-![uefi firmware settings grub linux][2]
-
-You see this screen when you turn on your Linux system. Most Linux distributions like Fedora and Ubuntu use Grub and they allow you to access the UEFI settings from the Grub screen like this.
-
-What if you don’t see this screen or your distro doesn’t use Grub? There are still ways to access UEFI settings from within Linux.
-
-Before you see how to do that, please [ensure that your system uses UEFI][3].
-
-**_Another important thing. Your system will reboot into UEFI settings._** _You cannot access and modify the firmware settings from within an operating system._
-
-### Boot into UEFI settings from Linux
-
-This method will only work on Linux distros having systemd. This means this method will work on anything based on Ubuntu, Debian, Fedora, and any mainstream Arch-based distros, including Manjaro and EndeavourOS.
-
-It is still a good idea to [ensure that your Linux distro uses systemd][4]. Use the given command and if it returns systemd you are good to go:
-
-```
-ps --no-headers -o comm 1
-```
-
-![how to know if i am using systemd on linux?][5]
-
-Once you figure out that your distro is utilizing systemd, you can use the given command to boot into UEFI settings:
-
-```
-systemctl reboot --firmware-setup
-```
-
-Let me break down the used options first:
-
-- `reboot`: As its name suggest, it will reboot your system.
-- `--firmware-setup`: When this option is used with `reboot`, it will indicate to the system’s firmware to boot into the firmware setup interface.
-
-Yup, that was it! A single command and you will be kicked into UEFI settings. I know Windows allows [booting into UEFI firmware settings from within Windows][6]. It’s good to see something similar in Linux as well.
-
-#### Create a desktop shortcut to boot into UEFI settings (optional)
-
-If you often find yourself booting into the UEFI settings and don’t remember the command all the time, you can make your life easier by creating a desktop shortcut. This will let you boot into UEFI by clicking on desktop icon.
-
-_**Now, this is unnecessary and not required for most Linux users. Do it only if you feel the need for it. The method requires [editing files in the command line][7].**_
-
-First, use the given command to create a desktop shortcut file for UEFI settings:
-
-```
-sudo nano /usr/share/applications/uefi-reboot.desktop
-```
-
-And paste the following content in the file:
-
-```
-[Desktop Entry]
-Name=UEFI Firmware Setup (Reboot)
-Comment=Access the motherboard configuration utility
-Exec=systemctl reboot --firmware-setup
-Icon=system-restart
-Terminal=false
-Type=Application
-Categories=System;Settings;
-```
-
-![create a desktop shortcut to boot into uefi settings][8]
-
-Once done, [save the changes and exit from the nano][9] text editor.
-
-And now, you will find the shortcut for UEFI Firmware Setup in your system menu:
-
-![boot into uefi firmware from system menu][10]
-
-That’s it! A neat way to get into UEFI settings.
-
-### Wrapping Up
-
-The classic ways of accessing the boot settings may be a little inconvenient for some people. The grub screen may not show the UEFI option for older versions.
-
-And this is where the systemd method shines. I found this method a lifesaver when my system crashed and my function keys were not responding, which are necessary to boot into UEFI (that’s what I thought then!).
-
-I hope you find it equally helpful.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/access-uefi-from-linux/
-
-作者:[Sagar Sharma][a]
-选题:[lkxed][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/sagar/
-[b]: https://github.com/lkxed
-[1a]: https://external-preview.redd.it/dxmsKYDmzgfb1thu3EFI8Ni-DNfprNX8W8xDtff4QWU.gif?format=mp4&s=c31204644ac6a2a348133986714ff97cf3c4a48a
-[1]: https://itsfoss.com/what-is-grub/
-[2]: https://itsfoss.com/wp-content/uploads/2022/12/uefi-firmware-settings-grub-linux.webp
-[3]: https://itsfoss.com/check-uefi-or-bios/
-[4]: https://linuxhandbook.com/check-if-systemd/
-[5]: https://itsfoss.com/wp-content/uploads/2022/12/how-to-know-if-i-am-using-systemd-on-linux.png
-[6]: https://itsfoss.com/access-uefi-settings-windows-10/
-[7]: https://learnubuntu.com/edit-files-command-line/
-[8]: https://itsfoss.com/wp-content/uploads/2022/12/create-a-desktop-shortcut-to-boot-into-uefi-settings.png
-[9]: https://linuxhandbook.com/nano-save-exit/
-[10]: https://itsfoss.com/wp-content/uploads/2022/12/boot-into-uefi-firmware-from-system-menu.png
diff --git a/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
new file mode 100644
index 0000000000..779ee8e4ee
--- /dev/null
+++ b/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
@@ -0,0 +1,122 @@
+[#]: subject: "How to Access UEFI Settings in Linux Systems"
+[#]: via: "https://itsfoss.com/access-uefi-from-linux/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+如何在 Linux 系统中访问 UEFI 设置
+======
+
+想要在固件级别检查启动顺序或电源设置? **你可以在系统启动时按 F2、F10 或 Del 按键访问 UEFI 设置**。
+
+这种方法的问题是你可能不知道确切的键,并且必须警惕在正确的时间按下这些键。
+
+![Mr. Bean][1a]
+
+如果你不想像上面 Gif 中的憨豆先生,你可以从 Linux 中的 [Grub bootloader][1] 也没访问 UEFI 设置。
+
+![uefi firmware settings grub linux][2]
+
+当你打开 Linux 系统时,你会看到这个页面。Fedora 和 Ubuntu 等大多数 Linux 发行版都使用 Grub,它们允许你像这样从 Grub 页面访问 UEFI 设置。
+
+如果你没有看到此页面或你的发行版不使用 Grub 怎么办? 仍然有一些方法可以从 Linux 中访问 UEFI 设置。
+
+在你了解如何操作之前,请[确保你的系统使用 UEFI][3]。
+
+**_另一件重要的事情。你的系统将重启进入 UEFI 设置。_** _你无法从操作系统中访问和修改固件设置。_
+
+### 从 Linux 启动到 UEFI 设置
+
+此方法仅适用于具有 systemd 的 Linux 发行版。这意味着这种方法适用于任何基于 Ubuntu、Debian、Fedora 和任何主流的基于 Arch 的发行版,包括 Manjaro 和 EndeavourOS。
+
+[确保你的 Linux 发行版使用 systemd][4] 仍然是一个好主意。使用给定的命令,如果它返回 systemd,你就可以开始了:
+
+```
+ps --no-headers -o comm 1
+```
+
+![how to know if i am using systemd on linux?][5]
+
+当你发现你的发行版正在使用 systemd,你可以使用给定的命令启动到 UEFI 设置:
+
+```
+systemctl reboot --firmware-setup
+```
+
+让我首先分解使用的选项:
+
+- `reboot`:顾名思义,它将重启你的系统。
+- `--firmware-setup`: 当此选项与 `reboot` 一起使用时,它会指示系统固件启动进入固件设置界面。
+
+就是这样! 一个命令,你将进入 UEFI 设置。我知道 Windows 允许[从 Windows 中启动进入 UEFI 固件设置][6]。很高兴在 Linux 中看到类似的东西。
+
+#### 创建桌面快捷方式以启动到 UEFI 设置(可选)
+
+如果你经常发现自己启动进入 UEFI 设置并且不记得所有命令,你可以通过创建桌面快捷方式让你的生活更轻松。这将使你可以通过单击桌面图标启动到 UEFI。
+
+_**现在,对于大多数 Linux 用户来说,这是不必要的,也不是必需的。只有当你觉得有必要时才去做。该方法需要[在命令行中编辑文件][7]。**_
+
+首先,使用给定的命令为 UEFI 设置创建桌面快捷方式文件:
+
+```
+sudo nano /usr/share/applications/uefi-reboot.desktop
+```
+
+并将以下内容粘贴到文件中:
+
+```
+[Desktop Entry]
+Name=UEFI Firmware Setup (Reboot)
+Comment=Access the motherboard configuration utility
+Exec=systemctl reboot --firmware-setup
+Icon=system-restart
+Terminal=false
+Type=Application
+Categories=System;Settings;
+```
+
+![create a desktop shortcut to boot into uefi settings][8]
+
+完成后,[保存更改并退出 nano][9] 文本编辑器。
+
+现在,你将在系统菜单中找到 UEFI 固件设置的快捷方式:
+
+![boot into uefi firmware from system menu][10]
+
+完成了! 一种进入 UEFI 设置的巧妙方法。
+
+### 总结
+
+访问启动设置的经典方法对某些人来说可能有点不方便。grub 页面可能不会显示旧版本的 UEFI 选项。
+
+这就是 systemd 方法的亮点所在。当我的系统崩溃并且我的功能键没有响应时,我发现这种方法是救命稻草,这是启动到 UEFI 所必需的(我当时就是这么想的!)。
+
+我希望你发现它同样有用。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/access-uefi-from-linux/
+
+作者:[Sagar Sharma][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/sagar/
+[b]: https://github.com/lkxed
+[1a]: https://external-preview.redd.it/dxmsKYDmzgfb1thu3EFI8Ni-DNfprNX8W8xDtff4QWU.gif?format=mp4&s=c31204644ac6a2a348133986714ff97cf3c4a48a
+[1]: https://itsfoss.com/what-is-grub/
+[2]: https://itsfoss.com/wp-content/uploads/2022/12/uefi-firmware-settings-grub-linux.webp
+[3]: https://itsfoss.com/check-uefi-or-bios/
+[4]: https://linuxhandbook.com/check-if-systemd/
+[5]: https://itsfoss.com/wp-content/uploads/2022/12/how-to-know-if-i-am-using-systemd-on-linux.png
+[6]: https://itsfoss.com/access-uefi-settings-windows-10/
+[7]: https://learnubuntu.com/edit-files-command-line/
+[8]: https://itsfoss.com/wp-content/uploads/2022/12/create-a-desktop-shortcut-to-boot-into-uefi-settings.png
+[9]: https://linuxhandbook.com/nano-save-exit/
+[10]: https://itsfoss.com/wp-content/uploads/2022/12/boot-into-uefi-firmware-from-system-menu.png
From c2faa4f0c3031d705decee6be7f6cf18bb8bdcdb Mon Sep 17 00:00:00 2001
From: geekpi
Date: Tue, 13 Dec 2022 08:47:37 +0800
Subject: [PATCH 012/266] translating
---
.../20221209.0 ⭐️⭐️ Install open source solar power at home.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
index 7f9e86514d..303c257fdb 100644
--- a/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
+++ b/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/12/open-source-solar-power-home"
[#]: author: "Joshua Pearce https://opensource.com/users/joshuapearce"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 98e8512cef8cc4072eede063bde59ef40e1e4404 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Tue, 13 Dec 2022 10:34:44 +0800
Subject: [PATCH 013/266] ALL
@wxy
https://linux.cn/article-15343-1.html
---
...inux Kernel 6.1 Released With Initial Rust Code.md | 146 ++++++++++++++++++
...inux Kernel 6.1 Released With Initial Rust Code.md | 146 ------------------
2 files changed, 146 insertions(+), 146 deletions(-)
create mode 100644 published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
delete mode 100644 sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
diff --git a/published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md b/published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
new file mode 100644
index 0000000000..d33491862c
--- /dev/null
+++ b/published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
@@ -0,0 +1,146 @@
+[#]: subject: "Linux Kernel 6.1 Released With Initial Rust Code"
+[#]: via: "https://news.itsfoss.com/linux-kernel-6-1-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15343-1.html"
+
+Linux 内核 6.1 发布,包含初始 Rust 支持
+======
+
+> Linux 内核 6.1 现在可以使用了!考虑到这是今年最后一个稳定版本,它有可能是 LTS 版本。
+
+![Linux 内核 6.1 发布,包含初始 Rust 支持][1]
+
+Linux 内核 6.1 终于来了,它以改进和支持新硬件的形式为我们提前带来了节日礼物。🎄
+
+它是在 Linux 内核 6.0 发布的几个月后出现的,当时的命名方案从 5.x.x 改为 6.x,以减少小版本号太多带来的混乱。
+
+像往常一样,今年的最后一个内核版本 **可能被作为一个长期发布的版本**,从而得到几年的支持。
+
+Linux 内核 6.1 如约带来了许多改进,并初步支持了 AMD 和英特尔尚未发布的硬件。
+
+在发布公告中,Linus Torvalds 提到:
+
+> 所以到现在,我们晚了一个星期,不过上周已经没那么紧迫了,而且很顺利,我对 6.1 的状态要比几个星期前感到放心多了,当时似乎还比较紧迫。当然,这意味着现在我们有一个可怕的合并窗口,就在节日假期之前,而且我也有一些节前的旅行要安排。因此,虽然推迟一周是正确的做法,但它确实使 6.2 合并窗口的时间变得很尴尬。
+
+他进一步补充说,考虑到每个人都应该过一个平静的假日季,他将会更严格的对合并窗口的规则进行要求。
+
+### 🆕 Linux 内核 6.1 有什么新内容?
+
+在这个版本中,我们看到了各种变化,例如改进了对 ARM SoC 的支持,初步支持英特尔即将推出的 Meteor Lake CPU,以及 AMD 的 RDNA 3 GPU。
+
+你可以在其 [公告][2] 中找到更多技术细节。
+
+#### 对 Rust 的实验性支持
+
+![linux 6.1 rust][3]
+
+虽然我们预计这将发生在 Linux 内核 6.0,但它在 Linux 内核 6.1 中才出现,这将允许开发者用 Rust 编写内核代码。
+
+#### 英特尔 Meteor Lake 的启用
+
+![英特尔][4]
+
+英特尔的开源开发者一直在努力工作,为即将到来的 Meteor Lake 芯片提供初步支持。
+
+它被称为英特尔的第一个 7 纳米微架构,开发人员已经向 DRM-next 推送了各种提交。
+
+这些包括各种固件提交,对 Meteor Lake CPU 及其集成 GPU 的初步支持。
+
+#### 对 AMD RDNA 3 图形的初始支持
+
+![AMD][5]
+
+这段时间,AMD 一直在为 Linux 内核 6.1 添加 RDNA 3 图形架构的代码。
+
+这包括对他们即将推出的 GPU 的支持和对他们之前的 GPU 产品的各种修复。
+
+你可以通过 [这里][6] 查看完整的补丁列表。
+
+#### 对 AMD 电脑的优化
+
+![优化 AMD][7]
+
+AMD PMF(AMD 平台管理框架)已经被引入这个内核版本。
+
+该驱动旨在为 AMD PC 更安静、更高效的运行提供支持。
+
+它利用板载传感器与 AMD 的各种热能和功率内核驱动来实现这一目标。
+
+#### 改进的 ARM SoC 支持
+
+![arm soc][8]
+
+Linux 内核 6.1 带来了对 ARM SoC 的更多支持,例如:
+
+- 联发科 MT8186
+- 德州仪器 AM62A
+- 恩智浦 i.MX8DXL
+- 高通 IPQ8064 的各种变体
+
+该内核还对一些智能手机提供了支持,如 PINE64 PinePhone Pro、索尼 Xperia 1 IV 和三星 Galaxy E5/E7/Grand Max。
+
+#### 存储的改进
+
+内核在存储方面有很多改进。
+
+例如,Btrfs 在这次更新中带来了异步缓冲写入,提供了超过 2 倍的吞吐量。
+
+然后是对 EXT4 的改进,包括性能优化和一些错误修复。
+
+与此同时,[EROFS][9] 为 Linux 内核 6.1 引入了基于 FSCache 的共享域支持。
+
+#### 🛠️ 其他改进措施
+
+这些并不是 Linux 内核 6.1 提供的唯一改进,以下是其他一些值得注意的改进:
+
+- 对微软 Surface Pro 9 和 Surface Laptop 5 的支持。
+- 启用 AMD Zen 4 LbrExtV2。
+- AMD CPU “缓存到缓存”和内存报告功能。
+- 引入 AMD IOMMU v2。
+- 为 Wi-Fi 802.11be/Wi-Fi 7 做准备。
+
+### 如何安装 Linux 内核 6.1?
+
+如果你使用基于 Arch 的发行版或 Fedora,你可以轻松升级。
+
+不幸的是,如果你使用其他 Linux 发行版(Pop!_OS 和 Linux Lite 在某种程度上可以是个例外),你可能无法直接从发行版中获得升级。
+
+然而,几乎所有的 Linux 发行版都明确地允许你安装最新的内核。这里有一个关于 Ubuntu 的指南👇
+
+> **[如何在 Ubuntu 中安装最新的主线 Linux 内核版本](https://itsfoss.com/upgrade-linux-kernel-ubuntu/)**
+
+所以,如果你乐于冒险(并且知道自己在做什么),你可以在 [Linux 内核档案][10] 上找到列出的较新的内核。你可以下载 [tarball][11] 来测试它。
+
+然而,像往常一样,如果你不想冒任何风险,我们建议等待你的 Linux 发行版推送更新。最好是坚持使用你的 Linux 发行版默认提供的东西。
+
+> **[下载 Linux 6.1][12]**
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/linux-kernel-6-1-release/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-kernel-6-1-release.png
+[2]: https://lore.kernel.org/lkml/CAHk-=wj_HcgFZNyZHTLJ7qC2613zphKDtLh6ndciwopZRfH0aQ@mail.gmail.com/T/#u
+[3]: https://news.itsfoss.com/content/images/2022/12/linux-6-1-rust.png
+[4]: https://news.itsfoss.com/content/images/2022/12/intel-meteor.png
+[5]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3.png
+[6]: https://lists.freedesktop.org/archives/dri-devel/2022-September/373430.html
+[7]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--1-.png
+[8]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--2-.png
+[9]: https://en.wikipedia.org/wiki/EROFS
+[10]: https://www.kernel.org/
+[11]: https://git.kernel.org/torvalds/t/linux-6.1.tar.gz
+[12]: https://www.kernel.org
diff --git a/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md b/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
deleted file mode 100644
index f406377262..0000000000
--- a/sources/news/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
+++ /dev/null
@@ -1,146 +0,0 @@
-[#]: subject: "Linux Kernel 6.1 Released With Initial Rust Code"
-[#]: via: "https://news.itsfoss.com/linux-kernel-6-1-release/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Linux Kernel 6.1 Released With Initial Rust Code
-======
-
-Linux Kernel 6.1 is now available! Potentially an LTS version considering it is the last stable release of the year.
-
-![Linux Kernel 6.1 Released With Initial Rust Code][1]
-
-Linux Kernel 6.1 is finally here, and it comes bearing early Christmas gifts in the form of improvements and support for new hardware. 🎄
-
-It comes a few months after the release of Linux Kernel 6.0, where the naming scheme was changed from 5.x.x to 6.x in favor of a less confusing alternative.
-
-As usual, the last kernel release of the year **may be considered a long-term release version** that gets support for a couple of years.
-
-#### Suggested Read 📖
-
-Linux Kernel 6.1 promises many improvements and includes initial support for unreleased hardware by AMD and Intel.
-
-With the announcement, Linus Torvalds mentions:
-
-> So here we are, a week late, but last week was nice and slow, and I'm much happier about the state of 6.1 than I was a couple of weeks ago when things didn't seem to be slowing down. Of course, that means that now we have the merge window from hell, just before the holidays, with me having some pre-holiday travel coming up too. So while delaying things for a week was the right thing to do, it does make the timing for the 6.2 merge window awkward.
-
-He further adds that he will be stricter about the merge window rules considering it should be a calm holiday season for everyone.
-
-### 🆕 Linux Kernel 6.1: What’s New?
-
-With this release, we see various changes, such as improved support for ARM SoCs, initial support for Intel's upcoming Meteor lake CPUs, and AMD's RDNA 3 GPUs.
-
-You can find more technical details in its [announcement post][2].
-
-#### Experimental Support for Rust
-
-![linux 6.1 rust code][3]
-
-While we expected this to happen with Linux Kernel 6.0, it arrives with Linux Kernel 6.1, allowing developers to write kernel code in Rust.
-
-#### Enablement Of Intel Meteor Lake
-
-![intel logo][4]
-
-Intel's open-source developers have been hard at work to provide initial support for the upcoming Meteor Lake chips.
-
-Dubbed as Intel's first 7 nm microarchitecture, developers have pushed various commits to DRM-next.
-
-These include a variety of firmware commits with initial support for the Meteor Lake CPUs and their integrated GPUs.
-
-#### Initial Support For AMD RDNA 3 Graphics
-
-![amd logo][5]
-
-AMD has been adding code for the RDNA 3 graphics architecture to Linux Kernel 6.1 for some time now.
-
-This includes support for their upcoming GPUs and various fixes for their old GPU products.
-
-You can go through the full list of patches [here][6].
-
-#### Optimizations for AMD PCs
-
-![pc optimizations amd][7]
-
-AMD PMF has been introduced with this kernel release; it stands for AMD Platform Management Framework.
-
-This driver is meant to provide a framework for the quieter and more efficient running of AMD PCs.
-
-It makes use of the onboard sensors in tandem with AMD's various thermal and power kernel drivers to achieve that.
-
-#### Improved ARM SoC Support
-
-![arm soc][8]
-
-Linux Kernel 6.1 brings in support for additional ARM SoCs, such as:
-
-- MediaTek MT8186
-- Texas Instruments AM62A
-- NXP i.MX8DXL
-- Various variants of Qualcomm IPQ8064
-
-The kernel also features support for a few smartphones such as PINE64 PinePhone Pro, Sony Xperia 1 IV, and Samsung Galaxy E5/E7/Grand Max.
-
-#### Storage Improvements
-
-The kernel has a lot of improvements for storage.
-
-For instance, Btrfs is bringing async buffered writes with this update, resulting in more than 2x throughput improvement.
-
-Then there are the improvements to EXT4 with performance optimization and a few bug fixes.
-
-Alongside this, [EROFS][9] has introduced FSCache-based shared domain support to Linux Kernel 6.1.
-
-#### 🛠️ Other Improvements
-
-Those are not the only improvements being offered with Linux Kernel 6.1; here are some of the other notable ones:
-
-- **Support for Microsoft Surface Pro 9 and Surface Laptop 5.**
-- **Enablement of AMD Zen 4 LbrExtV2.**
-- **AMD CPU Cache-To-Cache & Memory Reporting Capabilities.**
-- **Introduction of AMD IOMMU v2.**
-- **Preparations for Wi-Fi 802. 11be/Wi-Fi 7.**
-
-### How to Install Linux Kernel 6.1?
-
-You can easily upgrade if you use an Arch-based distro or Fedora.
-
-Unfortunately, if you are using other Linux distributions (Pop!_OS and Linux Lite can be an exception to some extent), you may not receive an upgrade directly from your distro.
-
-However, almost all Linux distributions explicitly allow you to install the latest kernel. Here's a guide for Ubuntu 👇
-
-So, if you are feeling adventurous (and know what you are doing), you can find the newer kernel listed on [Linux Kernel Archives][10]. You can download the [tarball][11] to test it out.
-
-However, as always, we recommend waiting for your Linux distribution to push an update if you do not want to take any chances. It is best to stick to what’s being offered for your Linux distribution by default.
-
-[Download Linux 6.1][12]
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/linux-kernel-6-1-release/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-kernel-6-1-release.png
-[2]: https://lore.kernel.org/lkml/CAHk-=wj_HcgFZNyZHTLJ7qC2613zphKDtLh6ndciwopZRfH0aQ@mail.gmail.com/T/#u
-[3]: https://news.itsfoss.com/content/images/2022/12/linux-6-1-rust.png
-[4]: https://news.itsfoss.com/content/images/2022/12/intel-meteor.png
-[5]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3.png
-[6]: https://lists.freedesktop.org/archives/dri-devel/2022-September/373430.html
-[7]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--1-.png
-[8]: https://news.itsfoss.com/content/images/2022/12/amd-rdna-3--2-.png
-[9]: https://en.wikipedia.org/wiki/EROFS
-[10]: https://www.kernel.org/
-[11]: https://git.kernel.org/torvalds/t/linux-6.1.tar.gz
-[12]: https://www.kernel.org
From cd8f6383a9f320a2a4bb080b0de71a6b083fc463 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Tue, 13 Dec 2022 11:47:36 +0800
Subject: [PATCH 014/266] R
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@CanYellow
感谢您,完成了第一篇翻译贡献!翻译的很好。
---
...ng Linus-s Law for open source security.md | 49 +++++++++----------
1 file changed, 24 insertions(+), 25 deletions(-)
diff --git a/translated/talk/20210209 Understanding Linus-s Law for open source security.md b/translated/talk/20210209 Understanding Linus-s Law for open source security.md
index 70ce78b0dd..9657a6a3fa 100644
--- a/translated/talk/20210209 Understanding Linus-s Law for open source security.md
+++ b/translated/talk/20210209 Understanding Linus-s Law for open source security.md
@@ -1,6 +1,6 @@
[#]: collector: (lujun9972)
[#]: translator: (CanYellow)
-[#]: reviewer: ( )
+[#]: reviewer: (wxy)
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Understanding Linus's Law for open source security)
@@ -9,38 +9,38 @@
理解开源安全中的李纳斯定律
======
-李纳斯定律 (Linus's Law) 即“只要有足够多的眼睛关注,任何漏洞都无处隐藏” (given enough eyeballs, all bugs are shallow)。那么李纳斯定律是如何应用于开源软件安全的呢?
-![Hand putting a Linux file folder into a drawer][1]
+李纳斯定律即“只要有足够多的眼睛关注,任何漏洞都无处隐藏”。那么李纳斯定律是如何应用于开源软件安全的呢?
-2021 年,有更多的原因使人们比以往更钟情 Linux 。在本系列中,我将分享 21 个使用 Linux 的不同原因。 这篇文章则讨论 Linux 对开源软件安全的影响。
+![][0]
-开源软件的一个常被赞扬的优点是它的代码能够被任何人检查(安全专家通常称之为“代码审计”)。然而,如果你真的去问很多开源软件用户他们上一次检查代码是什么时候。你大概只能收获他们茫然的眼神或者是喃喃的低语。此外,对于一些相当大型的开源应用,高效地审查每一行代码也是困难的。
+这篇文章讨论 Linux 对开源软件安全的影响。
+
+开源软件的一个常被赞扬的优点是它的代码能够被任何人审查(安全专家通常称之为“代码审计”)。然而,如果你真的去问很多开源软件用户他们上一次检查代码是什么时候。你大概只能收获他们茫然的眼神或者是喃喃的低语。此外,对于一些相当大型的开源应用,有效地审查每一行代码也是困难的。
根据上述这些稍显不安的事实,我们不得不思考:如果没有人察看这些代码,它是开源还是闭源真的有关系吗?
-
### 你应该相信开源吗?
-计算机爱好者倾向于作出认为开源软件比其他软件更加安全的传统假设。我们通常不会讨论这意味者什么:比较的基础是什么(比什么更安全?),或者上述结论是如何得到的。这是一个危险的陈述,因为它表明只要你将一些东西称之为“开源”,它就自动如魔法般地继承了更高的安全性。这不是开源,事实上,这正是开源安全所非常反对的。
+计算机爱好者倾向于作出认为开源软件比其他软件更加安全的传统假设。我们通常不会讨论这意味者什么:比较的基础是什么(比什么“更”安全?),或者上述结论是如何得到的。这是一个危险的陈述,因为它表明只要你将一些东西称之为“开源”,它就自动如魔法般地继承了更高的安全性。这不是开源,事实上,这正是开源安全非常反对的。
-除非你已经亲自审计并理解了软件代码,否则就不应该假定一个应用程序是安全的。一但你做到了这一点,就可以给予它_最高信任_。_最高信任_不是对计算机而言的,而是对你本人而言的,至少在这一应用程序被渗透攻击之前,你信任它是因为你选择了相信它是安全的。
+除非你已经亲自审计并理解了软件代码,否则就不应该假定一个应用程序是安全的。一但你做到了这一点,就可以给予它 终极信任ultimate trust。_终极信任_ 不是对计算机而言的,而是对你本人而言的,至少在这一应用程序被渗透攻击之前,你信任它是因为你选择了相信它是安全的。
-使用者本人是唯一可以对软件代码最高信任的人,因此任何人想要获得这样的享受都必须亲自审查代码。相信其他人的话是不管用的。
+使用者本人是唯一可以对软件代码给予终极信任的人,因此任何人想要获得这样的享受都必须亲自审查代码。相信其他人的话是不管用的。
-只有你已经亲自审计并理解了软件代码,你才可以对一个应用程序给予最高信任,最高信任的范围可以是从_根本不信任_到_相当信任_之间。然而我们并没有一个关于信任程度的标准对照表,这是一个你必须亲自做出的个人选择。如果你已经听说了一款应用程序的安全性是可以信任的,相比没有任何建议的情况而言,你可能更加信任它。
+在你已经亲自审计并理解了软件代码之前,你对一个应用程序给予的最大信任度是一个范围,可以是从 _根本不信任_ 到 _相当信任_ 之间。然而我们并没有一个关于信任程度的标准对照表,这是一个你必须亲自做出的个人选择。如果你已经从非常信任的人那里听说了一款应用程序是安全的,那么你可能会更信任这个软件,而不是信任那些你没有得到信任建议的东西。
-然而,因为无法审计专有(闭源)软件代码,你不可能给予它_最高信任_。
+然而,因为无法审计专有(闭源)软件代码,你不可能给予它 _终极信任_。
### 李纳斯定律
-现实很骨感,并不是每个人都是程序员,同时也不是每个程序员都有时间检查数以万计的代码行。因此如果你没有亲自审查代码,你就只能选择相信(一定程度上)_亲自_审查了代码的人。
+现实很骨感,并不是每个人都是程序员,同时也不是每个程序员都有时间检查数以万计的代码行。因此如果你没有亲自审查代码,你就只能选择(一定程度上)相信那些 _亲自_ 审查了代码的人。
-那么,有哪些人会审计代码呢?
+那么,有哪些人会审查代码呢?
-李纳斯定律声称_只要有足够的眼睛关注,任何漏洞都无处隐藏_,然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量,应用程序往往经过了远超你想象数量的人员审计。原始开发人员以及后续开发人员显然清楚他们自己写下的代码,不过开源软件往往都是团队成果,开源时间越长,阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分,因为他们必须学习基础代码以加入新的功能。
+李纳斯定律声称 _只要有足够的眼睛关注,任何漏洞都无处隐藏_,然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量,应用程序往往经过了远超你想象数量的人员审查。原始开发人员以及后续开发人员显然清楚他们自己写下的代码,不过开源软件往往都是团队成果,开源时间越长,阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分,因为他们必须学习基础代码以加入新的功能。
-同时,为了使开源软件能够在 Linux 发行版上可用,负责开源软件打包分发的开发人员会加入多个项目。有时一个应用程序可能会在不熟悉项目代码的情况下打包,但是大多数时候,开源软件打包人员都是熟悉所打包的项目代码的。这不仅仅是因为他们不想在他们不信任的软件上签名,还由于他们可能不得不修改代码来使得程序能够正确编译。漏洞报告人员和漏洞修复人员一般也是熟悉基本代码的,因为他们需要尝试解决的问题小到运行异常,大到程序崩溃。当然,一些漏洞报告人员无意中揭示了代码漏洞不是通过亲自审查项目代码而是通过关注明显未按预期工作的现象。系统管理员通常都是通晓用户依赖的重要应用软件的代码的。最后,是安全研究人员,他们专门深入代码内部以揭露潜在的漏洞。
+同时,为了使开源软件能够在 Linux 发行版上可用,负责开源软件打包分发的开发人员会加入多个项目。有时一个应用程序可能会在不熟悉项目代码的情况下打包,但是大多数时候,开源软件打包人员都是熟悉所打包的项目代码的。这不仅仅是因为他们不想在他们不信任的软件上签名,还由于他们可能不得不修改代码来使得程序能够正确编译。漏洞报告人员和漏洞修复人员一般也是熟悉代码库的,因为他们需要尝试解决小到运行异常,大到程序崩溃的问题。当然,一些漏洞报告人员不是通过亲自审查项目代码,而是通过关注明显未按预期工作的现象,无意中揭示了代码漏洞。系统管理员通常都是通晓用户依赖的重要应用软件的代码的。最后,还有一些安全研究人员,他们专门深入代码内部以揭露潜在的漏洞。
### 信任与透明
@@ -48,22 +48,21 @@
当然,也有例外。有时仅仅一个系统调用或者链接一个有缺陷的库文件就可能引入一系列漏洞。幸运的是,多亏安全研究人员以及漏洞数据库所扮演的积极角色,这些错误相对而言是容易发现的。
-一些人指向错误追踪系统,比如 [通用漏洞披露 (CVE)][2] 网站,并推断开源软件显而易见是不安全的。毕竟已经向公众公开了大量的安全风险,涉及许多开源项目。但是不要被数据欺骗了。只是因为我们不能发现闭源软件的漏洞,并不意味着闭源软件中不存在漏洞。事实上,已经有很多针对闭源软件的漏洞攻击提出了,闭源软件也是存在漏洞的。区别在于开发者(以及用户)可以查看开源软件的_所有的漏洞_从而降低漏洞的影响。这是扩大对开源软件信任的系统机制的一部分,却正是闭源软件软件所缺少的。
+一些人指着错误追踪系统,比如 [通用漏洞披露][2]Common Vulnerabilities and Exposures(CVE)网站,并推断开源软件显而易见是不安全的。毕竟已经向公众公开了大量的安全风险,涉及许多开源项目。但是不要被数据欺骗了。只是因为我们看不到现闭源软件的漏洞,并不意味着闭源软件中不存在漏洞。事实上,已经有很多针对闭源软件的漏洞攻击提出了,闭源软件也是存在漏洞的。区别在于开发者(以及用户)可以查看开源软件的 _所有的漏洞_ 从而降低漏洞的影响。这是扩大对开源软件信任的系统机制的一部分,却正是闭源软件软件所缺少的。
对于任何代码而言,可能永远没有“足够的眼睛”来发现漏洞,但是开发社区越壮大、越多样化,越有机会发现和修复代码中的缺陷。
### 信任与人
-在开源社区中,参与同一项目的众多开发者已经发现“不安全”的漏洞却保持沉默的的可能性是微乎其微的,因为人们彼此间不会同意以这样的方式密谋。我们已经看到了在应对 COVID-19 的过程中,人类的行为是如何不一致了,在这里也一样:
+在开源社区中,参与同一项目的众多开发者已经发现“不安全”的漏洞,却保持沉默的的可能性是微乎其微的,因为人们很少同意以这样的方式合谋。我们已经看到了在应对 COVID-19 的过程中,人类的行为是如何不一致了,在这里也一样:
- * 我们都识别出了漏洞(病毒)。
- * 我们知晓如何避免它传播(待在家里)。
+ * 我们都发现了漏洞(病毒)。
+ * 我们知晓如何避免它传播(待在家里)。
* 然而病毒还是在持续传播,因为总是有一个或者多个人偏离了消减疫情的计划。
-开源软件中的漏洞也一样,如果有人发现了漏洞总会公之于众(当然,我们说的是“假如”能够发现)。
-
-然而就专有软件而言,有很大可能参与项目的众多开发者即使注意到不安全的漏洞却仍然保持沉默,因为专有模式依赖于回报。如果一个开发者将漏洞泄漏出来,他可能只是伤害了该专有软件的声誉,进而降低软件的销售额;或者,在更糟糕的情况下,他可能因此而丢了工作。付费秘密开发软件的开发者倾向于不讨论软件的缺陷。如果你曾经是一名开发者,你可能曾经签署过 NDA (译者注:Non-Disclosure Agreement,保密协议),你可能被培训过商业秘密的重要性等等不一而足。专有软件鼓励在面对严重的秘密缺陷时保持沉默,更多时候甚至是强制要求沉默。
+开源软件中的漏洞也一样,如果有人发现了漏洞总会公之于众(当然,我们说的是“假如”能够发现)。
+然而就专有软件而言,有很大可能参与项目的众多开发者即使注意到不安全的漏洞却仍然保持沉默,因为专有模式依赖于薪水。如果一个开发者将漏洞泄漏出来,他可能只是伤害了该专有软件的声誉,进而降低软件的销售额;或者,在更糟糕的情况下,他可能因此而丢了工作。开发人员拿着薪水秘密地研究软件,往往不会谈论其缺陷。如果你曾经是一名开发者,你可能曾经签署过 NDA (LCTT 译注:保密协议Non-Disclosure Agreement),也被培训过商业秘密的重要性,等等不一而足。专有软件鼓励在面对严重的秘密缺陷时保持沉默,更多时候甚至是强制要求沉默。
### 信任与软件
@@ -71,8 +70,7 @@
如果你必须相信未经你审计的软件,那么选择相信已经面向那些更有可能将软件缺陷公之于众的开发者公开代码的软件。
-开源软件并没有比专有软件继承更高的安全性,但是修复它的系统得到了更好的规划实施和人员配置。
-
+开源软件并没有比专有软件继承更高的安全性,但是修复它的系统得到了更好的规划、实施和人员配置。
--------------------------------------------------------------------------------
@@ -81,7 +79,7 @@ via: https://opensource.com/article/21/2/open-source-security
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[CanYellow](https://github.com/CanYellow)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -89,3 +87,4 @@ via: https://opensource.com/article/21/2/open-source-security
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer)
[2]: https://cve.mitre.org
+[0]: https://img.linux.net.cn/data/attachment/album/202212/13/114637dg6w34suucuupucv.jpg
\ No newline at end of file
From bbbb0d3de4b70c9cca9ee1b3864b1a3368cc2e14 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Tue, 13 Dec 2022 11:49:40 +0800
Subject: [PATCH 015/266] P
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@CanYellow
本文首发地址:https://linux.cn/article-15344-1.html
您的 LCTT 专页:https://linux.cn/lctt/CanYellow
---
...09 Understanding Linus-s Law for open source security.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
rename {translated/talk => published}/20210209 Understanding Linus-s Law for open source security.md (97%)
diff --git a/translated/talk/20210209 Understanding Linus-s Law for open source security.md b/published/20210209 Understanding Linus-s Law for open source security.md
similarity index 97%
rename from translated/talk/20210209 Understanding Linus-s Law for open source security.md
rename to published/20210209 Understanding Linus-s Law for open source security.md
index 9657a6a3fa..441574827d 100644
--- a/translated/talk/20210209 Understanding Linus-s Law for open source security.md
+++ b/published/20210209 Understanding Linus-s Law for open source security.md
@@ -1,8 +1,8 @@
[#]: collector: (lujun9972)
[#]: translator: (CanYellow)
[#]: reviewer: (wxy)
-[#]: publisher: ( )
-[#]: url: ( )
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-15344-1.html)
[#]: subject: (Understanding Linus's Law for open source security)
[#]: via: (https://opensource.com/article/21/2/open-source-security)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
@@ -10,7 +10,7 @@
理解开源安全中的李纳斯定律
======
-李纳斯定律Linus's Law即“只要有足够多的眼睛关注,任何漏洞都无处隐藏given enough eyeballs, all bugs are shallow”。那么李纳斯定律是如何应用于开源软件安全的呢?
+李纳斯定律Linus's Law即“只要有足够多的眼睛关注,任何漏洞都无处隐藏given enough eyeballs, all bugs are shallow”。那么李纳斯定律是如何应用于开源软件安全的呢?
![][0]
From ab6e90fcdc37e3f999de3a823e61b04e98827854 Mon Sep 17 00:00:00 2001
From: cool-summer-021
Date: Tue, 13 Dec 2022 15:27:50 +0800
Subject: [PATCH 016/266] =?UTF-8?q?=E7=94=B3=E9=A2=86=E6=96=87=E7=AB=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../20220608 WiFi 6 Promises Much More than Faster Speeds.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
index ba0801c1a2..fd7b08a93e 100644
--- a/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
+++ b/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
@@ -2,7 +2,7 @@
[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/"
[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "cool-summer-021"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
@@ -84,7 +84,7 @@ via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faste
作者:[Sharon Katta][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
+译者:[cool-summer-021](https://github.com/cool-summer-021)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From 0aa2cac3e785a548eda63dddec9b05ed3a28d0dd Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Tue, 13 Dec 2022 15:33:10 +0800
Subject: [PATCH 017/266] R
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
采用被公开使用的译名
---
... Understanding Linus-s Law for open source security.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/published/20210209 Understanding Linus-s Law for open source security.md b/published/20210209 Understanding Linus-s Law for open source security.md
index 441574827d..4ff8387172 100644
--- a/published/20210209 Understanding Linus-s Law for open source security.md
+++ b/published/20210209 Understanding Linus-s Law for open source security.md
@@ -7,10 +7,10 @@
[#]: via: (https://opensource.com/article/21/2/open-source-security)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
-理解开源安全中的李纳斯定律
+理解开源安全中的林纳斯定律
======
-李纳斯定律Linus's Law即“只要有足够多的眼睛关注,任何漏洞都无处隐藏given enough eyeballs, all bugs are shallow”。那么李纳斯定律是如何应用于开源软件安全的呢?
+林纳斯定律Linus's Law即“只要有足够多的眼睛关注,任何漏洞都无处隐藏given enough eyeballs, all bugs are shallow”。那么林纳斯定律是如何应用于开源软件安全的呢?
![][0]
@@ -32,13 +32,13 @@
然而,因为无法审计专有(闭源)软件代码,你不可能给予它 _终极信任_。
-### 李纳斯定律
+### 林纳斯定律
现实很骨感,并不是每个人都是程序员,同时也不是每个程序员都有时间检查数以万计的代码行。因此如果你没有亲自审查代码,你就只能选择(一定程度上)相信那些 _亲自_ 审查了代码的人。
那么,有哪些人会审查代码呢?
-李纳斯定律声称 _只要有足够的眼睛关注,任何漏洞都无处隐藏_,然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量,应用程序往往经过了远超你想象数量的人员审查。原始开发人员以及后续开发人员显然清楚他们自己写下的代码,不过开源软件往往都是团队成果,开源时间越长,阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分,因为他们必须学习基础代码以加入新的功能。
+林纳斯定律声称 _只要有足够的眼睛关注,任何漏洞都无处隐藏_,然而我们并不知道多少双眼睛是“足够”的。请不要低估这一数量,应用程序往往经过了远超你想象数量的人员审查。原始开发人员以及后续开发人员显然清楚他们自己写下的代码,不过开源软件往往都是团队成果,开源时间越长,阅读了代码的开发人员越多。新加入的开发人员也必须回顾项目代码的核心部分,因为他们必须学习基础代码以加入新的功能。
同时,为了使开源软件能够在 Linux 发行版上可用,负责开源软件打包分发的开发人员会加入多个项目。有时一个应用程序可能会在不熟悉项目代码的情况下打包,但是大多数时候,开源软件打包人员都是熟悉所打包的项目代码的。这不仅仅是因为他们不想在他们不信任的软件上签名,还由于他们可能不得不修改代码来使得程序能够正确编译。漏洞报告人员和漏洞修复人员一般也是熟悉代码库的,因为他们需要尝试解决小到运行异常,大到程序崩溃的问题。当然,一些漏洞报告人员不是通过亲自审查项目代码,而是通过关注明显未按预期工作的现象,无意中揭示了代码漏洞。系统管理员通常都是通晓用户依赖的重要应用软件的代码的。最后,还有一些安全研究人员,他们专门深入代码内部以揭露潜在的漏洞。
From a7e9ea4d8853375ae8ddaa8b075ae7abbddebfa4 Mon Sep 17 00:00:00 2001
From: Bright Huang
Date: Tue, 13 Dec 2022 19:12:27 +0800
Subject: [PATCH 018/266] after work
---
....5 ⭐️⭐️ Our open source startup journey.md | 57 +++++++++++++++++++
1 file changed, 57 insertions(+)
diff --git a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
index 82d777b905..3dcf5ba6af 100644
--- a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
+++ b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
@@ -7,43 +7,98 @@
[#]: publisher: " "
[#]: url: " "
+开启我们的开源之旅
+
+DN
Our open source startup journey
======
+ToolJet 是一款开源的代码量少的用于快速构建和部署内部工具的框架。它的基础代码完全基于 JavaScript 和 TypeScript 。
+
+DN
[ToolJet][1] is an open source, low-code framework for rapidly building and deploying internal tools. Our codebase is 100% JavaScript and TypeScript.
+ToolJet于2021年由一名开发者启动开发,并于2021年6月推出公测版本,一炮而红。此后, ToolJet 成立了基金会。目前,已经有一个20人的开发团队了。
+
+DN
A lone developer in April 2021 started ToolJet. The public beta launched in June 2021 and was an instant hit. With this traction, ToolJet raised funding, and currently, we have a team of 20 members.
+### 为什么选择开源
+
+DN
### Why open source?
+在开发 ToolJet 之前,我曾担任一些企业客户端的顾问。许多客户端都庞大到在其中维护构建了大量的内部工具,更不用说来自销售人员、支持人员以及运营人员对于内部工具的持续的漏洞修复与添加更多功能的要求了。开发团队一直在寻找能够用于内部应用开发的工具。
+
+DN
Before working on ToolJet, I worked with a few enterprise clients as a consultant. Many of these clients were large enough to build and maintain dozens of internal tools. Despite the constant requests from sales, support, and operations teams to add more features and fix the bugs in their internal tools, engineering teams struggled to find the bandwidth to work on the internal utilities.
+我尝试过多个平台来构建和维护内部工具。大部分的平台是昂贵的,而且有时候并不能满足我们的需求,我们不得不修改平台代码,而且大多数的平台工具都不支持本地托管。
+
+DN
I tried using a few platforms to build and maintain internal tools. Most of these tools were very expensive, and frequently, they didn't really fit the requirements. We needed modifications, and most utilities didn't support on-premise hosting.
+作为一名 Ruby 开发者,我最初使用 ActiveAdmin 和 RailsAdmin 来构建内部工具。这两款工具都是极好的,只是将它们应用在超出一个数据源上的工作比较困难。于是我意识到市场上需要一种可以构建用户界面并能够连接多个数据源的框架。我相信任何为开发者制作的工具都应当是开源的。开发者日常使用的大部分工具与框架都源自世界各地人们的公开协作。
+
+DN
As a Ruby developer, I primarily used ActiveAdmin and RailsAdmin to build internal tools. Both utilities are amazing, but making them work with more than one data source is difficult. I then realized there is a need in the market for a framework that could build user interfaces and connect to multiple data sources. I believe any tool built for developers should be open source. Most of the tools and frameworks that developers use daily result from people from all over the world collaborating in public.
+### 第一次提交
+
+DN
### The first commit
+制作像 ToolJet 这样的工具需要全身心的投入,出售我的一个个人项目后我获得了5-6个月的空闲,我立即着手将在我脑海里酝酿了两年的想法付诸现实。
+
+DN
Building something like ToolJet needed a full-time commitment. Selling one of my side projects gave me a runway of 5-6 months, and I immediately started working on an idea I'd had in mind for at least two years.
+2021年4月1日,我完成了 ToolJet 的第一次提交(使用 rails new 命令)。
+
+DN
The first commit (rails new) of ToolJet was on April 1, 2021.
+稍等!我刚刚说 ToolJet 的代码是完全基于 JavaScript 的?请接着往下看。
+
+DN
Wait! I said the codebase is 100% JavaScript. Continue reading to discover why.
+TD
+### 构建工具并推销给投资者
+
### Building and pitching investors
+4、5月间,我一直坐在电脑屏幕前编写代码和向种子轮的投资者推销我的工具。
+
+DN
I sat in front of my screens for most of April and May, coding and pitching to investors for a pre-seed round.
+我的工作还包括创建拖放式应用程序构建器,撰写所有的文档以保证有在主流平台上设置 ToolJet 的文档,创建项目网站,制作发布时所需的海报以及博客文章等等。这一过程进展顺利,没有遇到大的挑战。当时, ToolJet 的前端使用的是 React ,而后端则用的是 Ruby on Rails 。
+
+DN
My work also included creating the drag-and-drop application builder, documenting everything, ensuring there was documentation for setting ToolJet up on popular platforms, creating a website, creating posters and blog posts for launch, and more. The process went well without any major challenges. At this point, the frontend of ToolJet was built using React, with the backend using Ruby on Rails.
+编程工作进行得很顺利,然而投资者推广工作进行得并不顺利。我向专注于初创时期投资的风投和天使投资人发送了大约40封电子邮件,都石沉大海。大部分邮件都被忽略了,不过也有一些公司向我说明了拒绝的原因,另外一些则给我来了电话。
+
+DN
While the coding was going well, investor pitches weren't going great. I sent around 40 cold emails to venture capitalist firms and "angel investors" focused on early-stage funding. While most of them ignored the email, some shared their reason for rejection, and some scheduled a call.
+大部分的电话内容都是一样的:我无法说服他们接受开源商业模型。
+
+DN
Most of the calls were the same; I couldn't convince them of an open source business model.
+### 工具发布
+
+DN
### The launch
+6月7日是发布日。我们首先在 ProductHunt (译者注: [ProductHunt][11] 是一个新品发布平台)上发布.六个小时后,只有70名用户注册。但是我们有成为当天第一名产品的趋势(最终在那一周的产品中排名第三)。这是原始的[发布帖][2]。
+
+DN
June 7th was the day of the launch. First, we launched on ProductHunt. Six hours passed, and there were only 70 new signups. But we were trending as the #1 product of the day (and ended up as the #3 product of the week). For posterity, here's the original [post][2].
+
I also posted on [HackerNews][3] around 6 PM, and within an hour, the post was #1. I was very happy that many visitors signed up and starred the repository. Many of these visitors and users reported bugs in the application and documentation. Within eight hours of posting on HN, more than 1,000 GitHub users starred ToolJet's GitHub repository, and there were hundreds of signups for ToolJet cloud. The trend continued for three days, and the repo had 2.4k stars.
![ToolJet repo stats on GitHub][4]
@@ -112,3 +167,5 @@ via: https://opensource.com/article/22/10/tooljet-open-source-journey
[8]: https://blog.tooljet.com/how-we-migrated-tooljet-server-from-ruby-to-node-js
[9]: https://opensource.com/sites/default/files/2022-10/tooljet-star-history.png
[10]: https://opensource.com/article/19/11/product-vs-project
+
+[11]: https://www.producthunt.com/
From 08e6da5fd571213a9c38f682e704648ab4f2a07e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 22:45:58 +0800
Subject: [PATCH 019/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221212.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=205?=
=?UTF-8?q?=20Best=20Linux=20Phones=20to=20Watch=20Out=20for=20in=202023.m?=
=?UTF-8?q?d?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... 5 Best Linux Phones to Watch Out for in 2023.md | 226 ++++++++++++++++++
1 file changed, 226 insertions(+)
create mode 100644 sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
diff --git a/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
new file mode 100644
index 0000000000..4988fb5a7c
--- /dev/null
+++ b/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
@@ -0,0 +1,226 @@
+[#]: subject: "5 Best Linux Phones to Watch Out for in 2023"
+[#]: via: "https://www.debugpoint.com/best-linux-phones/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+5 Best Linux Phones to Watch Out for in 2023
+======
+
+**Here’s a list of the best Linux Phones which may become more mainstream in 2023 with their features and price.**
+
+Android and iOS smartphones are the most popular ones around the world. However, many of you look for something more “open” and better at privacy. If you use Android, you forfeit your privacy. Apple’s iOS is a little better on that – but again – it’s a “walled garden”.
+
+That’s why Linux phones are becoming popular nowadays because they contain many options for developers and end users. Although various types of Linux phones are currently available, it still becomes confusing to choose the best one. Looking at the trends of 2022, here are some of the Linux Phones which may become more mainstream in 2023.
+
+### Things you should know about Linux Phones
+
+Before you read or even plan to buy one, there are a couple of things you should know about. Here are some of them:
+
+- The Linux phones use a modified version of mainstream Linux distribution with a mobile-friendly desktop environment. This is the same for most of the phones available today.
+- You must manage your expectations if you plan to buy a phone and use it for your daily driver. Because the Linux phone operating systems, device features, and app ecosystem is still in the early stages, and it’s not close to the Android or iOS ecosystem,
+- However, Linux phones with the operating system provide the best privacy feature, which might be the reason you can make a move.
+
+### Best Linux Phones
+
+#### Librem from Purism
+
+The Librem 5 – Purism is quite a famous brand in the Linux phone market. The Librem 5 model comes with PureOS, an OS designed for Linux Mobiles and not based on the android or iOS platform. It is a natively designed free and open-source OS. PureOS also supports convergence. That means you can plug your phone into a monitor via a USB hub and use it as a desktop OS.
+
+The phone has premium hardware and feels and focuses on security and privacy. However, this impressive smartphone comes with a little higher price tag of $1299.
+
+#### Key features & specification
+
+- Fully free and open-source Linux-based mobile operating system: PureOS
+- Separate modem, Wi-Fi and Bluetooth chip
+- Three dedicated hardware keys to enable and disable – internet, camera, Wi-Fi and Bluetooth
+- Smart card reader
+- SD card reader
+- User-replaceable battery
+
+![Librem 5][1]
+
+| Specification | Description |
+| :- | :- |
+| **Screen** | 5.7″ (IPS TFT 720×1440) |
+| **RAM** | 3 GB |
+| **Storage** | 32 GB eMMC |
+| **Battery** | 4500mAh |
+| **CPU** | NXP i.MX 8M QUAD CORE Cortex-A53 with 64 bit ARM @max 1.5GHz |
+| **GPU** | Vivante GC7000 Lite |
+| **Screen** | 5.7Inches IPS TFT 720×1440 |
+| **Camera** | 13 Mpx with LED Flash (Rear) and 8 Mpx (Front) |
+| **USB** | USB Type C |
+
+[Official page for buying options of Librem 5][2]
+
+#### Pinephone
+
+Second on the list is Pinephone, perhaps the most complete and usable Linux phone in the market. Developed by Pine64, it has excellent features and supports multiple Linux ARM distributions for mobile phones.
+
+In addition, PinePhone comes in multiple versions, including a pro version, simultaneously. It is an excellent option for Linux phones as it is also cheaper. PinePhone focuses on the user’s privacy and extensibility and can be a good option if you want to start the first time with Linux phones.
+
+#### Key features & specification
+
+- Supports KDE Plasma mobile, Manjaro mobile, Sailfish OS, and Ubuntu touch
+- It comes with five kill switches for LTE, Cameras, Wifi/BT, and Microphones
+- Bootable microSD and 16GB/32GB eMMC
+- USB Type C (Power, Data and Video Out)
+- Six pogo pins allow custom hardware extensions such as a thermal camera, wireless charging, NFC, an extended battery case, or a keyboard case.
+- 3.5 headphone jack
+- Supports convergence to extend it as a PC
+- Affordable price with starting $149 and $199
+
+![Pinephone][3]
+
+| Specification | Description |
+| :- | :- |
+| **Screen** | 5.95 Inches, HD IPS capacitive touchscreen |
+| **CPU** | Allwinner A64 ARM QUAD Core Cortex-A53 and 64bit |
+| **GPU** | Mali-400 MP2 |
+| **RAM** | Two Variants: 2GB and 3GB LPDDR3 SDRAM |
+| **Storage** | Two Variants: 16GB and 32GB eMMC. |
+| **Camera** | Single 5MP, 1/4″, LED Flash (Rear) and Single 2MP, f/2.8, 1/5″ (Front) |
+| **Battery** | Li-ion (capacity 2800mAh) |
+| **Audio Jack** | 3.5 mm |
+
+[Pinephone buying options][4]
+
+#### Pro 1 X – F(X)tec
+
+[Pro 1 X – F(X)tec][5] is a smartphone that offers various options for operating systems. And it’s arguably the more exciting product in this Linux phone list.
+
+You can use LineageOS, Android, Ubuntu Touch, etc., on the same phone. Moreover, an inbuilt slide-out keyboard makes it more unique and attractive.
+
+Developed by F(x)tec company in London, its new in the market and shows promise. However, it’s not yet out, with planned shipping on December 2022. Hence, you may need to wait a few days for a review.
+
+![Pro 1 X][6]
+
+#### Key features
+
+- First Linux-based smartphone startup with a sliding QUERTY keyboard
+- Supports Ubuntu touch out of the box with an Android option
+- Unlocked bootloader
+- 3.5 headphone jack
+- AMOLED display
+- 128GB/6GB (storage and RAM) starting price $829
+- 256GB/8GB (storage and RAM) starting price $899
+
+| Specification | Description |
+| :- | :- |
+| **CPU** | Snapdragon 662 Qualcomm |
+| **GPU** | Adreno 610 Qualcomm |
+| **RAM** | Two Variants: 6GB and 8GB LPDDR4 |
+| **Storage** | 128GB (expandable up to 2TB) |
+| **Screen** | 5.99″ with curved edge Corning® Gorilla® Glass 3 ( 2160 x 1080 FHD AMOLED Display) |
+| **Camera** | 12MP Sony IMX363 (Rear) and 8MP (Front) |
+| **Battery** | 3200 mAh |
+| **Audio Jack** | 3.5 mm |
+
+[pro 1 x buying options][5]
+
+#### Volla Phone
+
+[Volla Phone][7] can operate simultaneously with two operating systems: Ubuntu Touch and VollaOS. Moreover, VollaOS is a modified android that is google-free and simultaneously focuses on the user’s privacy. At the same time, Ubuntu Touch is a popular Linux phone distro.
+
+#### Key features & specifications
+
+- Free from Google and services
+- No cloud dependency
+- Encrypted device storage
+- Modified Android OS: Volla OS
+- Supports Ubuntu Touch, Manjaro, Sailfish OS
+- USB C charging
+- 3.5 headphone jack
+- Fingerprint log in
+- Offline maps
+
+![Volla Phone][8]
+
+| Specification | Description |
+| :- | :- |
+| **CPU** | MediaTek Helio P23 |
+| **GPU** | ARM Mali-G71 MP2 |
+| **Storage** | 64 GB, eMMC |
+| **RAM** | 4 GB DDR3 RAM |
+| **Screen** | 6.3Inches, IPS, 2340×1080 Pixels |
+| **Camera** | 16MP with Flash (Rear) and 16MP (Front) |
+| **Battery** | 4700 mAh |
+| **USB** | Type C & 3.5mm Audio Jack |
+
+[Volla Phone buying options][9]
+
+#### Fairphone 4
+
+It comes with PostmarketOS; [Fairphone 4][10] is another smartphone that has modular hardware. You can replace its battery effortlessly. Moreover, not just the battery, you can also replace its display, etc., just with a screwdriver.
+
+Fairphone is another Linux phone which comes with modular hardware. It supports PostmarketOS and uses a modified version of Android: FairPhone OS. The primary selling point of this device is its modularity, where you can replace any part of the mobile phone. That includes the display, battery and other components of this device.
+
+#### Specifications
+
+| Specification | Description |
+| :- | :- |
+| **CPU** | Octa-Core Kryo 570 |
+| **RAM** | Two variants: 6GB and 8GB |
+| **Storage** | Two variants: 128GB or 256GB |
+| **GPU** | Adreno 619 |
+| **Screen** | 6.3 inch Full HD+ IPS |
+| **Camera** | Dual 48MP (Rear) and 25MP (Front) |
+| **Battery** | 3905 mAh Li-ion |
+| **Chipset** | Qualcomm SM7225 Snapdragon 750G |
+
+[FairPhone buying options][11]
+
+#### Are there any mainstream Android phones that support Linux OS?
+
+If you don’t want to buy an off-the-shelf mobile phone as listed above, then you can continue using Linux mobile OS in older branded phones because Android is a modified Linux Kernel-based. Hence these devices should work with Ubuntu Touch or PostmarketOS.
+
+- Google Pixel 3a/3a XL
+- Sony Xperia X (F5121 & F5122)
+- Google Nexus 5
+- OnePlus One
+
+- Supported by Ubuntu Touch OS ([full list][12])
+
+- Xiaomi Redmi 2
+- Xiaomi Mi Note 2
+- OnePlus GT
+- OnePlus 6
+
+- Supported by PostmarketOS ([full list][13])
+
+### Closing notes
+
+So, that’s about the best Linux phones available in the market today and will continue in 2023. You can learn more about the above devices from the official website. However, I believe there will be more adoption of Linux phones in the coming days as Privacy becomes a myth every day.
+
+It’s true that to compete with Android and iOS, the device or OS is not sufficient. What is important is the standard, global availability for buying, low entry-level pricing in emerging markets and investment in the app ecosystem. A streamlined vision is required in the phone ecosystem to win. Without it, Linux phones will become more fragmented, as in desktops. The device makers and major FOSS players need to work together to make it successful.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/best-linux-phones/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2022/12/Librem-5-image2.jpg
+[2]: https://puri.sm/products/librem-5/
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pinephone.jpg
+[4]: https://pine64.com/product-category/pinephone
+[5]: https://www.fxtec.com/pro1x
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pro-1-X.jpg
+[7]: https://volla.online/de/index.html
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/Volla-Phone.jpg
+[9]: https://volla.online/de/shop/
+[10]: https://shop.fairphone.com/en/buy-fairphone-4
+[11]: https://shop.fairphone.com/
+[12]: https://devices.ubuntu-touch.io/
+[13]: https://wiki.postmarketos.org/wiki/Devices
From 948514ed28eaab53ca44d2bfd3ac59ff81cd78e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 22:46:50 +0800
Subject: [PATCH 020/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221212.5=20=E2=AD=90=EF=B8=8F=20FreeBSD=2012.4=20is?=
=?UTF-8?q?=20out=20with=20100+=20improvements=20and=20fixes.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...2.4 is out with 100+ improvements and fixes.md | 69 +++++++++++++++++++
1 file changed, 69 insertions(+)
create mode 100644 sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md
diff --git a/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md b/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md
new file mode 100644
index 0000000000..85f90890c8
--- /dev/null
+++ b/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md
@@ -0,0 +1,69 @@
+[#]: subject: "FreeBSD 12.4 is out with 100+ improvements and fixes"
+[#]: via: "https://debugpointnews.com/freebsd-12-4/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+FreeBSD 12.4 is out with 100+ improvements and fixes
+======
+
+![][1]
+
+**FreeBSD 12.4 was released a few days back with several updates and improvements. Here’s a release roundup.**
+
+FreeBSD is a UNIX-like operating system based on [U.C. Berkley’s BSD-Lite version][2]. It is primarily used for core infra systems, routers, networking devices, and possibly running in millions of devices. FreeBSD bundles thousands of packages from desktop apps to core modules, making it easier to build your system running this awesome operating system.
+
+### FreeBSD 12.4 Release: Key updates
+
+FreeBSD 12.4 is the 5th release of the current 12 stable series and coming up after a year’s package updates, improvements and bug fixes.
+
+Key changes in the release include the OpenSSL version being updated to 1.1.1q, whereas OpenSSH is bumped up to 9.1p1. The LLVM toolchain suite was also upgraded to 13.0.0. Other key version upgrades include `ena` kernel driver 2.6.1, `file` 5.43, `libarchieve` 3.6.0 and `dma` 2022-01-27.
+
+![FreeBSD 12.4 with Xfce desktop][3]
+
+Furthermore, this release now allows multiple cores to process traffic to improve performance by `if_repair` driver. Also, the `tcpdump` command now allows users to set several rules which will be exposed as part of the `pflog` header.
+
+On top of that, the `telnetd` daemon is deprecated in this version which should be noted for network professionals.
+
+The total number of changes and fixes exceeds 100+, which you can read in detail in the [change log][4].
+
+### Download and Upgrade
+
+If you are running FreeBSD 12.3 version, you can upgrade your system by issuing the following commands:
+
+```
+freebsd-update -r 12.4-RELEASE upgrade
+```
+
+```
+freebsd-update install
+```
+
+For a fresh download, you can get the ISO image from the following page.
+
+[Download FreeBSD 12.4-RELEASE][5]
+
+Via [announcements][6] & [change log][4].
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/freebsd-12-4/
+
+作者:[arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2022/12/bsd-generic-head.jpg
+[2]: https://www.debugpoint.com/unix-history/
+[3]: https://debugpointnews.com/wp-content/uploads/2022/12/FreeBSD-12.4-with-Xfce-desktop.jpg
+[4]: https://www.freebsd.org/releases/12.4R/relnotes/
+[5]: https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.4/
+[6]: https://www.freebsd.org/releases/12.4R/announce/
From 8143887efad84c2287e4a2d92fee2ea997a22e43 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 22:47:43 +0800
Subject: [PATCH 021/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221213.0=20=E2=AD=90=EF=B8=8F=20Puppy=20Linux=2022.1?=
=?UTF-8?q?2=20(S15Pup)=20Arrives=20Based=20on=20Slackware=2015.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...2.12 (S15Pup) Arrives Based on Slackware 15.md | 82 +++++++++++++++++++
1 file changed, 82 insertions(+)
create mode 100644 sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md
diff --git a/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md b/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md
new file mode 100644
index 0000000000..980ad2ec0a
--- /dev/null
+++ b/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md
@@ -0,0 +1,82 @@
+[#]: subject: "Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15"
+[#]: via: "https://debugpointnews.com/puppy-linux-22-12-s15pup/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15
+======
+
+![][1]
+
+**A new Puppy Linux flavour (Puppy Linux 22.12 S15Pup) is now available based on Slackware 15.**
+
+Puppy Linux is a super lightweight distro which runs entirely on RAM and requires a very low memory footprint. It is almost loaded with all the necessary applications for everything you need. It is quite remarkable that the Puppy Linux team managed to package all these applications, which run in low memory and surprisingly within 400 MB of ISO size. There are many variants of Puppy Linux based on Ubuntu and other distros – thanks to the fantastic Puppy Builder Woof-CE.
+
+### Puppy Linux 22.12 (s15pup): What’s New
+
+The recent release of Puppy Linux 22.12 is based on the Slackware 15.0 components, which were released in February 2022. At its core, the JWM (Joe’s Window Manager) provides flexibility and good performance in Puppy Linux because it runs off the RAM.
+
+![Puppy Linux 22.12 based on Slackware 15][2]
+
+Based on Slackware, Puppy 22.12 comes with Linux Kernel LTS series 5.15 for the 64-bit. And the 5.10 for the 32-bit system. The desktop feel is the same as other Puppy flavours based on the JWM 2.4.3. The JWM is used in other distro-based Puppy flavours as well.
+
+In addition, FFmpeg is loaded with Mplayer for your media playing needs – if at all required in a LIVE system. Also, the “Light” web browser, based on Firefox, gives you easy and performant access to the internet. Alternative browser installation options are also present.
+
+Furthermore, Puppy Linux 22.12 s15pup pre-loads most of the LXDE apps and components for the overall lightweight experience, such as Lxrandr 0.3.2, Lxtask 0.1.10 and Lxterminal 0.4.0.
+
+ISO of this Slackware flavour is less than 400 MB in size, and, amazingly, all of the following applications are pre-loaded on it. Here’s a summary of the key packages in this version:
+
+| Abiword 3.0.1 | Gparted 1.3.1 | Parcellite 1.2.1 |
+| Bash 5.1.016 | Grep 3.7 | Rox-filer 17w |
+| Busybox 1.35.0 | Gtk+2 2.24.33 | Samba 4.12.15 |
+| Cups 2.4.2 | Gtk+3 3.24.31 | Sed 4.8 |
+| Curl 7.86.0 | Gtkdialog 0.8.5a | Sylpheed 3.7.0 |
+| Dhcpcd 9.4.1 | Icu4c 69.1 | Syslinux 4.07 |
+| Didiwiki 0.8 | Jwm 2.4.3 | Transmission 2.60 |
+| Evince 2.32.0 | Lxrandr 0.3.2 | Util-linux 2.37.4 |
+| Ffmpeg 4.4.3 | Lxtask 0.1.10 | Viewnior 1.7 |
+| Gcc 11.2.0 | Lxterminal 0.4.0 | Xdelta 30.16 |
+| Geany 1.35 | Mesa 21.3.5 | Xsane 0.999 |
+| Ghostscript 9.55.0 | MPlayer 1.4 |
+| Glib2 2.70.3 | Mtpaint 3.50.09 |
+| Glibc 2.33 | Ncurses 6.3 |
+| Gnumeric 1.10.17 | Openssl 1.1.1s |
+
+### Download
+
+Puppy Linux is one of those few distros which still provides a 32-bit installation file alongside 64-bit. You can download this version from the following links for the respective architectures.
+
+- [S15Pup 64-bit – based on Slackware 15.0][3]
+- [S15Pup 32-bit – based on Slackware 15.0][4]
+- [ScPup 64-bit – based on Slackware current][5]
+- [ScPup 32-bit – based on Slackware current][6]
+
+If you are running it on a virtual machine, make sure to change the CPU architecture to 64-bit before installing it.
+
+_Via [release announcement][7] & [release notes][8]_
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/puppy-linux-22-12-s15pup/
+
+作者:[arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2022/12/pups15head.jpg
+[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Puppy-Linux-22.12-based-on-Slackware-15.jpg
+[3]: https://sourceforge.net/projects/spup/files/S15Pup64/
+[4]: https://sourceforge.net/projects/spup/files/S15Pup32/
+[5]: https://sourceforge.net/projects/spup/files/ScPup64/
+[6]: https://sourceforge.net/projects/spup/files/ScPup/
+[7]: https://forum.puppylinux.com/viewtopic.php?t=7464&sid=5ee2c343a8dbc0babc476139d188c50f
+[8]: http://distro.ibiblio.org/puppylinux/puppy-s15pup/release-S15Pup-22.12.htm
From 038fd1d15b4928fc80c9d4c54bb464cde1053645 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 22:50:34 +0800
Subject: [PATCH 022/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221213.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?=
=?UTF-8?q?=E2=AD=90=EF=B8=8F=20Battle=20of=20the=20Texts=20and=20the=20Un?=
=?UTF-8?q?icode=20Savior.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...⭐️ Battle of the Texts and the Unicode Savior.md | 256 ++++++++++++++++++
1 file changed, 256 insertions(+)
create mode 100644 sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md
diff --git a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md
new file mode 100644
index 0000000000..4f5c63be1e
--- /dev/null
+++ b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md
@@ -0,0 +1,256 @@
+[#]: subject: "Battle of the Texts and the Unicode Savior"
+[#]: via: "https://itsfoss.com/unicode-linux/"
+[#]: author: "Sylvain Leroux https://www.yesik.it/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Battle of the Texts and the Unicode Savior
+======
+
+We all know how to type text on the keyboard. Don’t we?
+
+So, may I challenge you to type that text in your favorite text editor:
+
+![«Ayumi moved to Tokyo in 1993 to pursue her career» said Dmitrii][1]
+
+This text is challenging to type since it contains:
+
+- typographical signs not directly available on the keyboard,
+- hiragana Japanese characters,
+- the name of the Japanese capital written with a macron on top of the two letters “o” to comply with the Hepburn romanization standard,
+- and finally, the first name Dmitrii written using the Cyrillic alphabet.
+
+No doubt, writing such a sentence on early computers would have been simply impossible. Because computers used limited character sets, unable to let coexist several writing systems. But today such limitations are lifted as we will see in this article.
+
+### How do computers store text?
+
+Computers stores characters as numbers. And they use tables to map those numbers to the glyph used to represent them.
+
+For a long time, computers stored each character as a number between 0 and 255 (which fits exactly one byte). But that was far from being sufficient to represent the whole set of characters used in human writing. So, the trick was to use a different correspondence table depending on where in the world you lived.
+
+Here is the [ISO 8859-15][2] correspondence table commonly used in France:
+
+![The ISO 8859-15 encoding][3]
+
+But if you lived in Russia, your computer would have probably used the [KOI8-R][4] or [Windows-1251][5] encoding instead. Let’s assume that later was used:
+
+![The Windows-1251 encoding is a popular choice to store text written using the Cyrillic alphabets][6]
+
+For numbers lower than 128, the two tables are identical. This range is corresponding to the [US-ASCII][7] standard, some kind of minimum-compatible set between characters tables. But beyond 128, the two tables are completely different.
+
+For example, according to Windows-1251, the string _“said Дмитрий”_ is stored as:
+
+```
+115 97 105 100 32 196 236 232 242 240 232 233
+```
+
+To follow a common practice in computer sciences, those twelve numbers can be rewritten using the more compact hexadecimal notation:
+
+```
+73 61 69 64 20 c4 ec e8 f2 f0 e8 e9
+```
+
+If Dmitrii sends me that file, and I open it I might end up seeing that:
+
+```
+said Äìèòðèé
+```
+
+The file _appears_ to be corrupted. But it isn’t. The data— that is the _numbers_–stored in that file don’t have changed. As I live in France, my computer has _assumed_ the file to be encoded as ISO8859-15. And it displayed the characters _of that table_ corresponding to the data. And not the character of the encoding table used when the text was originally written.
+
+To give you an example, take the character Д. It has the numeric code 196 (c4) according to Windows-1251. The only thing stored in the file is the number 196. But that same number corresponds to Ä according to ISO8859-15. So my computer wrongly believed it was the glyph intended to be displayed.
+
+![When the same text file is written then read again but using a different encoding][8]
+
+As a side note, you can still occasionally see an illustration of those issues on ill-configured websites or in email send by [mail user agents][9] making false assumptions about the character encoding used on the recipient’s computer. Such glitches are sometimes nicknamed [mojibake][10]. Hopefully, this is less and less frequent today.
+
+![Example of Mojibake on the website of a French movie distributor. The website name has been changed to preserve the innocent.][11]
+
+### Unicode comes to save to the day
+
+I explained encoding issues when exchanging files between different countries. But things were even worst since the encodings used by different manufacturers for the same country were not always the same. You can understand what I mean if you had to exchange files between Mac and PC in the 80s.
+
+Is it a coincidence or not, the [Unicode][12] project started in 1987, led by people of Xerox and … Apple.
+
+The goal of the project was to define a universal character set allowing to _simultaneously_ use any character used in human writing within the same text. The original Unicode project was limited to 65536 different characters (each character being represented using 16 bits— that is two bytes per character). A number that has proven to be insufficient.
+
+So, in 1996 Unicode has been extended to support up to 1 million different [code points][13]. Roughly speaking, a “code point” a number that identifies an entry in the Unicode character table. And one core job of the Unicode project is to make an inventory of all letters, symbols, punctuation marks and other characters that are (or were) used worldwide, and to assign to each of them a code point that will uniquely identify that character.
+
+This is a huge project: to give you some idea, the version 10 of Unicode, published in 2017, defines over 136,000 characters covering 139 modern and historic scripts.
+
+With such a large number of possibilities, a basic encoding would require 32 bits (that is 4 bytes) per character. But for text using mainly the characters in the US-ASCII range, 4 bytes per character means 4 times more storage required to save the data and 4 times more bandwidth to transmit them.
+
+![Encoding text as UTF-32 requires 4 bytes per character][14]
+
+So besides the [UTF-32][15] encoding, the Unicode consortium defined the more space-efficient [UTF-16][16] and [UTF-8][17] encodings, using respectively 16 and 8 bits. But how to store over 100,000 different values in only 8 bits? Well, you can’t. But the trick is to use one code value (8 bits in UTF-8, 16 in UTF-16) to store the most frequently used characters. And to use several code values for the least commonly used characters. So UTF-8 and UTF-16 are _variable length_ encoding. Even if this has drawbacks, UTF-8 is a good compromise between space and time efficiency. Not mentioning being backward compatible with most 1-byte pre-Unicode encoding, since UTF-8 was specifically designed so any valid US-ASCII file is also a valid UTF-8 file. In a sense, UTF-8 is a superset of US-ASCII. And today, there is no reason for not using the UTF-8 encoding. Unless of course if you write mostly with languages requiring multi-byte encodings or if you have to deal with legacy systems.
+
+I let you compare the UTF-16 and UTF-8 encoding of the same string on the illustrations below. Pay special attention to the UTF-8 encoding using one byte to store the characters of the Latin alphabet. But using two bytes to store characters of the Cyrillic alphabet. That is twice more space than when storing the same characters using the Windows-1251 Cyrillic encoding.
+
+![UTF-16 is a variable length encoding requiring 2 bytes to encode most characters. Some character still requires 4 bytes though (for example][18]
+
+![UTF-8 is a variable length encoding requiring 1, 2, 3 or 4 bytes per character][19]
+
+### And how does that help for typing text?
+
+Well… It doesn’t hurt to have some knowledge of the underlying mechanism to understand the capabilities and limitations of your computer. Especially we will talk about Unicode and hexadecimal a little later. But for now… a little bit more history. Just a little bit, I promise…
+
+… just enough to say starting in the 80s, computer keyboard used to have a [compose key][20] (sometimes labeled the “multi” key) next to the shift key. By pressing that key, you entered in “compose” mode. And once in that mode, you were able to enter characters not directly available on your keyboard by entering mnemonics instead. For example, in compose mode, typing RO produced the ® character (which is easy to remember as an R inside an O).
+
+![compose key on lk201 keyboard][21]
+
+It is now a rarity to see the compose key on modern keyboards. Probably because of the domination of PCs that don’t make use of it. But on Linux (and possibly on other systems?) you can emulate the compose key. This is something that can be configured in the GUI on many desktop environments using the “keyboard” control panel: But the exact procedure varies depending on your desktop environment or even depending its version. If you changed that setting, don’t hesitate to use the comment section to share the specific steps you’ve followed on your computer.
+
+As for myself, for now, I will assume you use the default Shift+AltGr combination to emulate the compose key.
+
+So, as a practical example, to enter the LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, you can type Shift+AltGr<< (you don’t have to maintain Shift+AltGr pressed when entering the mnemonic). If you managed to do that, I think you should be able to guess by yourself how to enter the _RIGHT-POINTING_ DOUBLE ANGLE QUOTATION MARK.
+
+As another example, try Shift+AltGr--- to produce an EM DASH. For that to work, you have to press the [hyphen-minus][22] key on the main keyboard, not the one you will find on your numeric keypad.
+
+Worth mentioning the “compose” key works in a non-GUI environment too. But depending if you use you use X11 or a text-only console, the supported compose key sequence are not the same.
+
+On the console, you can check the list of supported compose key by using the `dumpkeys` command:
+
+```
+dumpkeys --compose-only
+```
+
+On the GUI, compose key is implemented at Gtk/X11 level. For a list of all mnemonics supported by the Gtk, take a look at that page: [https://help.ubuntu.com/community/GtkComposeTable][23]
+
+### Is there a way to avoid relying on Gtk for character composition?
+
+Maybe I’m a purist, but I found somewhat unfortunate the compose key support being hard-coded in Gtk. After all, not all GUI applications are using that library. And I cannot add my own mnemonics without re-compiling the Gtk.
+
+Hopefully, there is support for character composition at X11-level too. Formerly, through the venerable [X Input Method (XIM)][24].
+
+This will work at lower-level than Gtk-based character composition. But will allow a great amount of flexibility. And will work with many X11 applications.
+
+For example, let’s imagine I just want to add the --> composition to enter the → character (U+2192 RIGHTWARDS ARROW), I would create a `~/.XCompose` file containing those lines:
+
+```
+cat > ~/.XCompose << EOT
+# Load default compose table for the current local
+include "%L"
+
+# Custom definitions
+ : U2192 # RIGHTWARDS ARROW
+EOT
+```
+
+Then you can test by starting a new X11 application, forcing libraries to use XIM as input method:
+
+```
+GTK_IM_MODULE="xim" QT_IM_MODULE="xim" xterm
+```
+
+The new compose sequence should be available in the application you launched. I encourage you to learn more about the compose file format by typing `man 5 compose`.
+
+To make XIM the default input method for all your applications, just add to your `~/.profile` file the following two lines. that change will be effective the next time you’ll open a session on your computer:
+
+```
+export GTK_IM_MODULE="xim"
+export QT_IM_MODULE="xim"
+```
+
+It’s pretty cool, isn’t it? That way you can add all the compose sequences you might want. And there are already a couple of funny ones in the default XIM settings. Try for example to press composeLLAP.
+
+Well, I must mention two drawbacks though. XIM is relatively old and is probably only suitable for those of us who don’t regularly need multi-bytes input methods. Second, when using XIM as your input method, you no longer can enter Unicode characters by their code point using the Ctrl+Shift+u sequence. What? Wait a minute? I didn’t talk about that yet? So let’s do it now:
+
+### What if there is no compose key sequence for the character I need?
+
+The compose key is a nice tool to type some characters not available on the keyboard. But the default set of combinations is limited, and switching to XIM and defining a new compose sequence for a character you will need only once in a lifetime can be cumbersome.
+
+Does that prevent you to mix Japanese, Latin and Cyrillic characters in the same text? Certainly not, thanks to Unicode. For example, the name あゆみ is made of:
+
+- the [HIRAGANA LETTER A (U+3042)][25]
+- the [HIRAGANA LETTER YU (U+3086)][26]
+- and the [HIRAGANA LETTER MI (U+307F)][27]
+
+I mentioned above the official Unicode character names, following the convention to write them in all upper cases. After their name, you will find their Unicode code point, written between parenthesis, as a 16-bit hexadecimal number. Does that remind you something?
+
+Anyway, once you know the code point of a character, you can enter it using the following combination:
+
+- Ctrl+Shift+u, then XXXX (the _hexadecimal_ code point of the character you want) and finally Enter.
+
+As a shorthand, if you don’t release Ctrl+Shift while entering the code point, you won’t have to press Enter.
+
+Unfortunately, that feature is implemented at software library level rather than at X11 level. So the support may be variable among different applications. In LibreOffice, for example, you have to type the code point using the main keyboard. Whereas Gtk-based application will accept entry from the numeric keypad as well.
+
+Finally, when working at the console on my Debian system, there is a similar feature, but requiring instead to press Alt+XXXXX where XXXXX is the code point of the character you want, but written in _decimal_ this time. I wonder if this is Debian-specific or related to the fact I’m using the en_US.UTF-8 locale. If you have more information about that, I would be curious to read you in the comment section!
+
+GUIConsoleCharacter |
+| Ctrl+Shift+u3042Enter | Alt+12354 | あ |
+| Ctrl+Shift+u3086Enter | Alt+12422 | ゆ |
+| Ctrl+Shift+u307FEnter | Alt+12415 | み |
+
+### Dead keys
+
+Last but not least, there is a simpler method to enter key combinations that do not rely (necessarily) on the compose key.
+
+Some keys on your keyboard were specifically designed to create a combination of characters. Those are called [dead keys][28]. Because when you press them once, nothing seems to happen. But they will silently modify the character produced by the next key you will press. This is a behavior inspired from mechanical typewriter: with them, pressing a dead key imprinted a character, but will not move the carriage. So the next keystroke will imprint another character at the same position. Visually resulting in a combination of the two pressed keys.
+
+We use that a lot in French. For example, to enter the letter “ë” I have to press the ¨ dead key followed by the e key. Similarly, Spanish people have the ~ dead key on their keyboard. And on the keyboard layout for Nordic languages, you can find the ° key. And I could continue that list for a very long time.
+
+![hungary dead keys][29]
+
+Obviously, not all dead keys are available on all keyboard. I fact, most dead keys are NOT available on your keyboard. For example, I assume very few of you— if any— have a dead key ¯ to enter the macron (“flat accent”) used to write Tōkyō.
+
+For those dead keys that are not directly available on your keyboard, you need to resort to other solutions. The good news is we’ve already used those techniques. But this time we will use them to emulate dead keys. Not “ordinary” keys.
+
+So, a first option could be to generate the macron dead key by using Compose- (the hyphen-minus key available on your keyboard). Nothing appears. But if after that you press the o key it will finally produce “ō”.
+
+The list of dead keys that Gtk can produce using the compose mode can be found [here][30].
+
+A different solution would use the Unicode COMBINING MACRON (U+0304) character. Followed by the letter o. I will leave the details up to you. But if you’re curious, you may discover this leads to a very subtlely different result, rather than really producing a LATIN SMALL LETTER O WITH MACRON. And if I wrote the end of the previous sentence in all uppercase, this is a hint guiding you toward a method to enter ō with fewer keystrokes than by using a Unicode combining character… But I let that to your sagacity.
+
+### Your turn to practice!
+
+So, did you get it all? Does that work on your computer? It’s your turn to try that: using the clues given above, and a little bit of practice, now you can enter the text of the challenge given in the beginning of this article. Do it, then copy-paste your text in the comment section below as proof of your success.
+
+There is nothing to win, except maybe the satisfaction of impressing your peers!
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/unicode-linux/
+
+作者:[Sylvain Leroux][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.yesik.it/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/wp-content/uploads/2017/10//text-challenge.png
+[2]: https://en.wikipedia.org/wiki/ISO/IEC_8859-15
+[3]: https://itsfoss.com/wp-content/uploads/2017/10//ISO_8859-15.png
+[4]: https://en.wikipedia.org/wiki/KOI8-R
+[5]: https://en.wikipedia.org/wiki/Windows-1251
+[6]: https://itsfoss.com/wp-content/uploads/2017/10//Windows-1251.png
+[7]: https://en.wikipedia.org/wiki/ASCII
+[8]: https://itsfoss.com/wp-content/uploads/2017/10//windows-1251-to-iso8859-15-encoding-decoding-error-example.png
+[9]: https://en.wikipedia.org/wiki/Email_client
+[10]: https://en.wikipedia.org/wiki/Mojibake
+[11]: https://itsfoss.com/wp-content/uploads/2017/10/Mojibake-french-example.png
+[12]: https://en.wikipedia.org/wiki/Unicode
+[13]: https://en.wikipedia.org/wiki/Code_point
+[14]: https://itsfoss.com/wp-content/uploads/2017/10//unicode-utf-32-encoding-example.png
+[15]: https://en.wikipedia.org/wiki/UTF-32
+[16]: https://en.wikipedia.org/wiki/UTF-16
+[17]: https://en.wikipedia.org/wiki/UTF-8
+[18]: https://itsfoss.com/wp-content/uploads/2017/10//unicode-utf-16-encoding-example.png
+[19]: https://itsfoss.com/wp-content/uploads/2017/10//unicode-utf-8-encoding-example.png
+[20]: https://en.wikipedia.org/wiki/Compose_key
+[21]: https://itsfoss.com/wp-content/uploads/2022/12/compose_key_on_lk201_keyboard.jpg
+[22]: https://en.wikipedia.org/wiki/Hyphen-minus
+[23]: https://help.ubuntu.com/community/GtkComposeTable
+[24]: https://en.wikipedia.org/wiki/X_Input_Method
+[25]: http://www.fileformat.info/info/unicode/char/3042/index.htm
+[26]: http://www.fileformat.info/info/unicode/char/3086/index.htm
+[27]: http://www.fileformat.info/info/unicode/char/307F/index.htm
+[28]: https://en.wikipedia.org/wiki/Dead_key
+[29]: https://itsfoss.com/wp-content/uploads/2022/12/hungary_dead_keys.png
+[30]: https://help.ubuntu.com/community/GtkDeadKeyTable
From 0f603275352f0f17b17cec1e46c2f1c80efe4e03 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 22:52:43 +0800
Subject: [PATCH 023/266] =?UTF-8?q?Update=2020221213.1=20=E2=AD=90?=
=?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Battle=20of=20t?=
=?UTF-8?q?he=20Texts=20and=20the=20Unicode=20Savior.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...1213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md
index 4f5c63be1e..529dffde10 100644
--- a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md
+++ b/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md
@@ -180,7 +180,8 @@ Unfortunately, that feature is implemented at software library level rather than
Finally, when working at the console on my Debian system, there is a similar feature, but requiring instead to press Alt+XXXXX where XXXXX is the code point of the character you want, but written in _decimal_ this time. I wonder if this is Debian-specific or related to the fact I’m using the en_US.UTF-8 locale. If you have more information about that, I would be curious to read you in the comment section!
-GUIConsoleCharacter |
+| GUI | Console | Character |
+| :- | :- | :- |
| Ctrl+Shift+u3042Enter | Alt+12354 | あ |
| Ctrl+Shift+u3086Enter | Alt+12422 | ゆ |
| Ctrl+Shift+u307FEnter | Alt+12415 | み |
From 738946292d165ba931b4ee270c764abcd5f1297b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 22:54:16 +0800
Subject: [PATCH 024/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221213.2=20=E2=AD=90=EF=B8=8F=20Get=20ready=20to=20u?=
=?UTF-8?q?pgrade=20your=20video=20creation=20with=20Kdenlive=2022.12.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ade your video creation with Kdenlive 22.12.md | 88 +++++++++++++++++++
1 file changed, 88 insertions(+)
create mode 100644 sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md
diff --git a/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md b/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md
new file mode 100644
index 0000000000..c7477abc73
--- /dev/null
+++ b/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md
@@ -0,0 +1,88 @@
+[#]: subject: "Get ready to upgrade your video creation with Kdenlive 22.12"
+[#]: via: "https://debugpointnews.com/kdenlive-22-12/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Get ready to upgrade your video creation with Kdenlive 22.12
+======
+
+![][1]
+
+**Kdenlive 22.12: the free and open-source video editor scores another sizable update.**
+
+The best free and [open-source video editor][2] – Kdenlive 22.12, released with new filters, UI improvements, user-requested features and bug fixes. This release improves Kdenlive on top of its [already existing features][3] and gives you a platform to create professional-quality videos.
+
+Here’s what’s new.
+
+![Kdenlive 22.12 Running in Linux Mint][4]
+
+### Kdenlive 22.12: New Features
+
+A new “Timelines Guides” dock now lists all the timeline markers in your video project. Click on the timeline video clip to view the markers in this new dock. This is an imp[rovement in the marker features introduced in the past release.
+
+In addition to that, three new audio graph filters were introduced. They are audio level visualization filter, spectrum filter and waveform filter. These can be used in keyframe animations for more granular controls. Talking about keyframes, you can now use the standard CTRL+C and CTRL+V to copy/paste keyframes.
+
+Furthermore, if you are working in a complex timeline, you can now remove all the spaces between clips with two new options – remove spaces after playhead and all after playhead.
+
+![Two new UI improvements on timeline][5]
+
+Kdenlive also started work to move to Qt6 from Qt5 build for the upcoming releases. A continuous integration build pipeline is added for Qt6 to check the current build. However, the current version is not yet complete per the transition timeline. However, it is expected that Kdenline will be built with Qt6 as stable by mid of 2023.
+
+On top of the above changes, here are some key updates on this release:
+
+- More custom colour codes for categories
+- Improved marker management with edit, add/remove multiple markers and import/export.
+- Kdenlive now sends the content of the timeline to Glaxnimate (version >= 0.5.1), which then shows it as background.
+- Set maximum cache with custom data storage size
+- Option to hide the menu bar, replacing it with a hamburger menu
+- The settings panel is cleaned up with better visibility and removed obsolete entries
+- Work underway for Qt6 and KDE Frameworks 6 migration
+- Improved Track composition
+
+### Download and upgrade
+
+If you are already running Kdenlive via the official distro repo, you should get this update within a couple of days. Simply update your system to get this version.
+
+Those of you running the Flatpak version, run the following command to get the update.
+
+```
+flatpak update org.kde.kdenlive
+```
+
+For fresh download and installation, visit the following page.
+
+[Download Kdenlive][6]
+
+If you prefer Flatpak, you can install this version from Flathub using the following command, after [setting up your system as Flatpak][7].
+
+```
+flatpak install flathub org.kde.kdenlive
+```
+
+Via [release announcement][8]
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/kdenlive-22-12/
+
+作者:[arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2022/12/kdenlive-head.jpg
+[2]: https://www.debugpoint.com/best-free-video-editors-linux-ubuntu/
+[3]: https://www.debugpoint.com/kdenlive-features/
+[4]: https://debugpointnews.com/wp-content/uploads/2022/12/Kdenlive-22.12-Running-in-Linux-Mint.jpg
+[5]: https://debugpointnews.com/wp-content/uploads/2022/12/Two-new-UI-improvements-on-timeline.jpg
+[6]: https://kdenlive.org/en/download/
+[7]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
+[8]: https://kdenlive.org/en/2022/12/kdenlive-22-12-released/
From 41dedc290267948ab04ca67fcbd180be46fcf157 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 22:55:26 +0800
Subject: [PATCH 025/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221213.3=20=E2=AD=90=EF=B8=8F=20Linux=20Mint=20Upgra?=
=?UTF-8?q?de=20Tool=20Usage=20Guide.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 104 ++++++++++++++++++
1 file changed, 104 insertions(+)
create mode 100644 sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
diff --git a/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
new file mode 100644
index 0000000000..8e3ccb1d82
--- /dev/null
+++ b/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
@@ -0,0 +1,104 @@
+[#]: subject: "Linux Mint Upgrade Tool: Usage Guide"
+[#]: via: "https://www.debugpoint.com/mint-upgrade-tool/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Linux Mint Upgrade Tool: Usage Guide
+======
+
+**Here’s how you can upgrade to new Linux Mint versions using the Mint upgrade tool, i.e. mintupgrade GUI with actual upgrade process screenshots.**
+
+If you are looking for **detailed upgrade** steps to the recently released **Linux Mint 21 Vanessa**, read this guide 👉 [upgrade-linux-mint-21-from-20-3][1]
+
+### Linux Mint Upgrade Tool
+
+The Linux Mint team [announced][2] a few months back, that they built a new utility to upgrade the Linux Mint’s significant versions. It’s called the “mintupgrade2”. Development is complete, and It is currently under the support and planning for upgrading to the major versions—for example, Linux Mint 20 to 21 and not the minor version upgrades.
+
+Although you can upgrade the versions using the standard apt commands, the Mint team believes significant version upgrades are tricky. It would be difficult for the new users to perform a seamless upgrade because it involves the terminal and a set of complex steps with commands.
+
+Moreover, the GUI is a wrapper with additional features to the mintupgrade program, which brings a set of pre-system checks and upgrade processes with a one-click Fix.
+
+In addition, the mintupgrade checks basic checks, whether you are connected to power, the system is up to date, disk space availability and many more features.
+
+To show you how it looks and works, we set up a testbed with LMDE 4 and give it a go.
+
+But before that, here’s a quick set of features:
+
+- Entirely GUI-driven upgrade process
+- Multi-language support
+- Pre-upgrade checks: system backup, power, disk space, list of removed packages
+- Configurable
+- Alert you about the orphaned packages from the prior version
+- It gives you the option to fix issues
+
+### How it works
+
+When we ran the mint upgrade utility via the command `mintupgrade`, the GUI, the friendly welcome screen gives you an excellent starting point and starts the upgrade process. And then, it begins with a series of checks on its own.
+
+![Starting the upgrade process][3]
+
+In addition to that, when it finds some problem in your system, it stops and gives you sufficient details about it. Once you click on Fix, it can resume the process again.
+
+That’s not all; it can resume the upgrade process if interrupted due to network or internet or any other problem.
+
+The utility found the following errors in our test system during our test and fixed them with just one click.
+
+![Apt Cache check][4]
+
+![Mint Upgrade detects that system snapshots not present][5]
+
+![Check for Orphan Packages][6]
+
+![Status before upgrade][7]
+
+![Mint Upgrade can detect the packages require downgrade][8]
+
+Lastly, we successfully upgraded a test system from LMDE 4 to LMDE 5.
+
+![Upgrade Complete][9]
+
+#### How to get this upgrade utility
+
+The installation of the utility is easy using the commands below. However, if you are running the latest version of Linux Mint 21, it should already be installed and try by running mintupgrade from the terminal.
+
+```
+sudo apt update
+```
+
+```
+sudo apt install mintupgrade
+```
+
+### Closing Notes
+
+Finally, I think it’s one of the best utilities by the Linux Mint team. As you can see above, it handled many errors on its own. All I did was click the “Fix” button. And the utility is smart enough to understand all the failure points and take care of the remediations.
+
+[GitHub and source code of mintupgrade][10]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/mint-upgrade-tool/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/upgrade-linux-mint-21-from-20-3/
+[2]: https://www.debugpoint.com/2022/04/linux-mint-21-announcement/
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/Starting-the-upgrade-process.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/Apt-Cache-check.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-detects-that-system-snapshots-not-present.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/04/Check-for-Orphan-Packages.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Status-before-upgrade.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-can-detect-the-packages-require-downgrade.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Upgrade-Complete.jpg
+[10]: https://github.com/linuxmint/mintupgrade
From e987a42b69226bf089cfba03d1845e56ff6eb699 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 22:57:20 +0800
Subject: [PATCH 026/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221213.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Us?=
=?UTF-8?q?e=20Django=20to=20send=20emails=20with=20SMTP.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️⭐️ Use Django to send emails with SMTP.md | 300 ++++++++++++++++++
1 file changed, 300 insertions(+)
create mode 100644 sources/tech/20221213.4 ⭐️⭐️ Use Django to send emails with SMTP.md
diff --git a/sources/tech/20221213.4 ⭐️⭐️ Use Django to send emails with SMTP.md b/sources/tech/20221213.4 ⭐️⭐️ Use Django to send emails with SMTP.md
new file mode 100644
index 0000000000..7e6ab1dc0a
--- /dev/null
+++ b/sources/tech/20221213.4 ⭐️⭐️ Use Django to send emails with SMTP.md
@@ -0,0 +1,300 @@
+[#]: subject: "Use Django to send emails with SMTP"
+[#]: via: "https://opensource.com/article/22/12/django-send-emails-smtp"
+[#]: author: "Sofiia Tarhonska https://opensource.com/users/sofiiatarhonska"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Use Django to send emails with SMTP
+======
+
+Numerous professions utilize simple mail transfer protocol (SMTP) to deliver emails to their end users. SMTP also retrieves messages, though that has not been its primary use case. Open source frameworks like Django, a Python-based web framework, allows more control for sending emails using functions and expressions.
+
+This article shows how to configure an SMTP server and send emails in Django using SMTP.
+
+### Project setup and overview
+
+Before proceeding, this tutorial requires a code editor (such as [VS Code or Codium][1]) on your preferred device.
+
+Start by creating a new directory using the command in the terminal:
+
+```
+mkdir exampledirectory
+```
+
+Then change into the directory using the command:
+
+```
+cd exampledirectory
+```
+
+Within the newly created directory, create a [virtual environment][2] using the built-in venv module in the command terminal:
+
+```
+python -m venv
+```
+
+This command creates a virtual environment within the folder created earlier. To activate it, use the following command in the terminal:
+
+On Linux and Mac:
+
+```
+source .virtenv/bin/activate
+```
+
+On Windows:
+
+```
+\Scripts\activate
+```
+
+### Creating a Django project
+
+After activating the virtual environment, proceed to install the Django package from [pip][3]:
+
+```
+pip install django
+```
+
+Create a new Django project:
+
+```
+python -m django startproject NewEmailProject
+```
+
+This command creates a project with the name `NewEmailProject`. To run the project, head to the project directory (`NewEmailProject`) and run the server:
+
+```
+python manage.py runserver
+```
+
+Open the link for the developmental server in a browser. You see the Django homepage with release notes.
+
+### Configuration for sending emails
+
+Next, open the `settings.py` file (in the `NewEmailProject` folder) to customize configurations for sending emails using Django.
+
+Scroll to the end of the code and update the file with the following code:
+
+```
+EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
+EMAIL_HOST = 'smtp.yourserver.com'
+EMAIL_USE_TLS = False
+EMAIL_PORT = 465
+EMAIL_USE_SSL = True
+EMAIL_HOST_USER = 'your@djangoapp.com'
+EMAIL_HOST_PASSWORD = 'your password'
+```
+
+Change the value of the `EMAIL_HOST` depending on your email client. Here are the acceptable values for common email clients:
+
+- **Gmail:**`smtp.gmail.com`
+- **Outlook:**`smtp-mail.outlook.com`
+- **Yahoo:**`smtp.mail.yahoo.com`
+
+You can change the `EMAIL_PORT` or leave 465 as the default.
+
+You can use the secure socket layer (SSL) and transport socket layer (TSL) interchangeably as they specify connection security.
+
+To figure out other custom configurations for your email server, check out the full [Django Project documentation][4].
+
+### SMTP email backend
+
+The `EMAIL_BACKEND` expression helps determine the most suitable backend when sending emails through the Django SMTP server. This variable points to `smtp.EmailBackend`, which receives all the parameters needed for sending emails. It tells Django to send the email to the recipient email using SMTP and not to the console.
+
+### Sending emails with SMTP
+
+When the environment is set up and `settings.py` is updated, you can send emails in Django. You can use an HTML form that sends a post request of the necessary information needed for sending an email.
+
+Create a Django application for sending emails:
+
+```
+python manage.py startapp mail
+```
+
+Next, open the `settings.py` file and add the Django application (mail) to the `INSTALLED_APPS` list:
+
+```
+INSTALLED_APPS = [
+"django.contrib.admin",
+"django.contrib.auth",
+"django.contrib.contenttypes",
+"django.contrib.sessions",
+"django.contrib.messages",
+"django.contrib.staticfiles",
+"mail"]
+```
+
+### Send mail function
+
+In the mail application's `views.py` file, start by importing the `EmailMessage` and `get_connection` from `django.core.mail`:
+
+```
+from django.core.mail import EmailMessage, get_connection
+```
+
+The `EmailMessage` class is responsible for creating the email message itself. The `get_connection()` function returns an instance of the email backend specified in `EMAIL_BACKEND`.
+
+Now create a function that accepts a `POST` request, which contains form data submitted from the client side. Followed by the `get_connection()` functions parameters containing the email configurations created in the project `settings.py` file.
+
+Next, import the settings:
+
+```
+from django.conf import settings
+```
+
+This import allows access to the email configurations created in the `settings.py`. Next, create the variables:
+
+```
+subject, recipient_list,
+```
+
+Then you can `message`, and store the corresponding attributes used in the HTML form. The `email_from` variable contains the sender email, which is obtained from `EMAIL_HOST_USER` in the `settings.py` file.
+
+After the variables are processed, the `EmailMessage` class sends an email using the `sends()` method, and then closes the connection. The `send_email()` function renders the `home.html` file containing the email form.
+
+You can create a templates folder within your mail application and store the HTML files within that folder:
+
+```
+from django.core.mail import EmailMessage, get_connectionfrom django.conf import settingsdef send_email(request):
+ if request.method == "POST":
+ with get_connection(
+ host=settings.EMAIL_HOST,
+ port=settings.EMAIL_PORT,
+ username=settings.EMAIL_HOST_USER,
+ password=settings.EMAIL_HOST_PASSWORD,
+ use_tls=settings.EMAIL_USE_TLS
+ ) as connection:
+ subject = request.POST.get("subject")
+ email_from = settings.EMAIL_HOST_USER
+ recipient_list = [request.POST.get("email"), ]
+ message = request.POST.get("message")
+ EmailMessage(subject, message, email_from, recipient_list, connection=connection).send()
+
+ return render(request, 'home.html')
+```
+
+This is a bootstrap form for generating a message:
+
+```
+
+```
+
+This form sends a post request to the `send_email()` function. This processes the form data and sends the email to the recipients.
+
+Now open the `urls.py` file in the `NewEmailProject` folder to create the homepage URL. Update the `urlpattern` list by adding the code `path("", send_email)` .
+
+### Sending email to multiple recipients
+
+To specify multiple recipients when sending the same email, create a new function called `send_emails` within the `views.py` file and modify the send function code:
+
+```
+def send_emails(request):
+ if request.method == "POST":
+ with get_connection(
+ host=settings.EMAIL_HOST,
+ port=settings.EMAIL_PORT,
+ username=settings.EMAIL_HOST_USER,
+ password=settings.EMAIL_HOST_PASSWORD,
+ use_tls=settings.EMAIL_USE_TLS
+ ) as connection:
+ recipient_list = request.POST.get("email").split()
+ subject = request.POST.get("subject")
+ email_from = settings.EMAIL_HOST_USER
+ message = request.POST.get("message")
+ print(type(recipient_list))
+ EmailMessage(subject, message, email_from, recipient_list, connection=connection).send()
+
+ return render(request, 'send_emails.html')
+```
+
+For the `recipient_list` variable, I'm using the Python `split()` method to convert the recipients email string to list so that I can email all of them.
+
+Next, create another HTML file called `send_emails.html` in the templates folder and use the same form code for the `home.html` file within it.
+
+To specify multiple email recipients, use a space between each email address:
+
+```
+first@gmail.com second@gmail.com third@gmail.com
+```
+
+You should also update the `urlpattern` list by adding the code:
+
+```
+path("send-emails/", send_email)
+```
+
+### Sending HTML emails
+
+You can also send HTML emails with Django using a slightly modified version of the `send_email` function:
+
+```
+html_message = '''
this is an automated message
'''
+msg = EmailMessage(subject, html_message, email_from,recipient_list, connection=connection)
+msg.content_subtype = "html"
+msg.send()
+```
+
+### Sending emails with attachment
+
+To include attachment to mails, create a variable and put it in the file path in a string like this:
+
+```
+attachment = "mail/templates/example.png"
+```
+
+Then, move the `EmailMessage` function to a variable and call the `attach_file` method followed by the `send` method:
+
+```
+msg = EmailMessage(subject, message, email_from, recipient_list, connection=connection)
+msg.attach_file(attachment)
+msg.send()
+```
+
+### Django email libraries
+
+This guide on sending emails in Django would not be complete if I didn't mention the email libraries that are available to users. Here are some noteworthy email libraries.
+
+- **Django mailer** is a Django app for queuing as it saves emails in a database and sends the mail out at a designated time.
+- **Django templated email** aims to send templated emails. It offers features like configurable template naming and location, template inheritance, and adding recipients to the CC and BCC lists.
+- **Anymail** allows the use of an email service provider (ESP). By using `django.core.mail`, it provides a sustained API that avoids tying your code to a single ESP.
+
+### Emailing with Django
+
+Sending emails in Django can sound daunting, but it's as simple as creating a virtual environment. You can add Django to the environment and create an email backend. Finally, you can set up an HTML template. Give it a try.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/django-send-emails-smtp
+
+作者:[Sofiia Tarhonska][a]
+选题:[lkxed][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/sofiiatarhonska
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/20/6/open-source-alternatives-vs-code#vscodium
+[2]: https://opensource.com/article/21/2/python-virtualenvwrapper
+[3]: https://www.redhat.com/sysadmin/install-python-pip-linux
+[4]: https://docs.djangoproject.com/en/3.2/ref/settings/#email-backend
+
From 162da5d306602bec897a453154215d5c9f2522f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 22:58:42 +0800
Subject: [PATCH 027/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221213.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Dr?=
=?UTF-8?q?upal=2010=20is=20worth=20a=20fresh=20look.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
....5 ⭐️⭐️ Drupal 10 is worth a fresh look.md | 79 +++++++++++++++++++
1 file changed, 79 insertions(+)
create mode 100644 sources/tech/20221213.5 ⭐️⭐️ Drupal 10 is worth a fresh look.md
diff --git a/sources/tech/20221213.5 ⭐️⭐️ Drupal 10 is worth a fresh look.md b/sources/tech/20221213.5 ⭐️⭐️ Drupal 10 is worth a fresh look.md
new file mode 100644
index 0000000000..408b105756
--- /dev/null
+++ b/sources/tech/20221213.5 ⭐️⭐️ Drupal 10 is worth a fresh look.md
@@ -0,0 +1,79 @@
+[#]: subject: "Drupal 10 is worth a fresh look"
+[#]: via: "https://opensource.com/article/22/12/drupal-10-fresh-look"
+[#]: author: "Martin Anderson-Clutz https://opensource.com/users/mandclu"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Drupal 10 is worth a fresh look
+======
+
+The popular Drupal open source content management system (CMS) reaches a significant milestone when version 10 is released on December 14. Personally, I think Drupal X sounds way cooler, but so far, my calls to name it that haven't gotten much traction. I enlisted the help of my friend Aaron Judd of [Northern Commerce][1] to give us a sense of how cool Drupal X could look:
+
+![New Drupal 10 racing 10 logo][2]
+
+### What's a Drupal, anyway?
+
+Drupal is an open source CMS and development framework. While other CMS options focus on simple long-form content (think blogs) or entirely free-form content (like in Wix or Squarespace), Drupal has made a name for itself in handling more complex content architectures, in multiple languages, with robust content governance. Drupal sites (like this site, Opensource.com!) benefit from a strong role-based access control (RBAC) system, unlimited custom roles and workflows, and a powerful and extensible media library.
+
+Here's a rundown for anyone who hasn't kept tabs on what's coming in the newest major version.
+
+### A fresh face
+
+Most Drupal sites use custom themes to give them a unique look and feel. Still, the initial experience you have when installing a CMS matters. In Drupal, themes define the look and feel of a site, and you can use different themes for public and administrative experiences. Until recently, the Bartik and Seven themes had been the default face of Drupal for more than a decade. To put that in context, when Bartik was released, the most popular browser in the world was Internet Explorer 8. A lot has changed since then, particularly around best practices for building websites.
+
+In fact, a significant change in Drupal 10 will be the removal of support for Internet Explorer (IE), which is itself no longer supported by Microsoft and hasn't seen major updates since 2013. That may not sound like an improvement, but continued support for IE kept the community from adopting modern markup and styling. For example, thanks to being unencumbered by support for legacy browsers, Drupal 10 includes a new responsive grid layout that's so innovative it got a writeup in [CSS Tricks][3].
+
+![Responsive grid configuration][4]
+
+The new faces of Drupal are two brand new themes: Olivero for visitors and Claro for admins. In addition to being fresh and modern designs, both were developed with accessibility as a top priority.
+
+### Improvements under the hood
+
+More than a decade ago, the Drupal community decided to "Get Off the Drupal Island." That meant adopting solutions shared across popular projects and frameworks instead of ones developed and maintained exclusively by the Drupal community. Today Drupal leverages a variety of projects and libraries whose names will be familiar to open source developers who have never touched Drupal: Symfony, Composer, CKEditor, Twig, Nightwatch, and more.
+
+That has brought a variety of powerful capabilities to Drupal and allowed it to contribute back to those solutions, benefitting a broader set of developers. It has also become a determining factor for the cadence of Drupal's major version releases.
+
+To illustrate, consider that Drupal 7 was released in early 2011. Drupal 8 was released almost five years later, towards the end of 2015. Drupal 9 was released in June of 2020, with a key motivator being the move to supported versions of underlying dependencies and removing deprecated code. And now, roughly two and half years later, we're already planning to release Drupal 10. This new major version will leverage updated versions of PHP, Symfony, and Composer, among others.
+
+### An all-new editor
+
+An upgrade of particular note is the move to CKEditor 5. Although notionally an incremental update, under the hood CKEditor 5 was completely rewritten, much the same as the transition from Drupal 7 to 8. In addition to a sleeker interface, CKEditor 5 has the potential for exciting new capabilities, such as real-time collaboration. Drupal's CKEditor integration for version 5 has already been augmented with a number of UI enhancements. For example, media placed within content can be configured using an overlaid toolbar ribbon instead of needing to launch a modal dialog to access these settings. Also, the styles dropdown now includes a preview of each type available.
+
+![Real-time collaboration][5]
+
+### A look ahead
+
+Earlier in 2022, Drupal creator and project lead Dries Buytaert announced a focus on "ambitious site builders." This means that while the community will continue to work on making the developer experience better in general, moving forward there is a particular focus on making it easier to create engaging experiences in Drupal without having to write code or use command-line tools. Three strategic initiatives embody this new focus: Automatic Updates, the Project Browser, and Recipes.
+
+**Automatic Updates** will reduce the total cost of ownership for Drupal sites and help them be more secure by ensuring they always have the latest core security patches. This will be a major benefit for site owners and Drupal development teams everywhere. However, judging by personal experience, Wednesday night pizza sales may take a hit (traditionally, the Drupal security team releases updates on the third Wednesday of the month). There is now a stable release of Automatic Updates as a contrib module. Work has begun to move this into Drupal core, so all Drupal sites will eventually be able to leverage this capability.
+
+The **[Project Browser][6]** makes Drupal sites easier to build, maintain, and evolve by allowing site builders to search and browse through a subset of Drupal's vast catalog of available modules, prefiltered to the site's Drupal version, for security, stability, and more. A site builder can select, download, and install a module without leaving the site's web interface. In fact, there's an "app store" like interface meant to promote the most popular modules available that are compatible with the current site's version of Drupal. While other CMS options have had similar offerings, this advancement means you don't need to sacrifice ease-of-use to take advantage of the power of Drupal. Also, all of the thousands of modules listed are 100% free.
+
+For many years Drupal has had a concept of distributions. These are opinionated versions of Drupal designed to meet specific use cases such as media publishing, fundraising, intranet portals, and more. While distributions have proven an excellent way to accelerate initial development, in practice, they have been known to require significant work to maintain and create extra work for site owners during maintenance. The **Recipes** initiative aims to make more granular, composable functionality available when building a site. Want to add a staff directory, events calendar, or locations map to your site? In the future, this will be as easy as installing a recipe and then customizing it to meet your site's specific needs.
+
+### It's an exciting time to try Drupal
+
+Drupal 10 is the culmination of work contributed by thousands of dedicated and talented community members worldwide. If you're not already using Drupal, we hope you'll try it out for your next project. There's a common saying among Drupalists: "Come for the code, stay for the community."
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/drupal-10-fresh-look
+
+作者:[Martin Anderson-Clutz][a]
+选题:[lkxed][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/mandclu
+[b]: https://github.com/lkxed
+[1]: https://www.northern.co/
+[2]: https://opensource.com/sites/default/files/2022-12/DrupalX-RacerSticker-DrupalBlue-300ppi.png
+[3]: https://css-tricks.com/an-auto-filling-css-grid-with-max-columns
+[4]: https://opensource.com/sites/default/files/2022-11/responsive-grid-config.png
+[5]: https://opensource.com/sites/default/files/2022-11/realtime-collaboration_0.gif
+[6]: https://www.drupal.org/project/project_browser
From ccc0dd93df7c6334ea1080e2f90a18e89350f40f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 23:00:40 +0800
Subject: [PATCH 028/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221213.6=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Tr?=
=?UTF-8?q?y=20this=20Linux=20web=20browser=20as=20your=20file=20manager.m?=
=?UTF-8?q?d?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...Try this Linux web browser as your file manager.md | 96 +++++++++++++++++++
1 file changed, 96 insertions(+)
create mode 100644 sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
diff --git a/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
new file mode 100644
index 0000000000..622adb597e
--- /dev/null
+++ b/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
@@ -0,0 +1,96 @@
+[#]: subject: "Try this Linux web browser as your file manager"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Try this Linux web browser as your file manager
+======
+
+Konqueror is a file manager and web browser for the KDE Plasma Desktop. In many ways, Konqueror defined "network transparency," as it applied to a personal desktop. With Konqueror, you can browse remote network files (including the Internet itself, which really is just a collection of remote files viewed through a fancy lens) just as easily as browsing your local files. Sometimes there was some configuration and setup required, depending on what kind of file share you needed to access. But ultimately, the goal of having instant access to all the data you had permission to view was a reality with Konqueror in ways no other file manager had achieved. And at its peak, the open source web engine it developed (KHTML) was adopted by both Apple and Google, and lives on today as the core library of modern web browsing and, technically, Electron app development.
+
+Today, the KDE Plasma Desktop lists Konqueror as a web browser. Officially, file management has shifted over to [Dolphin][1], but Konqueror is still capable of doing the job. For the full and classic Konqueror experience, you should try the Plasma Desktop 3.x fork [TDE][2], but in this article I use Konqueror in KDE Plasma Desktop version 5.
+
+### Install Konqueror
+
+If you're running KDE Plasma Desktop already, you may already have Konqueror installed. If not, you can install it from your distribution's software repository. On Fedora, CentOS, Mageia, OpenMandriva, and similar:
+
+```
+$ sudo dnf install -y konqueror konqueror-plugins
+```
+
+On Debian, Linux Mint, Elementary, and similar:
+
+```
+$ sudo apt install -y konqueror konqueror-plugins
+```
+
+![Image of Konqueror's file manager.][3]
+
+### Configure Konqueror as a file manager
+
+The most convenient feature of Konqueror is that it's a web browser in addition to being a file manager. Or at least, that's theoretically its most convenient feature. If you're not using Konqueror as a web browser, then you may not want the URL field or the search engine field at the top of every file manager window.
+
+As with most KDE applications, Konqueror is highly configurable. You can reposition and add and remove toolbars, add or remove buttons, and so on.
+
+To adjust what toolbars are displayed, launch Konqueror and go to the **Settings** menu and select **Toolbars Shown**. The **Main** toolbar is probably all you really need for file management. It's the toolbar with navigation buttons on it. However, you may not even need that, as long as you're happy to navigate with keyboard shortcuts or using the **Go** menu.
+
+Keyboard navigation in Konqueror is the same as in Dolphin:
+
+- **Alt+Left arrow**: Back one step
+- **Alt+Up arrow**: Move to parent directory
+- **Alt+Home**: Go to home directory
+
+### Side panel
+
+To get a side panel with a listing of common folders, press **F9** or select **Show Sidebar** from the **Settings** menu. This adds a button bar along the left side of the Konqueror window. Click the **Home** icon to display a file tree of your home directory.
+
+![Image of Konqueror with a sidebar.][4]
+
+As the button bar suggests, this side panel can serve many purposes. Instead of your home directory, you can display bookmarked locations, a history of recent locations you've visited, remote filesystems, and more.
+
+### Applications
+
+Some people are used to an application menu. It's efficient and quick, and always in the same place. Other people prefer to launch applications from the terminal.
+
+There's yet another way to view application launchers, though. Konqueror's **Go** menu allows you go to a meta location called **Applications**, which lists application launchers, by category, as files in a file manager.
+
+![Image of applications in Konqueror.][5]
+
+You can see this in Dolphin, too, by manually typing **applications:** in the location field, but of the two it's Konqueror that provides a menu option to go there directly.
+
+### Network folders
+
+Similarly, Konqueror also provides a menu selection to go to network folders. The greatest network folder of them all is the Internet, but **Network Folders** is the meta location for network protocols other than HTTP. Most remote locations require some setup because they usually require authentication to access. Most of them can be configured through **System Settings**, including file systems accessible over Bluetooth, SMB or CIFS, MTP devices, Fish (file system over SSH), and even Google Drive.
+
+### Split view
+
+You can split the Konqueror window into panes, allowing you to see two folders at once without opening two windows. There are two split options: a vertical split with one pane on the left and the other on the right, or a horizontal split with one pane above the other.
+
+To split the Konqueror window, go to the **Window** menu and select either **Split View Left/Right** or **Spit View Top/Bottom**. Each pane is independent of the other, so you can navigate around in one pane, and then drag and drop files from one to the other.
+
+### Conquering your file system
+
+Konqueror isn't _just_ a file manager, and I don't think the developers of the Plasma Desktop expect you to use it as your primary file manager. There's even an option in the **File** menu to open a location in **Dolphin**, which indicates that Konqueror is a web browser with a file manager component. But that file manager component is a nice feature to have when you need it. And if you're not a fan of all the features Dolphin offers, Konqueror could be a suitable alternative.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-konqueror
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/22/12/linux-file-manager-dolphin
+[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde
+[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png
+[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png
+[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png
From 6c0b75be8a3f8a7b2d3cf9643f7bef5298c5c669 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 23:01:34 +0800
Subject: [PATCH 029/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221213.7=20=E2=AD=90=EF=B8=8F=20Firefox=20108=20unlo?=
=?UTF-8?q?cks=20the=20power=20of=20music=20on=20the=20web=20with=20new=20?=
=?UTF-8?q?WebMIDI=20API=20support.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...sic on the web with new WebMIDI API support.md | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md
diff --git a/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md b/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md
new file mode 100644
index 0000000000..b099cd8b00
--- /dev/null
+++ b/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md
@@ -0,0 +1,73 @@
+[#]: subject: "Firefox 108 unlocks the power of music on the web with new WebMIDI API support"
+[#]: via: "https://debugpointnews.com/firefox-108/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Firefox 108 unlocks the power of music on the web with new WebMIDI API support
+======
+
+![][1]
+
+**Firefox 108 is now available to download, bringing the following new features.**
+
+The final Firefox release of this year is here – Firefox 108, closing an eventful year of this free and open-source web browser from Mozilla.
+
+![Firefox 108 Running in Ubuntu][2]
+
+### Firefox 108: Best new features
+
+If you are a music enthusiast, then some good news for you. Firefox now supports the [WebMIDI API][3] inside your browser with proper access controls. When you try to access MIDI devices via Firefox, then you get a prompt for installing a “[site permission add-on][4]” to enable this API.
+
+In addition, Firefox 108 enabled import maps by default, which means web pages can now control the behaviour of JavaScript imports more easily. And if you use Firefox, you’ll be happy to hear that it now supports proper colour correction for images tagged with ICCv4 profiles.
+
+Furthermore, developers added a handy keyboard shortcut – press SHIFT+ESC to open the Process Manager and quickly identify any processes using too many resources. And on Windows 11, Firefox added efficiency mode for processes used in background tabs to help save on resources.
+
+Elsewhere, your browser’s bookmark toolbar gets an option “Only show on New Tab” state, which now works correctly for blank new tabs. Also improved in this release is the handling of non-ASCII characters while exporting PDF forms from web pages.
+
+If you are a web developer, Firefox 108 also arrives with a handful of Math function updates which are summarised alongside other vital changes:
+
+- The `source` element supports `height` & `width` attributes when it is a child of a `picture` element.
+- Trigonometric functions are now enabled with the `layout.css.trig.enabled` preference set to true by default. This allows the use of sin(), cos(), tan(), asin(), acos(), atan(), and atan2() functions
+- CSS `calc-constant`type is implemented to allow for well-known constants such as pi and e within math functions
+- Container query length units are now supported via the the `layout.css.container-queries.enabled` preference, which is set to false by default
+
+### Download and update
+
+For Linux distributions, if you used Firefox via your distribution’s official repository, then you should get this update within a couple of days from today.
+
+However, you can also download the compressed version of this release from the below page. For other download options, do visit our [Firefox download guide][5].
+
+[Download Firefox 108][6]
+
+Happy browsing!
+
+- [Official release notes][7]
+- [Beta108 release notes][8]
+- [Developer release notes][9]
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/firefox-108/
+
+作者:[arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2022/04/firefox-head.jpg
+[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Firefox-108-Running-in-Ubuntu.jpg
+[3]: https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API
+[4]: https://support.mozilla.org/en-US/kb/site-permission-addons
+[5]: https://www.debugpoint.com/download-firefox/
+[6]: https://ftp.mozilla.org/pub/firefox/releases/108.0/
+[7]: https://www.mozilla.org/en-US/firefox/108.0/releasenotes/
+[8]: https://www.mozilla.org/en-US/firefox/108.0beta/releasenotes/
+[9]: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/108
From 94da2fe1eef95a9d2cd9715e762506ba81fae4bb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 13 Dec 2022 23:01:59 +0800
Subject: [PATCH 030/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221213.8=20=E2=AD=90=EF=B8=8F=20Kdenlive=2022.12=20R?=
=?UTF-8?q?elease=20Adds=20Useful=20New=20Features.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...live 22.12 Release Adds Useful New Features.md | 106 ++++++++++++++++++
1 file changed, 106 insertions(+)
create mode 100644 sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md
diff --git a/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md b/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md
new file mode 100644
index 0000000000..7954cc1ae8
--- /dev/null
+++ b/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md
@@ -0,0 +1,106 @@
+[#]: subject: "Kdenlive 22.12 Release Adds Useful New Features"
+[#]: via: "https://news.itsfoss.com/kdenlive-22-12-released/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Kdenlive 22.12 Release Adds Useful New Features
+======
+
+Kdenlive 22.12 upgrade is here with nice enhancements across the board.
+
+![Kdenlive 22.12 Release Adds Useful New Features][1]
+
+Kdenlive is an open-source cross-platform video editing software built by the KDE community, which has been around since 2003.
+
+Built using Qt and KDE Frameworks, it has been the editor of choice for many users out there.
+
+Recently, the latest upgrade to it i.e Kdenlive 22.12 has been made available, let me take you through the release.
+
+### 🆕 Kdenlive 22.12: What's New?
+
+![kdenlive 22.12][2]
+
+Kdenlive 22.12 features numerous improvements, with over 350 commits made. It brings in many new features, bug fixes, and prepares the code base for future releases.
+
+Let me take you through some of the notable improvements with this release.
+
+#### Revamped Guide and Marker System
+
+![kdenlive 22.12 guides dock][3]
+
+The guide and marker system on Kdenlive has received a major overhaul, with the key changes being:
+
+- All marker and guide features are now made available in the new 'Guides' dock.
+- The 'Guides' dock also lets you easily seek, search, sort, and filter through the various markers and guides. It also allows for navigation with keyboard.
+- You can now create many categories to suit your needs, compared to the nine categories limit previously.
+- It is now also possible to edit, add, or remove multiple markers at a time, and the import/export of markers has been improved.
+
+#### Improved Glaxnimate Integration
+
+![kdenlive 22.12 glaxnimate integration][4]
+
+Kdenlive already had support for Glaxnimate with its previous release, but now the developers have taken it a step further.
+
+The editor now lets you send the content of your Kdenlive timeline to [Glaxnimate][5] (version >= 0.5.1), which will then show up in the background.
+
+> 💡 Glaxnimate is an open-source 2D vector drawing and animation program.
+
+This allows you to create animations that play together with your videos in a much easier fashion than was possible before.
+
+#### Various UX Improvements
+
+Kdenlive includes a variety of usability improvements, such as:
+
+- A new hamburger menu in the toolbar that can be used instead of the menu bar.
+- 'What's This?' Text has been added in several places to show what a specific element does.
+- You can now define a maximum size for the cached data stored by Kdenlive in the environment settings.
+- The 'Settings' page has received a cleanup, and now features a reordered list of all the important options.
+
+#### Keyframeable Audio Graph Filters
+
+Existing audio graph filters like the audio level visualization filter, audio spectrum filter and audio wave form filter are now keyframeable with Kdenlive 22.12.
+
+They also fixed several effects that were affected due to syntax errors in the XML code and added automated tests to the build system to avoid such an issue in the future.
+
+#### 🛠️ Other Changes
+
+Besides the changes listed above, here are some of the other notable ones:
+
+- Improved track composition.
+- PipeWire as SDL output.
+- The Color Picker has been fixed on Wayland.
+- Pixabay as the new video provider.
+- Improved search performance.
+
+If you want to dive deep into the release notes, refer to the [official announcement][6].
+
+### 📥 Download Kdenlive 22.12
+
+For Linux, the latest release is available as an AppImage, on Flathub, and as an Ubuntu PPA.
+
+Head over to the [official website][7] to download those.
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/kdenlive-22-12-released/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/kdenlive-22-12-release.png
+[2]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12.png
+[3]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12_Guides_Dock.png
+[4]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12_Glaxnimate.png
+[5]: https://glaxnimate.mattbas.org
+[6]: https://kdenlive.org/en/2022/12/kdenlive-22-12-released/
+[7]: https://kdenlive.org/en/download/
From 42e4565291a381af0f5106bc4771ab5bfe37715f Mon Sep 17 00:00:00 2001
From: CanYellow
Date: Wed, 14 Dec 2022 08:42:16 +0800
Subject: [PATCH 031/266] home trans
---
...20221019.5 ⭐️⭐️ Our open source startup journey.md | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
index 3dcf5ba6af..f6f3514585 100644
--- a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
+++ b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
@@ -98,17 +98,28 @@ DN
DN
June 7th was the day of the launch. First, we launched on ProductHunt. Six hours passed, and there were only 70 new signups. But we were trending as the #1 product of the day (and ended up as the #3 product of the week). For posterity, here's the original [post][2].
+下午6点左右,我又在 [HackerNews][3]上发帖,一个小时内,这个帖子便升至榜首。大量的访问者注册并给我的版本库点亮星标,我对此很高兴。大量的访问者和用户报告了软件和文档中的漏洞。距离在 HackNews 上发帖八个小时之后,超过1000名 GitHub 用户给 ToolJet 的 GitHub 版本库点亮星标,并且有了数百个 ToolJet 云端的注册请求。上升趋势一直持续到三天后,ToolJet 版本库总计得到了2400个星标。
+DN
I also posted on [HackerNews][3] around 6 PM, and within an hour, the post was #1. I was very happy that many visitors signed up and starred the repository. Many of these visitors and users reported bugs in the application and documentation. Within eight hours of posting on HN, more than 1,000 GitHub users starred ToolJet's GitHub repository, and there were hundreds of signups for ToolJet cloud. The trend continued for three days, and the repo had 2.4k stars.
![ToolJet repo stats on GitHub][4]
+图片来源:
+
+DN
Image by:
GitHub StarTrack for ToolJet. (Navaneeth PK, CC BY-SA 4.0)
+### 获得资助
+
+DN
### Getting funding
+ToolJet 项目在 GitHub 上的吸引力足以被风投(VC)世界注意到。发布之后的日子被各种来电挤满了。我们有了其他的选择,但从没有认真考虑过这些它们。这些选择包括:
+
+DN
The traction on GitHub was enough to be noticed by the venture capitalist (VC) world. The days following the launch were packed with calls. We had other options, but did not consider seriously consider them, including:
- Bootstrapping: During the early stages of the product, it was hard to find paying customers, and I did not have enough savings to fund the project until that happened.
From be879fcb49a54a9c85c648f508596783275663a1 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Wed, 14 Dec 2022 08:53:18 +0800
Subject: [PATCH 032/266] translated
---
...e Images With ‘Converter’ GUI Tool in Linux.md | 87 -------------------
...e Images With ‘Converter’ GUI Tool in Linux.md | 87 +++++++++++++++++++
2 files changed, 87 insertions(+), 87 deletions(-)
delete mode 100644 sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
create mode 100644 translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
diff --git a/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md b/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
deleted file mode 100644
index 318da04906..0000000000
--- a/sources/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
+++ /dev/null
@@ -1,87 +0,0 @@
-[#]: subject: "Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux"
-[#]: via: "https://itsfoss.com/converter-tool/"
-[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux
-======
-
-You can always [install ImageMagick][1] on your system to convert images, but not everyone likes to use the terminal for converting and manipulating images.
-
-So, what if you have a GUI app as a front-end to help with that? **Converter** is precisely that.
-
-It is a front-end to ImageMagick. So you do not need to use commands to convert and manipulate images.
-
-Note that most Ubuntu systems usually have ImageMagick pre-installed. You can always refer to our [installation guide][1] if you do not have it on your system.
-
-### Converter: A Graphical Front-end to ImageMagick
-
-![converter gui][2]
-
-It should not take a lot of effort to convert images. It is a simple task, and that is how it should be.
-
-I do not want to type a command to convert an image quickly. Hence, I prefer graphical tools that enable me to do things faster.
-
-[Converter][3] is an open-source graphical front-end that enables you to do that. It is a GTK4+libadwaita application.
-
-You can convert the images to various file formats that include **png, webp, jpeg, heif, heic, and bmp**. It is safe to say that you get support for the most popular image file formats. So, it should come in pretty handy.
-
-![file format converter][4]
-
-You can set a location to save all the files, and the converted images will automatically be stored at that location.
-
-![customize converter][5]
-
-You can also adjust an image’s quality, size, and background color. To access these options, click on “**More Options**” in the user interface before converting the image.
-
-![converter more options][6]
-
-The image size can be customized using its percentage, exact pixels, or ratio. For precise manipulation, changing the dimensions should help.
-
-If you want the image scaled to an extent, the percentage or ratio functionality should help you do that. You can also choose to add filters to your images.
-
-Overall, you get the basic options to re-size, convert, and optimize the image quality with Converter.
-
-You can also [tweak Nautilus][7] to have the [resize option in the right-click context menu][8]. It won’t be as versatile as this tool.
-
-### Install Converter on Linux
-
-Converter is available as a Flatpak on [Flathub][9] to install on any Linux distribution of your choice.
-
-Unfortunately, you do not get any binary packages to install on your Linux system. So, you might want to refer to our [Flatpak guide][10] to get it installed.
-
-```
-flatpak install flathub io.gitlab.adhami3310.Converter
-```
-
-You can explore more about it on its [GitLab page][3].
-
-_Do you have any suggestions to nifty tools like this for us to highlight next? Let us know in the comments._
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/converter-tool/
-
-作者:[Ankush Das][a]
-选题:[lkxed][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/ankush/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/install-imagemagick-ubuntu/
-[2]: https://itsfoss.com/wp-content/uploads/2022/12/converter-gui.png
-[3]: https://gitlab.com/adhami3310/Converter
-[4]: https://itsfoss.com/wp-content/uploads/2022/12/file-format-converter.png
-[5]: https://itsfoss.com/wp-content/uploads/2022/12/customize-converter.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/12/converter-more-options.png
-[7]: https://itsfoss.com/nautilus-tips-tweaks/
-[8]: https://itsfoss.com/resize-images-with-right-click/
-[9]: https://flathub.org/apps/details/io.gitlab.adhami3310.Converter
-[10]: https://itsfoss.com/flatpak-guide/
diff --git a/translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md b/translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
new file mode 100644
index 0000000000..292044c8e9
--- /dev/null
+++ b/translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
@@ -0,0 +1,87 @@
+[#]: subject: "Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux"
+[#]: via: "https://itsfoss.com/converter-tool/"
+[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+在 Linux 中使用 “Converter” GUI 工具转换和操作图像
+======
+
+你可以随时在您的系统上[安装 ImageMagick][1] 来转换图像,但并不是每个人都喜欢使用终端来转换和操作图像。
+
+那么,如果你有一个 GUI 应用作为前端来帮助解决这个问题呢? **Converter** 就是这样的工具。
+
+它是 ImageMagick 的前端。所以你不需要使用命令来转换和操作图像。
+
+请注意,大多数 Ubuntu 系统通常都预装了 ImageMagick。如果你的系统上还没有安装,你可以随时参考我们的[安装指南][1]。
+
+### Converter:ImageMagick 的图形前端
+
+![converter gui][2]
+
+转换图像不应该花费很多精力。这是一项简单的任务,而且应该如此。
+
+我不想键入命令来快速转换图像。因此,我更喜欢使我能够更快地做事的图形工具。
+
+[Converter][3] 是一个开源图形前端,可以让你做到这点。它是一个 GTK4+libadwaita 应用。
+
+你可以将图像转换为各种文件格式,包括 **png、webp、jpeg、heif、heic 和 bmp**。可以肯定地说,你获得了对最流行的图像文件格式的支持。所以,它应该会派上用场。
+
+![file format converter][4]
+
+你可以设置一个位置来保存所有文件,转换后的图像将自动存储在该位置。
+
+![customize converter][5]
+
+你还可以调整图像的质量、大小和背景颜色。要访问这些选项,请在转换图像之前单击用户界面中的“**更多选项**”。
+
+![converter more options][6]
+
+可以使用百分比、精确像素或比率自定义图像大小。对于精确操作,更改尺寸应该有所帮助。
+
+如果你希望图像缩放到一定程度,百分比或比例功能应该可以帮助你做到这一点。你还可以选择为图像添加滤镜。
+
+总体而言,您可以获得使用 Converter 调整大小、转换和优化图像质量的基本功能。
+
+你还可以[调整 Nautilus][7] 以获得[右键单击上下文菜单中的调整大小选项][8]。它不会像这个工具那样通用。
+
+### 在 Linux 上安装 Converter
+
+Converter 在 [Flathub][9] 上以 Flatpak 的形式提供,可以安装在你选择的任何 Linux 发行版上。
+
+遗憾的是,你无法在 Linux 系统上安装任何二进制包。因此,你可能需要参考我们的 [Flatpak 指南][10]来安装它。
+
+```
+flatpak install flathub io.gitlab.adhami3310.Converter
+```
+
+你可以在其 [GitLab 页面][3]上探索更多相关信息。
+
+_你对我们接下来要重点介绍的此类有趣工具有什么建议吗? 让我们在评论中知道。_
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/converter-tool/
+
+作者:[Ankush Das][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/ankush/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/install-imagemagick-ubuntu/
+[2]: https://itsfoss.com/wp-content/uploads/2022/12/converter-gui.png
+[3]: https://gitlab.com/adhami3310/Converter
+[4]: https://itsfoss.com/wp-content/uploads/2022/12/file-format-converter.png
+[5]: https://itsfoss.com/wp-content/uploads/2022/12/customize-converter.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/12/converter-more-options.png
+[7]: https://itsfoss.com/nautilus-tips-tweaks/
+[8]: https://itsfoss.com/resize-images-with-right-click/
+[9]: https://flathub.org/apps/details/io.gitlab.adhami3310.Converter
+[10]: https://itsfoss.com/flatpak-guide/
From 94249e4608ea069ed7e29134c62f48cb93676121 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Wed, 14 Dec 2022 08:59:38 +0800
Subject: [PATCH 033/266] translating
---
.../tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
index 8e3ccb1d82..fe68240171 100644
--- a/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
+++ b/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
@@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/mint-upgrade-tool/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 263a512492efc26f5888cddf281cfadddebce6cb Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 14 Dec 2022 09:32:50 +0800
Subject: [PATCH 034/266] RP
@geekpi
https://linux.cn/article-15346-1.html
---
...Source App for Personal Relationship Management.md | 33 ++++++++++---------
1 file changed, 18 insertions(+), 15 deletions(-)
rename {translated/tech => published}/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md (60%)
diff --git a/translated/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md b/published/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md
similarity index 60%
rename from translated/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md
rename to published/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md
index 4da016170e..c159ea92bb 100644
--- a/translated/tech/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md
+++ b/published/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md
@@ -3,18 +3,20 @@
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15346-1.html"
-Monica:个人关系管理的开源应用
+Monica:人际关系管理的开源应用
======
-你可能已经知道 CRM 代表 **客户关系管理**。 我们已经有了一份帮助小型企业的[开源 CRM 软件][1]列表。
+![][0]
-在这里,我将讨论一个有趣的开源 Web 应用,它采用相同的人际关系概念。 听起来很独特,对吧?
+你可能已经知道 CRM 代表 客户关系管理Customer Relationship Management。 我们已经有了一份帮助小型企业的 [开源 CRM 软件][1] 列表。
-Monica 是一款可让你组织和记录你与亲人互动的应用。 **如果你自行托管,它是免费的,如果你需要托管版本那么订阅**。
+在这里,我将讨论一个有趣的开源 Web 应用,它采用相同的人际关系概念。听起来很独特,对吧?
+
+Monica 是一款可让你组织和记录你与亲人互动的应用。**如果你自行托管,它是免费的,如果你需要托管版本那么订阅**。
### Monica:跟踪社交互动
@@ -22,11 +24,11 @@ Monica 是一款可让你组织和记录你与亲人互动的应用。 **如果
很难记住与家人、朋友或同事互动的每一个细节。
-你可以使用[笔记应用][3]或 [CubyText][4] 等知识管理应用来添加一些信息。 但这些并不是为记录你的互动而量身定制的。 因此,你将不得不付出一些努力,以在需要时得心应手的方式添加信息。
+你可以使用 [笔记应用][3] 或 [CubyText][4] 等知识管理应用来添加一些信息。但这些并不是为记录你的互动而量身定制的。 因此,你将不得不付出一些努力,以在需要时得心应手的方式添加信息。
使用 Monica,添加你的家庭、工作、联系人之间的关系、活动、日记、重要日期的提醒、债务等信息变得更加容易。
-可以将其安装在自己的服务器上或选择 **$90/年**的订阅以获得托管版本。
+可以将其安装在自己的服务器上或选择 **$90/年** 的订阅以获得托管版本。
有趣的是,开发人员最初是根据他的个人要求构建它的。
@@ -34,26 +36,26 @@ Monica 是一款可让你组织和记录你与亲人互动的应用。 **如果
![dashboard][5]
-你可以获得大量选项来添加有关你日常生活中的人和互动的信息。 其中一些包括:
+你可以获得大量选项来添加有关你日常生活中的人和互动的信息。其中一些包括:
- 添加关于一个人的注释
- 列出与联系人相关的重要其他人的姓名(他们的孩子、宠物等)
- 通话记录
- 每个联系人的备用联系方式
-- 重要约会和重要事件提醒。 生日会自动设置为提醒。
+- 重要约会和重要事件提醒。生日会自动设置为提醒。
- 管理礼物信息
- 有用的仪表板,一目了然
- 支持日记条目
Monica 似乎配备了各种功能,使其成为写日记、做笔记、添加联系信息、添加事件等的一体化工具。
-不幸的是,没有可用的移动应用。 你可以从 Web 浏览器访问它,但它可能不是每个人的最佳体验。 所以,如果你坚持用智能手机做笔记和其他东西,你可能想看看其他的。
+不幸的是,没有可用的移动应用。你可以从 Web 浏览器访问它,但它可能不是每个人的最佳体验。所以,如果你坚持用智能手机做笔记和其他东西,你可能想看看其他的。
### 自托管或订阅访问
-如果你想要 Monica 的托管版本,可以查看它的[定价页面][6]了解更多信息。
+如果你想要 Monica 的托管版本,可以查看它的 [定价页面][6] 了解更多信息。
-对于自托管,你需要前往其 [GitHub 页面][7]并按照说明下载并安装它。 可以选择在 Platform.sh 或 Heroku 上快速部署。
+对于自托管,你需要前往其 [GitHub 页面][7] 并按照说明下载并安装它。可以选择在 Platform.sh 或 Heroku 上快速部署。
在选择服务器来托管 Monica 之前,请检查最低系统要求。
@@ -61,7 +63,7 @@ Monica 似乎配备了各种功能,使其成为写日记、做笔记、添加
这一切都很方便。 所以,选择对你来说不错的。
-前往其[官方网站][8]获取所有详细信息并开始使用。
+前往其 [官方网站][8] 获取所有详细信息并开始使用。
--------------------------------------------------------------------------------
@@ -84,3 +86,4 @@ via: https://itsfoss.com/monica/
[6]: https://www.monicahq.com/pricing
[7]: https://github.com/monicahq/monica#get-started
[8]: https://www.zdnet.com/article/microsoft-office-365-banned-in-german-schools-over-privacy-fears/
+[0]: https://img.linux.net.cn/data/attachment/album/202212/14/093133zpw06jndpzbdpphp.jpg
\ No newline at end of file
From 8acf5763ad8338cf6a2e3b26ad8ddcfee0d37aa0 Mon Sep 17 00:00:00 2001
From: Bright Huang
Date: Wed, 14 Dec 2022 16:17:09 +0800
Subject: [PATCH 035/266] translation finished , passed.
---
....5 ⭐️⭐️ Our open source startup journey.md | 123 +++++-------------
1 file changed, 30 insertions(+), 93 deletions(-)
diff --git a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
index f6f3514585..c71c2778e3 100644
--- a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
+++ b/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
@@ -7,153 +7,90 @@
[#]: publisher: " "
[#]: url: " "
-开启我们的开源之旅
-
-DN
-Our open source startup journey
+开始我们的开源之旅
======
-ToolJet 是一款开源的代码量少的用于快速构建和部署内部工具的框架。它的基础代码完全基于 JavaScript 和 TypeScript 。
+[ToolJet][1] 是一款开源的低代码量的用于快速构建和部署内部工具的框架。它的基础代码完全基于 JavaScript 和 TypeScript 。
-DN
-[ToolJet][1] is an open source, low-code framework for rapidly building and deploying internal tools. Our codebase is 100% JavaScript and TypeScript.
-
-ToolJet于2021年由一名开发者启动开发,并于2021年6月推出公测版本,一炮而红。此后, ToolJet 成立了基金会。目前,已经有一个20人的开发团队了。
-
-DN
-A lone developer in April 2021 started ToolJet. The public beta launched in June 2021 and was an instant hit. With this traction, ToolJet raised funding, and currently, we have a team of 20 members.
+ToolJet于2021年由一名开发者启动开发,并于2021年6月推出公测版本,一炮而红。此后, ToolJet 成立了基金会。目前,已经有一个20人的开发团队。
### 为什么选择开源
-DN
-### Why open source?
+在开发 ToolJet 之前,我曾担任一些企业客户端的顾问。许多客户端都庞大到在其中维护构建了大量的内部工具,更不用说来自销售人员、支持人员以及运营人员的对于内部工具的持续的漏洞修复与添加更多功能的要求了。开发团队一直在寻找能够用于内部应用开发的工具。
-在开发 ToolJet 之前,我曾担任一些企业客户端的顾问。许多客户端都庞大到在其中维护构建了大量的内部工具,更不用说来自销售人员、支持人员以及运营人员对于内部工具的持续的漏洞修复与添加更多功能的要求了。开发团队一直在寻找能够用于内部应用开发的工具。
+我尝试过多个平台来构建和维护内部工具。大部分平台都是昂贵的,而且有时候并不能满足我们的需求,我们不得不修改平台工具的代码,而且大多数的平台工具都不支持本地托管。
-DN
-Before working on ToolJet, I worked with a few enterprise clients as a consultant. Many of these clients were large enough to build and maintain dozens of internal tools. Despite the constant requests from sales, support, and operations teams to add more features and fix the bugs in their internal tools, engineering teams struggled to find the bandwidth to work on the internal utilities.
-
-我尝试过多个平台来构建和维护内部工具。大部分的平台是昂贵的,而且有时候并不能满足我们的需求,我们不得不修改平台代码,而且大多数的平台工具都不支持本地托管。
-
-DN
-I tried using a few platforms to build and maintain internal tools. Most of these tools were very expensive, and frequently, they didn't really fit the requirements. We needed modifications, and most utilities didn't support on-premise hosting.
-
-作为一名 Ruby 开发者,我最初使用 ActiveAdmin 和 RailsAdmin 来构建内部工具。这两款工具都是极好的,只是将它们应用在超出一个数据源上的工作比较困难。于是我意识到市场上需要一种可以构建用户界面并能够连接多个数据源的框架。我相信任何为开发者制作的工具都应当是开源的。开发者日常使用的大部分工具与框架都源自世界各地人们的公开协作。
-
-DN
-As a Ruby developer, I primarily used ActiveAdmin and RailsAdmin to build internal tools. Both utilities are amazing, but making them work with more than one data source is difficult. I then realized there is a need in the market for a framework that could build user interfaces and connect to multiple data sources. I believe any tool built for developers should be open source. Most of the tools and frameworks that developers use daily result from people from all over the world collaborating in public.
+作为一名 Ruby 开发者,我最初使用 ActiveAdmin 和 RailsAdmin 来构建内部工具。这两款工具都是极好的,只是将它们应用在超出一个数据源的任务上的工作比较困难。于是我意识到市场上需要一种可以构建用户界面并能够连接多个数据源的框架。我相信任何为开发者制作的工具都应当是开源的。开发者日常使用的大部分工具与框架都源自世界各地人们的公开协作。
### 第一次提交
-DN
-### The first commit
-
-制作像 ToolJet 这样的工具需要全身心的投入,出售我的一个个人项目后我获得了5-6个月的空闲,我立即着手将在我脑海里酝酿了两年的想法付诸现实。
-
-DN
-Building something like ToolJet needed a full-time commitment. Selling one of my side projects gave me a runway of 5-6 months, and I immediately started working on an idea I'd had in mind for at least two years.
+制作像 ToolJet 这样的工具需要全身心的投入,通过出售我的一个业余项目,我获得了5-6个月的空闲,于是我立即着手将在我脑海里酝酿了两年的想法付诸现实。
2021年4月1日,我完成了 ToolJet 的第一次提交(使用 rails new 命令)。
-DN
-The first commit (rails new) of ToolJet was on April 1, 2021.
-
稍等!我刚刚说 ToolJet 的代码是完全基于 JavaScript 的?请接着往下看。
-DN
-Wait! I said the codebase is 100% JavaScript. Continue reading to discover why.
-
TD
-### 构建工具并推销给投资者
-
-### Building and pitching investors
+### 构建完成并推销给投资者
4、5月间,我一直坐在电脑屏幕前编写代码和向种子轮的投资者推销我的工具。
-DN
-I sat in front of my screens for most of April and May, coding and pitching to investors for a pre-seed round.
-
我的工作还包括创建拖放式应用程序构建器,撰写所有的文档以保证有在主流平台上设置 ToolJet 的文档,创建项目网站,制作发布时所需的海报以及博客文章等等。这一过程进展顺利,没有遇到大的挑战。当时, ToolJet 的前端使用的是 React ,而后端则用的是 Ruby on Rails 。
-DN
-My work also included creating the drag-and-drop application builder, documenting everything, ensuring there was documentation for setting ToolJet up on popular platforms, creating a website, creating posters and blog posts for launch, and more. The process went well without any major challenges. At this point, the frontend of ToolJet was built using React, with the backend using Ruby on Rails.
+编程工作进行得很顺利,然而投资者推广工作进行得并不顺利。我向专注于初创时期投资的风投和天使投资人发送了大约40封电子邮件,都石沉大海。大部分邮件都被忽略了,不过也有一些公司向我说明了拒绝的原因,另外一些则给我回了电话。
-编程工作进行得很顺利,然而投资者推广工作进行得并不顺利。我向专注于初创时期投资的风投和天使投资人发送了大约40封电子邮件,都石沉大海。大部分邮件都被忽略了,不过也有一些公司向我说明了拒绝的原因,另外一些则给我来了电话。
-
-DN
-While the coding was going well, investor pitches weren't going great. I sent around 40 cold emails to venture capitalist firms and "angel investors" focused on early-stage funding. While most of them ignored the email, some shared their reason for rejection, and some scheduled a call.
-
-大部分的电话内容都是一样的:我无法说服他们接受开源商业模型。
-
-DN
-Most of the calls were the same; I couldn't convince them of an open source business model.
+大部分的电话内容都是一样的:我无法说服他们接受开源商业模式。
### 工具发布
-DN
-### The launch
-
-6月7日是发布日。我们首先在 ProductHunt (译者注: [ProductHunt][11] 是一个新品发布平台)上发布.六个小时后,只有70名用户注册。但是我们有成为当天第一名产品的趋势(最终在那一周的产品中排名第三)。这是原始的[发布帖][2]。
-
-DN
-June 7th was the day of the launch. First, we launched on ProductHunt. Six hours passed, and there were only 70 new signups. But we were trending as the #1 product of the day (and ended up as the #3 product of the week). For posterity, here's the original [post][2].
+6月7日是发布日。我们首先在 ProductHunt (译者注: [ProductHunt][11] 是一个新品发布平台)上发布.六个小时后,只有70名用户注册。但是我们有成为当天第一名产品的趋势(最终在那一周的产品中排名第三)。这里是原始的[发布帖][2]。
下午6点左右,我又在 [HackerNews][3]上发帖,一个小时内,这个帖子便升至榜首。大量的访问者注册并给我的版本库点亮星标,我对此很高兴。大量的访问者和用户报告了软件和文档中的漏洞。距离在 HackNews 上发帖八个小时之后,超过1000名 GitHub 用户给 ToolJet 的 GitHub 版本库点亮星标,并且有了数百个 ToolJet 云端的注册请求。上升趋势一直持续到三天后,ToolJet 版本库总计得到了2400个星标。
-DN
-I also posted on [HackerNews][3] around 6 PM, and within an hour, the post was #1. I was very happy that many visitors signed up and starred the repository. Many of these visitors and users reported bugs in the application and documentation. Within eight hours of posting on HN, more than 1,000 GitHub users starred ToolJet's GitHub repository, and there were hundreds of signups for ToolJet cloud. The trend continued for three days, and the repo had 2.4k stars.
-
![ToolJet repo stats on GitHub][4]
图片来源:
-DN
-Image by:
-
-GitHub StarTrack for ToolJet. (Navaneeth PK, CC BY-SA 4.0)
+ToolJet GitHub StarTrack (Navaneeth PK, CC BY-SA 4.0)
### 获得资助
-DN
-### Getting funding
+ToolJet 项目在 GitHub 上的吸引力足以被风投(VC)世界注意到。发布之后的日子被各种来电挤满了。我们也有其他的选择,但从没有认真考虑过这些它们。这些选择包括:
-ToolJet 项目在 GitHub 上的吸引力足以被风投(VC)世界注意到。发布之后的日子被各种来电挤满了。我们有了其他的选择,但从没有认真考虑过这些它们。这些选择包括:
+- Bootstrapping:在项目初期,难以获得付费用户,而我此前也没有足够的存款来支撑整个项目。
-DN
-The traction on GitHub was enough to be noticed by the venture capitalist (VC) world. The days following the launch were packed with calls. We had other options, but did not consider seriously consider them, including:
+- 作为业余项目构建:在开发小型项目上这是可以的,但我不认为这在 ToolJet 的开发上行得通,毕竟在 ToolJet 平台能够为客户所用之前我们需要创建大量的集成和 UI 控件。作为一个业余项目,要实现这些可能需要花费数月甚至数年时间。
-- Bootstrapping: During the early stages of the product, it was hard to find paying customers, and I did not have enough savings to fund the project until that happened.
-- Building as a side project: While this strategy works great for smaller projects, I didn't feel it would work for ToolJet because we needed to create dozens of integrations and UI widgets before the platform could become useful for customers. As a side project, it might take months or years to achieve that.
+我知道如果将 ToolJet 作为一个业余项目来开发,我可能需要花几个月的时间才能达到我期望的程度。而我希望通过扩大团队加速项目的成熟。鉴于该项目的吸引力,引入风险投资(VC)的资助是显而易见的选择。
-I knew it could take months to build the platform I wanted if ToolJet became just a side project. I wanted to accelerate growth by expanding the team, and VC funding was the obvious choice, given the traction.
+好消息是在 HackNews 上发布之后的两周内我们成功募集了[155万美元的资金][5]。
-The good news is that we raised[$1.55 million in funding][5] within two weeks of the HN launch.
+### 在开源中积累很重要
-### Stack matters in open source
+发布后不久,我们发现许多人希望为 ToolJet 项目做贡献,但是他们几乎都是 JavaScript 开发者。我们也意识到像 ToolJet 这样的项目在未来会有成百上千的数据接口,只有基于插件的架构才行得通。我们于2021年8月决定从 Ruby 迁移到 TypeScript 上来。即使这花费了一个月的时间和巨大的努力,这仍然是我们在 ToolJet 项目上作出的最正确的决定。今天,我们有一个由我们的[插件开发套件][6]支持的可扩展的基于插件的架构。我们获得了来自超过200名开发者的贡献。关于这次迁移的文章参见[这篇博客][7]和[另一篇博客][8]
-Soon after the launch, we found that many people wanted to contribute to ToolJet, but they were mostly JavaScript developers. We also realized that for a framework like ToolJet that in the future should have hundreds of data source connectors, only a plugin-based architecture made sense. We decided to migrate from Ruby to TypeScript in August 2021. Even though this took about a month and significant effort, this was one of the best decisions we've made for the project. Today, we have an extensible plugin-based architecture powered by our [plugin development kit][6]. We have contributions from over 200 developers. We've written extensively about this migration [here][7] and [here][8].
+### 发布 v1.0 版本
-### Launching v1.0
+自8月份以后,很多用户已经在生产环境中使用 ToolJet ,该平台并没有出现过任何稳定性或扩展性的问题。我们准备在发布 v1.0 版本之前完成开发人员平台的功能。开发人员平台允许任何 JavaScript 开发者构建和发布 ToolJet 插件。这样开发人员就可以为 ToolJet 开发数据接口。把集成测试的时间算上,创建一个 ToolJet 接口的时间也只需要30分钟。
-Many users have been using ToolJet on production environments since August, and the platform did not show any stability or scalability issues. We were waiting to wrap up the developer platform feature before we called it v1.0. The ToolJet developer platform allows any JavaScript developer to build and publish plugins for ToolJet. Developers are now able to make connectors for ToolJet. Creating a ToolJet connector can take just 30 minutes, including integration tests.
-
-### Building a growing community
+### 创建持续成长的社区
![ToolJet star history][9]
-Image by:
+图片来源:
ToolJet Star History (Navaneeth PK, CC BY-SA 4.0)
-We didn't spend money on marketing. Most of our efforts in spreading the news about ToolJet have been writing about our learnings and being active in developer communities. We have a team of three members who take care of community queries.
+我们没有在销售上投入资金,我们的大部分精力都放在了传播 ToolJet 的消息、撰写我们的经验教训以及维持开发社区的活跃上。我们有一个关注社区里问题的三人团队。
-### The business model
-ToolJet won't be a sustainable business without a [commercial product][10] to pay the bills. We've built an enterprise edition of ToolJet, for which customers must pay. There's no limit on usage for the free community edition, and additional features in the enterprise edition are relevant only to large teams. We have very large companies as paying customers right now, but we haven't started monetizing ToolJet aggressively. We have enough money left in the bank to build an even better ToolJet, so our focus currently is on product improvement.
+### 商业模式
-### What's next?
+如果没有[商业产品][10]来支付账单 ToolJet 无法成为一项可持续的业务。我们构建了 ToolJet 的客户必须付费的企业版本。ToolJet 的免费的社区版本没有任何使用限制,企业版中的额外功能都只与大型团队有关。我们现在的客户已经有超大型公司。我们有足够的银行存款来打造更好的 ToolJet ,因此我们目前正聚焦于产品提升上。
-We frequently release better versions of ToolJet with the help of constant feedback and contributions from the open source community. Many major improvements and dozens of connectors and UI components are in progress. We're moving faster than ever towards our initial goal of being the open framework that can connect to hundreds of data sources and build even the most complicated user interfaces!
+### 接下来做什么
+
+我们在消费者反馈的帮助以及开源社区的贡献下经常性发布更好的 ToolJet 版本。很多主要的优化、大量的数据接口以及 UI 组件正在开发进程中。为了实现我们成为能够连接大量数据源并构建更复杂的用户界面的开源框架的初心,我们比以往行动得更加迅速。
--------------------------------------------------------------------------------
@@ -161,7 +98,7 @@ via: https://opensource.com/article/22/10/tooljet-open-source-journey
作者:[Navaneeth PK][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
+译者:[CanYellow](https://github.com/CanYellow)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From 850d82eec39096212041b4b63c640bc6bec64143 Mon Sep 17 00:00:00 2001
From: Bright Huang
Date: Wed, 14 Dec 2022 16:20:17 +0800
Subject: [PATCH 036/266] move file
---
.../talk/20221019.5 ⭐️⭐️ Our open source startup journey.md | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename {sources => translated}/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md (100%)
diff --git a/sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
similarity index 100%
rename from sources/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
rename to translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
From 7404c64fdcc02b4524771e014beb7e384e75d076 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 14 Dec 2022 17:16:03 +0800
Subject: [PATCH 037/266] RP
@chai001125
https://linux.cn/article-15347-1.html
---
...inux su vs sudo- what-s the difference-.md | 152 ++++++++++++++++++
...inux su vs sudo- what-s the difference-.md | 151 -----------------
2 files changed, 152 insertions(+), 151 deletions(-)
create mode 100644 published/20220628 Linux su vs sudo- what-s the difference-.md
delete mode 100644 translated/tech/20220628 Linux su vs sudo- what-s the difference-.md
diff --git a/published/20220628 Linux su vs sudo- what-s the difference-.md b/published/20220628 Linux su vs sudo- what-s the difference-.md
new file mode 100644
index 0000000000..e0c0890a8a
--- /dev/null
+++ b/published/20220628 Linux su vs sudo- what-s the difference-.md
@@ -0,0 +1,152 @@
+[#]: subject: "Linux su vs sudo: what's the difference?"
+[#]: via: "https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin"
+[#]: author: "David Both https://opensource.com/users/dboth"
+[#]: collector: "lkxed"
+[#]: translator: "chai001125"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15347-1.html"
+
+Linux 中的 su 和 sudo 命令有什么区别?
+======
+
+> 本文将比较非 root 用户提权为 root 用户的两个 Linux 命令 的区别。
+
+![][0]
+
+`su` 和 `sudo` 命令都允许用户执行非特权用户不允许做的系统管理任务,即只有 root 用户能执行的命令。有些人更喜欢 `sudo` 命令:例如 [Seth Kenlon][2] 最近发布的一篇 《[在 Linux 上使用 sudo 的 5 个理由][3]》,他在其中详细阐述了 `sudo` 命令的许多优点。
+
+但是,相较于 `sudo` 命令,我**更偏好于 `su` 命令** 来做系统管理工作。在本文中,我比较了这两个命令的区别,并解释了为什么我更喜欢 `su` 而不是 `sudo`,但我仍然同时使用这两个命令的原因。
+
+### 过去的系统管理员主要使用 su 命令
+
+`su` 和 `sudo` 命令是为**不同的世界**设计的。早期的 Unix 计算机需要全职系统管理员,他们使用 root 用户作为唯一的管理帐户。在这个古老的世界里,有管理员密码的人会在电传打字机或 CRT 终端(例如 DEC VT100)上以 root 用户登录,然后执行一些管理 Unix 计算机的工作。
+
+管理员还会有一些非 root 帐户,用于执行一些非 root 的任务,例如编写文档和管理电子邮件等。在这些 Unix 计算机上通常有许多非 root 帐户,他们都不需要完全的 root 访问权限,只需要以 root 权限运行很少的命令,大约 1 至 2 个就可以了。许多系统管理员以 root 用户登录,完成 root 工作,并在任务完成后,退出 root 会话。有时候,系统管理员需要整天以 root 用户来登录,因为 `sudo` 命令需要键入更多的内容才能运行必要的命令,因此大多数系统管理员很少使用 `sudo` 命令。
+
+`sudo` 和 `su` 这两个命令都能够提权为 root 用户,但它们实现的方式大不相同。这种差异是由于它们**最初打算用于不同的情况**。
+
+### sudo 命令
+
+`sudo` 命令的初衷是让 root 用户能够让几个非 root 用户访问他们经常需要的一两个特权命令。`sudo` 命令允许非 root 用户暂时地获得更高权限,来执行一些特权命令,例如添加和删除用户、删除属于其他用户的文件、安装新软件以及管理现代 Linux 主机所需的任何命令。
+
+`sudo` 命令允许非 root 用户访问一两个 _需要更高权限_ 的常用命令,这样可以帮助系统管理员节省来自用户的许多请求,并减少等待时间。`sudo` 命令不会将用户帐户切换为 root 用户,因为大多数非 root 用户永远不应该拥有完全的 root 访问权限。在大多数情况下,`sudo` 允许用户执行一两个命令,然后提权就会过期。在这个通常为 5 分钟的短暂的提权时间内,用户可以执行任何需要提权的管理命令。需要继续使用提权的用户可以运行 `sudo -v` 命令来重新验证 root 访问权限,并将提权时间再延长 5 分钟。
+
+使用 `sudo` 命令还有一些副作用,例如生成非 root 用户使用命令的日志条目及其 ID。这些日志可以在之后作为出现问题的检验,来给用户更多的操作培训。(你以为我会说“问责”用户,对吧?)
+
+### su 命令
+
+`su` 命令能够将非 root 用户提权到 root 权限 —— 事实上,能让非 root 用户成为 root 用户。唯一的要求是用户知道 root 密码。因为用户已经以 root 权限登录,所以之后的操作就没有限制了。
+
+`su` 命令所提供的提权没有时间限制。用户可以作为 root 执行命令,不需要进行重新验证是否有 root 权限。完成任务后,用户可以执行退出命令 `exit`,从 root 用户恢复到自己原来的非 root 帐户。
+
+### su 和 sudo 在使用上的争议和变化
+
+最近在 `su` 与 `sudo` 的使用上存在一些分歧。
+
+> 真正的系统管理员不会使用 `sudo`。—— Paul Venezia
+
+Venezia 在他的 [InfoWorld 文章][4] 中辩称,对于许多担任系统管理员的人来说,`sudo` 是一个不必要的工具。他没有花太多时间为这个观点进行解释,他只是把它说成了一个事实。我同意他对于系统管理员的观点,因为我们不需要 `sudo` 来完成我们的工作。事实上,`sudo` 使得事情变得更复杂了。
+
+然而,
+
+> 时代在“改变”。—— Bob Dylan
+
+Bob Dylan 是对的,尽管他唱的歌不是指计算机(LCTT 译注:Bob Dylan 是美国创作歌手、艺术家和作家,这里指他不是针对于电脑而说的)。
+
+自从人手一台的**个人计算机**时代到来,计算机的管理方式发生了重大变化。在许多环境中,计算机的使用者也是它的管理员,这使得为这些用户提供一些对 root 权限的访问是有必要的。
+
+一些现代发行版,例如 Ubuntu 及其衍生版本,只能使用 `sudo` 命令来执行特权命令。在这些发行版中,用户无法直接以 root 用户身份登录,甚至无法通过 `su` 切换到 root,因此需要 `sudo` 命令来允许非 root 用户获得 root 权限。在这一环境中,所有系统管理任务均使用 `sudo` 来执行。
+
+通过锁定 root 帐户并将常规用户帐户添加到“轮子”组(`wheel`),可以实现此配置,但是这种配置很容易被绕过。接下来,让我们在 Ubuntu 主机或虚拟机上尝试一些小实验吧。我在这里说明一些我的设置,以便你可以根据需要来重现它。我安装的是 Ubuntu 16.04 LTS1,并使用 VirtualBox 将其安装在虚拟机中。在安装过程中,我创建了一个非 root 用户 `student`,为了简便起见我给这个用户设置了一个简单的密码。
+
+以 `student` 用户身份登录 Ubuntu,并打开终端。查看 `/etc/shadow` 文件中的 root 条目,其中存储了经哈希的密码。
+
+```
+student@ubuntu1:~$ cat /etc/shadow
+cat: /etc/shadow: Permission denied
+```
+
+可以看到终端拒绝了我们对 `/etc/shadow` 的访问,因此我们无法查看 `/etc/shadow` 文件。所有发行版都是如此,以防止非特权用户看到和访问加密的密码,因为非特权用户可能会使用常见的黑客工具来破解这些密码。
+
+现在,让我们使用 `su -` 命令来成为 root 用户。
+
+```
+student@ubuntu1:~$ su -
+Password:
+su: Authentication failure
+```
+
+认证失败的原因是因为 root 帐户没有密码、并且被锁定了。接下来,使用 `sudo` 命令查看 `/etc/shadow` 文件。
+
+```
+student@ubuntu1:~$ sudo cat /etc/shadow
+[sudo] password for student:
+root:!:17595:0:99999:7:::
+<截取>
+student:$6$tUB/y2dt$A5ML1UEdcL4tsGMiq3KOwfMkbtk3WecMroKN/:17597:0:99999:7:::
+<截取>
+```
+
+在这里,我仅截取了部分结果,只显示 root 和 `student` 用户的条目。我还缩短了加密密码,以便该条目能显示在一行中。各个字段以冒号(`:`)分隔,第二个字段是密码。请注意,root 的密码字段是一个感叹号(`!`),这表明 root 帐户已被锁定,且无法使用。
+
+现在,要将 root 帐户变成一个合适的系统管理员,你只需为 root 帐户设置密码。
+
+```
+student@ubuntu1:~$ sudo su -
+[sudo] password for student:
+root@ubuntu1:~# passwd root
+Enter new UNIX password:
+Retype new UNIX password:
+passwd: password updated successfully
+root@ubuntu1:~#
+```
+
+现在,你可以直接以 root 身份登录到控制台,或者直接使用 `su` 登录到 root,而不是在每个命令前都加一个 `sudo`。当然,你也可以在每次想以 root 身份登录时,使用 `sudo su -`,但这又是何必呢?
+
+请不要误解我的意思。像 Ubuntu 这样的发行版及其上下游衍生版非常好,多年来我已经使用了其中的几个。在使用 Ubuntu 和相关发行版时,我做的第一件事就是设置一个 root 密码,这样我就可以直接以 root 身份登录。其他发行版,如 Fedora 及其相关发行版,现在在安装过程中提供了一些有趣的选择。我注意到的第一个 Fedora 版本是 Fedora 34,我在写我的一本即将出版的书时安装了很多次。
+
+在安装页面上,可以找到其中一个安装选项,来设置 root 密码。这个新选项允许用户选择“锁定 root 帐户 Lock root account ”,就像 Ubuntu 锁定 root 帐户的方式一样。此页面上还有一个选项,允许使用密码以 root 身份远程 SSH 登录到此主机,但这仅在 root 帐户解锁时有效。第二个选项位于允许创建非 root 帐户的页面上。此页面上的选项之一是“让此用户成为管理员 Make this user administrator ”。选中此选项后,用户 ID 将添加到一个名为 `wheel` 组的特殊组中,该组授权该组的成员使用 `sudo` 命令。Fedora 36 甚至在该复选框的描述中提到了 `wheel` 组。
+
+可以将多个非 root 用户设置为管理员。使用此方法指定为管理员的任何人都可以使用 `sudo` 命令在 Linux 计算机上执行所有管理任务。Linux 在安装时只允许创建一个非 root 用户,所以其他新用户可以在创建时添加到 `wheel` 组中。root 用户或其他管理员可以使用文本编辑器或 `usermod` 命令直接将现有用户添加到 `wheel` 组。
+
+在大多数情况下,今天的管理员只需要执行一些基本任务,例如添加新的打印机、安装更新或新软件,或者删除不再需要的软件。这些 GUI 工具需要 root 或管理密码,并将接受来自管理员用户的密码。
+
+### 在 Linux 上,我是怎么使用 su 和 sudo 的呢
+
+我**同时使用 `su` 和 `sudo`**。它们都是我所使用的很重要的系统管理员工具。
+
+我不锁定 root 帐户,因为我需要用 root 帐户来运行我的 [Ansible][5] 脚本和我编写的 [rsbu][6] Bash 程序,来执行备份。这两个程序都需要以 root 身份运行,我编写的其他几个管理 Bash 的脚本也是如此。我**使用 `su` 命令**切换到 root 用户,这样我就可以执行这些脚本和许多其他常见的命令。当我需要确定问题和解决问题时,使用 `su` 命令将我的权限提升到 root 十分有用,因为我不希望 `sudo` 带来的提权会话超时。
+
+当非 root 用户需要执行这些任务时,我**使用 `sudo` 命令**,来执行需要 root 权限的任务。我在 `sudoers` 文件中设置了非 root 帐户,只允许访问完成任务所需的一两个命令。当我只需要运行一两个需要提权的快速命令时,我自己也会使用 `sudo` 命令。
+
+### 结论
+
+实际上只要你把工作完成好了,你使用什么工具都无大碍。你使用的是 Vim 还是 Emacs,是 systemd 还是 SystemV,是 RPM 亦或是 DEB,是 `sudo` 亦或是 `su`,在结果上会有什么区别呢?这里的关键在于你应该使用**最适合你的工具**。Linux 和开源软件的最大优势之一是通常有许多选项可用于我们需要完成的任务。
+
+`su` 和 `sudo` 都各有长处,如果正确使用的话,两者都是非常安全的。我选择同时使用 `su` 和 `sudo` 命令,基于它们的历史功能,因为这对我来说十分有用。对于我自己的大部分工作,我更喜欢 `su` 命令,因为它与我的工作流程最适配。
+
+在评论区分享你喜欢的工作方式吧!
+
+本文摘自于我的书《系统管理员的 Linux 哲学The Linux Philosophy for Sysadmins(Apress,2018 年)》一书的第 19 章,并经许可后重新发布。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin
+
+作者:[David Both][a]
+选题:[lkxed][b]
+译者:[chai001125](https://github.com/chai001125)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/dboth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png
+[2]: https://opensource.com/users/seth
+[3]: https://opensource.com/article/22/5/use-sudo-linux
+[4]: http://www.infoworld.com/t/unix/nine-traits-the-veteran-unix-admin-276?page=0,0&source=fssr
+[5]: https://opensource.com/article/20/10/first-day-ansible
+[6]: https://opensource.com/article/17/1/rsync-backup-linux
+[0]: https://img.linux.net.cn/data/attachment/album/202212/14/171220a47je4l0teaonzos.jpg
\ No newline at end of file
diff --git a/translated/tech/20220628 Linux su vs sudo- what-s the difference-.md b/translated/tech/20220628 Linux su vs sudo- what-s the difference-.md
deleted file mode 100644
index 7b8efbc4d5..0000000000
--- a/translated/tech/20220628 Linux su vs sudo- what-s the difference-.md
+++ /dev/null
@@ -1,151 +0,0 @@
-[#]: subject: "Linux su vs sudo: what's the difference?"
-[#]: via: "https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin"
-[#]: author: "David Both https://opensource.com/users/dboth"
-[#]: collector: "lkxed"
-[#]: translator: "chai001125"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Linux 中的 `su` 和 `sudo` 命令有什么区别呢?
-======
-
->本文将比较 非 root 用户 non-root user 提权为 root 用户的两个 **Linux 命令** 的区别。
-
-![bash logo on green background][1]
-
-`su` 和 `sudo` 命令都允许用户执行非特权用户不允许做的系统管理任务,即只有 root 用户能执行的命令。有些人更喜欢 `sudo` 命令:例如 [Seth Kenlon][2] 最近发布的一篇 [《在 Linux 上使用 `sudo` 的 5 个理由》][3],他在其中详细阐述了 `sudo` 命令的许多优点。
-
-但是,相较于 `sudo` 命令,我**更偏好于 `su` 命令**,来做系统管理工作。在本文中,我比较了这两个命令的区别,并解释了为什么我更喜欢 `su` 而不是 `sudo`,但我仍然同时使用这两个命令的原因。
-
-### 过去的系统管理员主要使用 `su` 命令
-
-`su` 和 `sudo` 命令是为**不同的世界**设计的。早期的 Unix 计算机需要全职系统管理员,他们使用 root 用户作为唯一的管理帐户。在这个古老的世界里,有管理员密码的人会在电传打字机或 CRT 终端(例如 DEC VT100)上以 root 用户登录,然后执行一些管理 Unix 计算机的工作。
-
-root 用户还有一个非 root 帐户,用于执行一些非 root 的任务,例如编写文档和管理电子邮件等。在这些 Unix 计算机上通常有许多非 root 帐户,他们都不需要完全的 root 访问权限,只需要以 root 权限运行很少的命令,大约 1 至 2 个就可以了。许多系统管理员以 root 用户登录,完成 root 工作,并在任务完成后,退出 root 会话。系统管理员需要整天以 root 用户来登录,因为 `sudo` 命令需要键入更多的内容才能运行基本命令,因此大多数系统管理员很少使用 `sudo` 命令。
-
-`sudo` 和 `su` 这两个命令都能够提权为 root 用户,但它们实现的方式大不相同。这种差异是由于它们**最初打算用于不同的情况**。
-
-### `sudo` 命令
-
-`sudo` 命令的初衷是让 root 用户能够将他们定期需要的 1 到 2 个特权命令委托给 1 至 2 个非 root 用户。`sudo` 命令允许非 root 用户暂时地获得更高权限,来执行一些特权命令,例如添加和删除用户、删除属于其他用户的文件、安装新软件以及管理现代 Linux 主机所需的任何命令。
-
-`sudo` 命令允许非 root 用户访问 1 到 2 个 _需要更高权限_ 的常用命令,这样可以帮助系统管理员节省来自用户的许多请求,并减少等待时间。`sudo` 命令不会将用户帐户切换为 root 用户,因为大多数非 root 用户永远不应该拥有完全的 root 访问权限。在大多数情况下,`sudo` 允许用户执行 1 或 2 个命令,然后提权就会过期。在这个通常为 5 分钟的短暂的提权时间内,用户可以执行任何需要提权的管理命令。需要继续使用提权的用户可以运行 `sudo -v` 命令来重新验证 root 访问权限,并将提权时间再延长 5 分钟。
-
-使用 `sudo` 命令还有一些副作用,例如生成非 root 用户使用命令的日志条目及其 ID。这些日志可以在之后作为出现问题的检验,来给用户更多的操作培训。你以为我会说“责备”用户,对吗?
-
-### `su` 命令
-
-`su` 命令能够将非 root 用户提权到 root 权限——事实上,能让非 root 用户成为 root 用户。唯一的要求是用户知道根密码。因为用户已经以 root 权限登录,所以之后的操作就没有限制了。
-
-`su` 命令所提供的提权没有时间限制。用户可以作为 root 执行命令,不需要进行重新认证是否有 root 权限。完成任务后,用户可以执行退出命令 `exit`,从 root 用户恢复到自己原来的非 root 帐户。
-
-### `su` 和 `sudo` 在使用上的争议和变化
-
-最近在 `su` 与 `sudo` 的使用上存在一些分歧。
-
-> 真正的系统管理员不会使用 `sudo`。——保罗·威尼斯(Paul Venezia)
-
-Venezia 在他的 [InfoWorld 文章][4] 中辩称,对于许多担任系统管理员的人来说,`sudo` 是一个不必要的工具。他没有花太多时间为这个观点进行解释,他只是把它说成了一个事实。我同意他对于系统管理员的观点,因为我们不需要 `sudo` 来完成我们的工作。事实上,`sudo` 使得事情变得更复杂了。
-
-然而,
-
-> 这时代正在“变革”当中。——鲍勃·迪伦
-
-迪伦是对的,尽管他没有为电脑唱歌(LCTT 译注:鲍勃·迪伦是美国创作歌手、艺术家和作家,这里指他不是针对于电脑而说的)。
-
-自从**个人计算机**时代到来以来,计算机的管理方式发生了重大变化。在许多环境中,计算机的使用者也是它的管理员,这使得为这些用户提供一些对 root 权限的访问是有必要的。
-
-一些现代发行版,例如 Ubuntu 及其衍生版本,只能使用 `sudo` 命令来执行特权命令。在这些发行版中,用户无法直接以 root 用户身份登录,甚至无法通过 `su` 切换到 root,因此需要 `sudo` 命令来允许非 root 用户获得 root 权限。在这一环境中,所有系统管理任务均使用 `sudo` 来执行。
-
-通过锁定 root 帐户并将常规用户帐户添加到 wheel 组,可以进行此配置,但是这种配置很容易被绕过。接下来,让我们在任何 Ubuntu 主机或 VM 上尝试一些小实验吧。我在这里说明一些我实验的设置,以便你可以根据需要来重现它。我安装的是 Ubuntu 16.04 LTS1,并使用 VirtualBox 将其安装在 VM 中。在安装过程中,我创建了一个非 root 用户 `student`,为了简便起见我给这个用户设置了一个简单的密码。
-
-以 `student` 用户身份登录 Ubuntu,并打开终端。查看 `/etc/shadow` 文件中的 root 条目,其中存储了经哈希的密码。
-
-```
-student@ubuntu1:~$ cat /etc/shadow
-cat: /etc/shadow: Permission denied
-```
-
-可以看到终端拒绝了我们对 `/etc/shadow` 的访问,因此我们无法查看 `/etc/shadow` 文件。所有发行版都是如此,以防止非特权用户看到和访问加密的密码,因为非特权用户可能会使用常见的黑客工具来破解这些密码。
-
-现在,让我们使用 `su -` 命令来成为 root 用户。
-
-```
-student@ubuntu1:~$ su -
-Password:
-su: Authentication failure
-```
-
-认证失败的原因是因为根帐户没有密码、并且被锁定了。接下来,使用 `sudo` 命令查看 `/etc/shadow` 文件。
-
-```
-student@ubuntu1:~$ sudo cat /etc/shadow
-[sudo] password for student:
-root:!:17595:0:99999:7:::
-
-student:$6$tUB/y2dt$A5ML1UEdcL4tsGMiq3KOwfMkbtk3WecMroKN/:17597:0:99999:7:::
-
-```
-
-在这里,我仅截取了部分结果,只显示 root 和 `student` 用户的条目。我还缩短了加密密码,以便该条目能显示在一行中。各个字段以冒号(`:`)分隔,第二个字段是密码。请注意,root 的密码字段是一个感叹号(`!`),这表明 root 帐户已被锁定,且无法使用。
-
-现在,要将根帐户变成一个合适的系统管理员,你只需为根帐户设置密码。
-
-```
-student@ubuntu1:~$ sudo su -
-[sudo] password for student:
-root@ubuntu1:~# passwd root
-Enter new UNIX password:
-Retype new UNIX password:
-passwd: password updated successfully
-root@ubuntu1:~#
-```
-
-现在,你可以直接以 root 身份登录到控制台,或者直接使用 `su` 登录到 root,而不是在每个命令前都加一个 `sudo`。当然,你也可以在每次想以 root 身份登录时,使用 `sudo su -`,但这又是何必呢?
-
-请不要误解我的意思。像 Ubuntu 这样的发行版非常好,多年来我已经使用了其中的几个。在使用 Ubuntu 和相关发行版时,我做的第一件事就是设置一个 root 密码,这样我就可以直接以 root 身份登录。其他发行版,如 Fedora 及其相关发行版,现在在安装过程中提供了一些有趣的选择。我注意到的第一个 Fedora 版本是 Fedora 34,我在写我的一本即将出版的书时安装了很多次。
-
-在安装页面上,可以找到其中一个安装选项,来设置 root 密码。这个新选项允许用户以锁定 Ubuntu root 帐户的方式选择“锁定 root 帐户 Lock root account ”。此页面上还有一个选项,允许使用密码以 root 身份远程 SSH 登录到此主机,但这仅在 root 帐户解锁时有效。第二个选项位于允许创建非根用户帐户的页面上。此页面上的选项之一是“让此用户成为管理员 Make this user administrator ”。选中此选项后,用户 ID 将添加到一个名为 wheel 组的特殊组中,该组授权该组的成员使用 `sudo` 命令。Fedora 36 甚至在该复选框的描述中提到了 wheel 组。
-
-可以将多个非 root 用户设置为管理员。使用此方法指定为管理员的任何人都可以使用 `sudo` 命令在 Linux 计算机上执行所有管理任务。Linux 在安装时只允许创建一个非 root 用户,所以其他新用户可以在创建时添加到 wheel 组中。root 用户或其他管理员可以使用文本编辑器或 `usermod` 命令直接将现有用户添加到 wheel 组。
-
-在大多数情况下,今天的管理员只需要执行一些基本任务,例如添加新的打印机、安装更新或新软件,或者删除不再需要的软件。这些 GUI 工具需要 root 或管理密码,并将接受来自管理员用户的密码。
-
-### 在 Linux 上,我是怎么使用 `su` 和 `sudo` 的呢
-
-我**同时使用 `su` 和 `sudo`**。它们都是我所使用的很重要的系统管理员工具。
-
-我不锁定根帐户,因为我需要用根帐户来运行我的 [Ansible][5] 脚本和我编写的 [rsbu][6] Bash 程序,来执行备份。这两个程序都需要以 root 身份运行,我编写的其他几个管理 Bash 的脚本也是如此。我**使用 `su` 命令**,切换到 root 用户,这样我就可以执行这些脚本和许多其他常见的命令。当我需要确定问题和解决问题时,使用 `su` 命令将我的权限提升到 root 十分有用,因为我不希望 `sudo` 带来的提权会话超时。
-
-当非 root 用户需要执行这些任务时,我**使用 `sudo` 命令**,来执行需要 root 权限的任务。我在 sudoers 文件中设置了非根帐户,只允许访问完成任务所需的 1 到 2 个命令。当我只需要运行 1 个或 2 个需要提权的快速命令时,我自己也会使用 `sudo` 命令。
-
-### 结论
-
-实际上只要你把工作完成好了,你使用什么工具都无大碍。你使用的是 vim 还是 Emacs,是 systemd 还是 SystemV,是 RPM 亦或是 DEB,是 `sudo` 亦或是 `su`,在结果上会有什么区别呢?这里的关键在于你应该使用**最适合你的工具**。Linux 和开源软件的最大优势之一是通常有许多选项可用于我们需要完成的任务。
-
-`su` 和 `sudo` 都各有长处,如果正确使用的话,两者都是非常安全的。我选择同时使用 `su` 和 `sudo` 命令,基于它们的历史功能,因为这对我来说十分有用。对于我自己的大部分工作,我更喜欢 `su` 命令,因为它与我的工作流程最适配。
-
-在评论区分享你喜欢的工作方式吧!
-
-本文摘自于我的书《系统管理员的 Linux 方法(Apress,2018 年)》(The Linux Philosophy for Sysadmins)一书的第 19 章,并经许可后重新发布。
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin
-
-作者:[David Both][a]
-选题:[lkxed][b]
-译者:[chai001125](https://github.com/chai001125)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/dboth
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png
-[2]: https://opensource.com/users/seth
-[3]: https://opensource.com/article/22/5/use-sudo-linux
-[4]: http://www.infoworld.com/t/unix/nine-traits-the-veteran-unix-admin-276?page=0,0&source=fssr
-[5]: https://opensource.com/article/20/10/first-day-ansible
-[6]: https://opensource.com/article/17/1/rsync-backup-linux
From d4656495935e0d992b7ecc797d5ec35dbd231463 Mon Sep 17 00:00:00 2001
From: CanYellow
Date: Wed, 14 Dec 2022 17:47:05 +0800
Subject: [PATCH 038/266] =?UTF-8?q?Update=2020221028.1=20=E2=AD=90?=
=?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Write=20documentation=20like=20yo?=
=?UTF-8?q?u=20develop=20code.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...20221028.1 ⭐️⭐️ Write documentation like you develop code.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
index eb64f1fb7a..1aea7321f7 100644
--- a/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
+++ b/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/10/docs-as-code"
[#]: author: "Lorna Mitchell https://opensource.com/users/lornajane"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "CanYellow"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From bc6b3a109fd9b1f5073ad095c7e2117744406875 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Wed, 14 Dec 2022 18:42:43 +0800
Subject: [PATCH 039/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221214.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Ex?=
=?UTF-8?q?perience=20Linux=20desktop=20nostalgia=20with=20Rox.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️ Experience Linux desktop nostalgia with Rox.md | 104 ++++++++++++++++++
1 file changed, 104 insertions(+)
create mode 100644 sources/tech/20221214.0 ⭐️⭐️ Experience Linux desktop nostalgia with Rox.md
diff --git a/sources/tech/20221214.0 ⭐️⭐️ Experience Linux desktop nostalgia with Rox.md b/sources/tech/20221214.0 ⭐️⭐️ Experience Linux desktop nostalgia with Rox.md
new file mode 100644
index 0000000000..301f8b485e
--- /dev/null
+++ b/sources/tech/20221214.0 ⭐️⭐️ Experience Linux desktop nostalgia with Rox.md
@@ -0,0 +1,104 @@
+[#]: subject: "Experience Linux desktop nostalgia with Rox"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-rox"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Experience Linux desktop nostalgia with Rox
+======
+
+Rox-Filer is an open source file manager for Linux, once intended for the defunct Rox desktop but now a streamlined application for any window manager or desktop. There hasn't been much activity on the Rox project since 2014, and even then it is mostly in maintenance mode. And that's part of Rox-Filer's charm. In a way, Rox-Filer is a snapshot of an old desktop style that was progressive for its time but has given way to a more or less standardized, or at least conventional, interface.
+
+### Install Rox-Filer
+
+On Linux, your distribution's software repository may have Rox available for install. For instance, Debian packages it:
+
+```
+$ sudo apt install rox-filer
+```
+
+If your Linux distribution doesn't package Rox-Filer but you want to try it out, you can [compile from source][1] by downloading the [source code][2], installing its build dependencies, and then compiling:
+
+```
+$ sudo dnf install gtk2-devel libSM-devel \
+ shared-mime-info glade-libs xterm
+$ wget https://codeload.github.com/rox-desktop/rox-filer/zip/refs/heads/master
+$ unzip rox*zip
+$ cd rox-filer-master
+$ ./ROX-Filer/AppRun
+```
+
+### Configuring Rox
+
+The Rox file manager is based on the look and feel of RISC OS, an operating system developed by Acorn in Cambridge England (the same group responsible for the popular Arm microprocessor). Today, there's an [open source RISC OS][3] you can install on a Raspberry Pi, but for now, Rox is close enough.
+
+Rox has a simple layout. It has no menu bar, but there's a toolbar across the top, and the file panel is at the bottom.
+
+![Image of the Rox file manager.][4]
+
+As with the KDE Plasma Desktop, the default action of a single click in Rox is to open an item, whether it's a folder or a file. Unfortunately, no version of Rox, either packaged or compiled directly from the source, seems to be completely integrated with the mimetype definitions of the modern Linux desktop. For instance, Rox on CentOS renders an error when I click on even a basic text file, while the packaged version of Rox on Debian opens a plain text file but not a JPEG or archive file. You can fix this by setting a **Run Action** in the right-click context menu.
+
+![Setting a run action in the Rox file manager.][5]
+
+Setting a run action can have broad definitions, so you don't have to set a separate run action for JPEG, PNG, WEBP, and all other image types, instead set the same run command for all mimetypes starting with `image`.
+
+Once you set that, you're ready to manage files with Rox.
+
+### Navigation
+
+You can navigate through your file system using the arrow icon in the top toolbar. The **Up** arrow takes you to the parent directory of your current location (in other words, the folder your current folder is in). To descend into a folder, click on it.
+
+### Refreshing the view
+
+Rox may not redraw the screen for every action, so sometimes you may need to prompt it to refresh. Click the **Circle** arrow in the Rox toolbar to refresh your current location's contents.
+
+### Copy or move a file
+
+There are two ways to copy or move a file in Rox. First, you can launch a second Rox window and drag and drop files from one window to the other. When you do, you're prompted to copy, move, or link the item you've dropped.
+
+Alternatively, you can right-click an item and open the **File** submenu from the context menu. In the **File** submenu, choose **Copy** and then enter the destination path for the item you want to move or copy. After you've confirmed that the file has successfully been copied to the target location, you can optionally select the item again, choosing **Delete** from the **File** menu.
+
+### Options
+
+You can customize some aspects of Rox by selecting **Options** from the right-click menu. This brings up a Rox configuration screen that's admittedly only partially relevant to Rox. The Rox options assume you're running a window manager, like [Windowmaker][6] which provides a traditional dock (or "pinboard" in Rox terminology). I wasn't able to get the pinboard options to work on [Fluxbox][7], my preferred window manager, or Windowmaker. In both cases, the window manager handled iconified windows, and I wasn't able to configure Rox to override the control. It's possible that I wasn't drastic enough in some of my configurations, but considering that Linux window managers are very capable of managing iconified windows, the pinboard mechanism of Rox isn't a vital feature (and probably not as flexible as the window manager's options).
+
+The other options, however, still work as expected. For instance, Rox by default resizes its window size to fit the contents of a folder. When you change from a directory containing twelve items to a directory containing just three, Rox shrinks its footprint. I find this jarring, so I chose the **Never automatically resize** option, forcing Rox to stay whatever size I set.
+
+### Window commands
+
+Some of my favorite features are four menu items hidden away at the bottom of the **Window** submenu in the right-click context menu. They are:
+
+- **Enter path**: Enter an arbitrary path and change directory to it.
+- **Shell command**: Enter an arbitrary shell command and execute it.
+- **Terminal here**: Open a terminal at your current location.
+- **Switch to terminal**: Open a terminal at your current location, and close the Rox.
+
+I love options that allow for quick navigation or quick commands, so it's nice to have these close at hand.
+
+### Oldies
+
+Rox is a "blast from the past," whether or not you've ever used RISC OS or something like it. Rox represents a style of digital file management and even desktop configuration that just doesn't quite exist anymore. I've run Fluxbox, on and off again, at work and at home for the past decade, and I love manually configuring menus and configuration files. However, most of the Linux desktop has moved on from the conventions Rox relies upon. It's not impossible to make Rox fully functional, but it would take a lot of work, and most of what you'd be configuring are already provided by modern window managers and desktops. Even so, Rox is fun to use and experience. It's a great demonstration of how flexible a traditional Linux desktop setup was (and still can be, if you use only a window manager), and much of its charm is in its simplicity. I can't imagine a file manager today not having a dedicated move function, but Rox dares to force you to copy and delete instead. It's a different kind of file manager, and it might not be the one you use all day every day, but it's something you have to try if you miss, or literally missed, the "old days" of the Linux (or RISC OS) desktop.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-rox
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/21/11/compiling-code
+[2]: https://sourceforge.net/projects/rox/files/rox/
+[3]: https://www.riscosopen.org/content/downloads
+[4]: https://opensource.com/sites/default/files/2022-10/rox-filemanager.png
+[5]: https://opensource.com/sites/default/files/2022-10/rox-menu-run.png
+[6]: https://opensource.com/article/19/12/linux-window-maker-desktop
+[7]: https://opensource.com/article/19/12/fluxbox-linux-desktop
From cb6e568e4aba470434eacddee89a72523b1a07dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Wed, 14 Dec 2022 18:44:35 +0800
Subject: [PATCH 040/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221214.1=20=E2=AD=90=EF=B8=8F=20Microsoft=20Soundsca?=
=?UTF-8?q?pe=20to=20Go=20Open=20Source=20Marking=20the=20End=20of=20the?=
=?UTF-8?q?=20Project.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... Open Source Marking the End of the Project.md | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md
diff --git a/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md b/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md
new file mode 100644
index 0000000000..d18a3e8871
--- /dev/null
+++ b/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md
@@ -0,0 +1,73 @@
+[#]: subject: "Microsoft Soundscape to Go Open Source Marking the End of the Project"
+[#]: via: "https://news.itsfoss.com/microsoft-soundscape-open-source/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Microsoft Soundscape to Go Open Source Marking the End of the Project
+======
+
+Microsoft makes an excellent decision to open-source its innovative audio app.
+
+![Microsoft Soundscape to Go Open Source Marking the End of the Project][1]
+
+The [Soundscape project][2] was a fascinating experimental research effort undertaken by Microsoft to use sound-based technology to help visually impaired people navigate their surroundings.
+
+Launched back in 2017, it used 3D audio cues and augmented reality to enhance a user's awareness by guiding them through places.
+
+Soon after, they also launched an iOS app to showcase their progress.
+
+The app could use the iPhone's sensors to read out points of interest as the user walked past something or even roads and intersections to help them figure out where they were.
+
+**Unfortunately,** with a [recent announcement][3], Microsoft has decided not to continue further with the development of this project and will be making the **code open-source**.
+
+### Microsoft Soundscape Source Code to be Available on GitHub
+
+![Microsoft Soundscape - an Illustrated Demonstration][4]
+
+**What Happened?:** Well, according to Microsoft, it's natural to either stop or transition a few projects as they evolve their research portfolio.
+
+With this move, Microsoft hopes the community will take over and benefit from the 'novel experiences' they helped develop.
+
+They also add that:
+
+> As Microsoft Research continues to expand into new accessibility innovation areas, we hope the open-source software release of the Soundscape code supports the community in further developing confidence and utility of spatial audio navigation experiences.
+
+You know, this move is quite similar to the one made by ActiveState recently, where they discontinued Komodo IDE and made the code open-source to say thank you to its users.
+
+**What's Next?:** Starting **January 3, 2023**, the source code for Soundscape will be made available on GitHub. Developers are free to use the code in any manner they see fit.
+
+Furthermore, the iOS app will also be discontinued, and existing users can use it until June 2023.
+
+They will also stop taking new feature requests and only focus on bug fixes and general maintenance of the iOS app until the time comes.
+
+As for the Microsoft Soundscape Authoring app, it will no longer be available after January 17, 2023.
+
+Microsoft has also clarified that its other offerings would remain unaffected.
+
+### Community-Driven Approach Wins
+
+As was the case with Komodo IDE, a community-driven approach can be of great help for deprecated software.
+
+Where the community can get together and create something truly unique while also helping the end users add value to their lives.
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/microsoft-soundscape-open-source/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/microsoft-soundscape-goes-open-source.png
+[2]: https://www.microsoft.com/en-us/research/product/soundscape/
+[3]: https://www.microsoft.com/en-us/research/blog/microsoft-soundscape-new-horizons-with-a-community-driven-approach/
+[4]: https://youtu.be/v5DXykmOdJ8
From eae41d70bfffad4f20f8143418b91dee6e789136 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Wed, 14 Dec 2022 18:45:59 +0800
Subject: [PATCH 041/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221214.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Be?=
=?UTF-8?q?st=20Screen=20Recorders=20for=20Wayland=20in=20Linux=20[Compare?=
=?UTF-8?q?d=20&=20Tested].md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...orders for Wayland in Linux [Compared & Tested].md | 182 ++++++++++++++++++
1 file changed, 182 insertions(+)
create mode 100644 sources/tech/20221214.2 ⭐️⭐️ Best Screen Recorders for Wayland in Linux [Compared & Tested].md
diff --git a/sources/tech/20221214.2 ⭐️⭐️ Best Screen Recorders for Wayland in Linux [Compared & Tested].md b/sources/tech/20221214.2 ⭐️⭐️ Best Screen Recorders for Wayland in Linux [Compared & Tested].md
new file mode 100644
index 0000000000..a67e813001
--- /dev/null
+++ b/sources/tech/20221214.2 ⭐️⭐️ Best Screen Recorders for Wayland in Linux [Compared & Tested].md
@@ -0,0 +1,182 @@
+[#]: subject: "Best Screen Recorders for Wayland in Linux [Compared & Tested]"
+[#]: via: "https://www.debugpoint.com/screen-recorders-linux-wayland/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Best Screen Recorders for Wayland in Linux [Compared & Tested]
+======
+
+**Here’s a list of screen recorders which work in Wayland currently in most modern Linux distributions.**
+
+![][1]
+
+Modern Wayland protocol is used by default in most frontrunner Linux distributions, such as Ubuntu and Fedora. However, this X.Org successor comes with work for the app developers to re-platform their app for Wayland because Wayland is more secure and follows modern standards.
+
+Linux legacy applications, those written with X.Org in mind, don’t work well in most cases unless it is modified.
+
+Screen recorder apps fall into that category. There are many popular screen recorders which were developed for X.Org – doesn’t work anymore in Wayland.
+
+However, few of them work. In this list, I will walk you through a few that I tested in the Wayland session. And they work well.
+
+### Best screen recorder apps for Wayland in Linux distros
+
+#### 1. Kooha
+
+The first on this list is Kooha, written in GTK and supports X11 and Wayland. It’s a fast and simple screen recorder for the GNOME desktop. This application is one of the best GNOME apps that provides hassle-free recording experiences. This utility supports hardware acceleration, a timer, multiple sources as input and many advanced features. Here’s a summary:
+
+- Option to select monitor for multiple displays or any window
+- Hardware accelerated encoding (disabled by default; enable it via settings)
+- Option to record the area of a screen
+- Record mic and computer sound together
+- Delay timer for records
+- Option to choose the frame rate
+- Support for WebM, mp4, gif, Mkv file types
+
+![Kooha - Best Screen Recoder for GNOME][2]
+
+![Kooha Settings][3]
+
+Installing Kooha is easy using Flatpak. [Set up your system for Flatpak & Flathub][4] and run the following command to install it.
+
+```
+flatpak install io.github.seadve.Kooha
+```
+
+We tested it in the latest Ubuntu 22.10 and Fedora 37 with Wayland session, it works flawlessly.
+
+**More details about Kooha**
+
+- [Home page][5]
+- [Source code][6]
+
+#### 2. GNOME screen recorder
+
+The second in the list is GNOME Shell’s built-in screen recorder. It’s part of the GNOME’s new screenshot utility which you can launch by searching “screenshot” in the application menu.
+
+GNOME Screen recorder provides you option to record the entire screen or a rectangular portion. In addition, you have the option to record the cursor as well.
+
+However it only supports recording to webM format. And you can’t do a delayed start of your recording.
+
+You don’t need to install anything extra to use this. Since it comes by default with GNOME desktop.
+
+Use the keyboard shortcut `CTRL+SHIFT+ALT+R` to launch it. And select your option, then hit the record button.
+
+The recordings saved at ~/home/Videos/Screencasts.
+
+![GNOME Screen recorder][7]
+
+#### 3. OBS Studio
+
+The popular free and open-source streaming application OBS Studio recently started supporting Wayland. Although it is primarily used for live streaming, but it’s screen recording feature actually works in Wayland and you can use it.
+
+Since its a professional grade software, you can take advantage of it’s recording feature. In addition, you can also record the sound from the mic of your system while recording the screen.
+
+Installing OBS Studio is easy with Flatpak. [Set up your system for Flathub][4] and install it using the following command.
+
+```
+flatpak install com.obsproject.Studio
+```
+
+Note: OBS Studio need FFmpeg to run. We have a guide [here][8], if you want to install FFmpeg.
+
+After you launch OBS Studio, click on + sign under Sources to add source. Then select “Screen capture..”. And then click ok.
+
+![Screen capture option][9]
+
+![recording in OBS Studio in Wayland][10]
+
+After you stop the recording, it is saved at your ~/home directory.
+
+**More details about OBS Studio**
+
+- [Home page][11]
+- [Source code][12]
+
+#### 4. vokoscreenNG
+
+The vokoscreenNG is a little different screen recording app which is totally underrated. It’s an old application and supports window capture, rectangular caption. In addition, it also support audio capture alongside screen, system tray control, magnifying glass, countdown, timer and many cool features.
+
+Recently, an experimental Wayland support introduced which you can try out. It works fairly well. Currently it supports webm, m4, mkv, mov and avi formats for Wayland. However, audio recording is not yet available for Wayland sessions.
+
+You can download the pre-compiled executable for Linux distros which require no installation from the below link. And run.
+
+[Download][13]
+
+![vokoscreenNG][14]
+
+**More details about vokoscreenNG**
+
+- [Home page][15]
+
+#### 5. Wayfarer
+
+The final screen recorder in this list is Wayfarer, based on GTK4. It currently supports all the modern protocols such as Wayland, Pipewire with wireplumber. It’s simple user interface supports screen recording with audio capture. You can also select a portion of your desktop or the entire screen for recording.
+
+Furthermore, you can select the frame rate, select mouse capture and have the ability to delay the recording. Currently it supports webm, mp4 and mkv formats.
+
+![Wayfarer screen recorder for Linux][16]
+
+However, it is currently available in Arch User repository (AUR) for Arch Linux. You can setup any AUR helper such as Yay and install it using the following command.
+
+```
+yay -S wayfarer-git
+```
+
+**More details about Wayfarer**
+
+[Home page & source code][17]
+
+### Other excellent screen recorders which are currently not working with Wayland
+
+Other than the above list, there are some excellent screen recorders available for X.Org which is currently broken in Wayland. As per my test in Ubuntu 22.10 and Fedora 37 wayland session, none of these works. You can only see a black screen in the recording file. I hope they get fixed in coming days and become compatible with Wayland.
+
+- [Peek][18] (may work with XWayland backend)
+- [Simple screen recorder][19]
+- [Blue Recorder][20] (supports Wayland but is currently broken)
+
+### Wrapping Up
+
+From my personal experience, Wayland is faster and better. Since many modern distros are moving towards Wayland, you must change your workflow with replacement apps. I hope this list of screen recorders in Wayland helps you pick the one that suits you best.
+
+Do let me know if you know of any other apps of a similar category which work with Wayland.
+
+[Next:Top 10 32-Bit Linux Distributions in 2022 [Compared]][21]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/screen-recorders-linux-wayland/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2022/12/wayrec.jpg
+[2]: https://www.debugpoint.com/wp-content/uploads/2021/12/Kooha-Best-Screen-Recoder-for-GNOME.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/Kooha-Settings.jpg
+[4]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
+[5]: https://apps.gnome.org/app/io.github.seadve.Kooha/
+[6]: https://github.com/SeaDve/Kooha
+[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/GNOME-Screen-recorder.jpg
+[8]: https://www.debugpoint.com/install-ffmpeg-ubuntu/
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/Screen-capture-option.jpg
+[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/recording-in-OBS-Studio-in-Wayland.jpg
+[11]: https://obsproject.com/
+[12]: https://github.com/obsproject/obs-studio
+[13]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen-download.html
+[14]: https://www.debugpoint.com/wp-content/uploads/2022/12/vokoscreenNG.jpg
+[15]: https://linuxecke.volkoh.de/vokoscreen
+[16]: https://www.debugpoint.com/wp-content/uploads/2022/12/Wayfarer-screen-recorder-for-Linux.jpg
+[17]: https://github.com/stronnag/wayfarer
+[18]: https://github.com/phw/peek
+[19]: https://www.maartenbaert.be/simplescreenrecorder/
+[20]: https://github.com/xlmnxp/blue-recorder
+[21]: https://www.debugpoint.com/32-bit-linux-distributions/
From 8dd4a59c99b126e56b174735e9a96df93a146e52 Mon Sep 17 00:00:00 2001
From: chai001125 <94744119+chai001125@users.noreply.github.com>
Date: Wed, 14 Dec 2022 20:44:31 +0800
Subject: [PATCH 042/266] translated
---
...️ 7 pro tips for using the GDB step command.md | 255 -----------------
...️ 7 pro tips for using the GDB step command.md | 256 ++++++++++++++++++
2 files changed, 256 insertions(+), 255 deletions(-)
delete mode 100644 sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
create mode 100644 translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
diff --git a/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
deleted file mode 100644
index 8d0a0fecfd..0000000000
--- a/sources/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
+++ /dev/null
@@ -1,255 +0,0 @@
-[#]: subject: "7 pro tips for using the GDB step command"
-[#]: via: "https://opensource.com/article/22/12/gdb-step-command"
-[#]: author: "Alexandra https://opensource.com/users/ahajkova"
-[#]: collector: "lkxed"
-[#]: translator: "chai001125"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-7 pro tips for using the GDB step command
-======
-
-A debugger is software that runs your code and examines any problems it finds. [GNU Debugger][1] (GBD) is one of the most popular debuggers, and in this article, I examine GDB's `step` command and related commands for several common use cases. Step is a widely used command but there are a few lesser known things about it which might be confusing. Also, there are ways to step into a function without actually using the `step` command itself such as using the less known `advance` command.
-
-### No debugging symbols
-
-Consider a simple example program:
-
-```
-#include
-
-int num() {
- return 2;
-}
-
-void bar(int i) {
- printf("i = %d\n", i);
-}
-
-int main() {
- bar(num());
- return 0;
-}
-```
-
-If you compile without the debugging symbols first, set a breakpoint on `bar` and then try to step within it. The GDB gives an error message about no line number information:
-
-```
-gcc exmp.c -o exmp
-gdb ./exmp
-(gdb) b bar
-Breakpoint 1 at 0x401135
-(gdb) r
-Starting program: /home/ahajkova/exmp
-Breakpoint 1, 0x0000000000401135 in bar ()
-(gdb) step
-Single stepping until exit from function bar,
-which has no line number information.
-i = 2
-0x0000000000401168 in main ()
-```
-
-### Stepi
-
-It is still possible to step inside the function that has no line number information but the `stepi` command should be used instead. Stepi executes just one instruction at a time. When using GDB's `stepi` command, it's often useful to first do `display/i $pc`. This causes the program counter value and corresponding machine instruction to be displayed after each step:
-
-```
-(gdb) b bar
-Breakpoint 1 at 0x401135
-(gdb) r
-Starting program: /home/ahajkova/exmp
-Breakpoint 1, 0x0000000000401135 in bar ()
-(gdb) display/i $pc
-1: x/i $pc
-=> 0x401135 : sub $0x10,%rsp
-```
-
-In the above `display` command, the `i` stands for machine instructions and `$pc` is the program counter register.
-
-It can be useful to use info registers and print some register contents:
-
-```
-(gdb) info registers
-rax 0x2 2
-rbx 0x7fffffffdbc8 140737488346056
-rcx 0x403e18 4210200
-(gdb) print $rax
-$1 = 2
-(gdb) stepi
-0x0000000000401139 in bar ()
-1: x/i $pc
-=> 0x401139 : mov %edi,-0x4(%rbp)
-```
-
-### Complicated function call
-
-After recompiling the example program with debugging symbols you can set the breakpoint on the `bar` call in main using its line number and then try to step into `bar` again:
-
-```
-gcc -g exmp.c -o exmp
-gdb ./exmp
-(gdb) b exmp.c:14
-Breakpoint 1 at 0x401157: file exmp.c, line 14.
-(gdb) r
-Starting program: /home/ahajkova/exmp
-Breakpoint 1, main () at exmp.c:14
-14 bar(num());
-```
-
-Now, let's step into`bar()`:
-
-```
-(gdb) step
-num () at exmp.c:4
-4 return 2;
-```
-
-The arguments for a function call need to be processed before the actual function call, so `num()` is expected to execute before `bar()`is called. But how do you step into the `bar` as was desired? You need to use the `finish` command and `step` again:
-
-```
-(gdb) finish
-Run till exit from #0 num () at exmp.c:4
-0x0000000000401161 in main () at exmp.c:14
-14 bar(num());
-Value returned is $1 = 2
-(gdb) step
-bar (i=2) at exmp.c:9
-9 printf("i = %d\n", i);
-```
-
-### Tbreak
-
-The `tbreak` command sets a temporary breakpoint. It's useful for situations where you don't want to set a permanent breakpoint. For example, if you want to step into a complicated function call like `f(g(h()), i(j()), ...)` , in such a case you need a long sequence of `step/finish/step` to step into `f` . Setting a temporary breakpoint and then using continue can help to avoid using such sequences. To demonstrate this, you need to set the breakpoint to the `bar` call in `main` as before. Then set the temporary breakpoint on `bar`. As a temporary breakpoint it is automatically removed after being hit:
-
-```
-(gdb) r
-Starting program: /home/ahajkova/exmp
-Breakpoint 1, main () at exmp.c:14
-14 bar(num());
-(gdb) tbreak bar
-Temporary breakpoint 2 at 0x40113c: file exmp.c, line 9.
-```
-
-After hitting the breakpoint on the call to `bar` and setting a temporary breakpoint on `bar`, you just need to continue to end up in `bar`.
-
-```
-(gdb) continue
-Continuing.
-Temporary breakpoint 2, bar (i=2) at exmp.c:9
-9 printf("i = %d\n", i);
-```
-
-### Disable command
-
-Alternatively, you could set a normal breakpoint on `bar` , continue, and then disable this second breakpoint when it's no longer needed. This way you can achieve the same results as with the `tbreak` with one extra command:
-
-```
-(gdb) b exmp.c:14
-Breakpoint 1 at 0x401157: file exmp.c, line 14.
-(gdb) r
-Starting program: /home/ahajkova/exmp
-Breakpoint 1, main () at exmp.c:14
-14 bar(num());
-(gdb) b bar
-Breakpoint 2 at 0x40113c: file exmp.c, line 9.
-(gdb) c
-Continuing.
-Breakpoint 2, bar (i=2) at exmp.c:9
-9 printf("i = %d\n", i);
-(gdb) disable 2
-```
-
-As you can see, the `info breakpoints` command displays `n` under `Enb`which means it’s disabled but you can enable it later if it’s needed again.
-
-```
-(gdb) info breakpoints
-Num Type Disp Enb Address What
-1 breakpoint keep y 0x0000000000401157 in main at exmp.c:14
-breakpoint already hit 1 time
-2 breakpoint keep n 0x000000000040113c in bar at exmp.c:9
-breakpoint already hit 1 time
-(gdb) enable 2
-(gdb) info breakpoints
-Num Type Disp Enb Address What
-1 breakpoint keep y 0x000000000040116a in main at exmp.c:19
-breakpoint already hit 1 time
-2 breakpoint keep y 0x0000000000401158 in bar at exmp.c:14
-breakpoint already hit 1 time
-```
-
-### Advance location
-
-Another option you can use is an `advance` command. Instead of `tbreak bar ; continue` , you can simply do `advance bar` . This command continues running the program up to the given location.
-
-The other cool thing about `advance` is that if the location that you try to advance to is not reached, GDB will stop after the current frame's function finishes. Thus, execution of the program is constrained:
-
-```
-Breakpoint 1 at 0x401157: file exmp.c, line 14.
-(gdb) r
-Starting program: /home/ahajkova/exmp
-Breakpoint 1, main () at exmp.c:14
-14 bar(num());
-(gdb) advance bar
-bar (i=2) at exmp.c:9
-9 printf("i = %d\n", i);
-```
-
-### Skipping a function
-
-Yet another way to step into the `bar,` avoiding `num`, is using the `skip` command:
-
-```
-(gdb) b exmp.c:14
-Breakpoint 1 at 0x401157: file exmp.c, line 14.
-(gdb) skip num
-Function num will be skipped when stepping.
-(gdb) r
-Starting program: /home/ahajkova/exmp
-Breakpoint 1, main () at exmp.c:14
-14 bar(num());
-(gdb) step
-bar (i=2) at exmp.c:9
-9 printf("i = %d\n", i);
-```
-
-To know which functions are currently skipped, `info skip` is used. The `num` function is marked as enabled to be skipped by `y`:
-
-```
-(gdb) info skip
-Num Enb Glob File RE Function
-1 y n n num
-```
-
-If `skip` is not needed any more it can be disabled (and re-enabled later) or deleted altogether. You can add another `skip` and disable the first one and then delete them all. To disable a certain `skip`, its number has to be specified, if not specified, each `skip`is disabled. It works the same for enabling or deleting a `skip`:
-
-```
-(gdb) skip bar
-(gdb) skip disable 1
-(gdb) info skip
-Num Enb Glob File RE Function
-1 n n n num
-2 y n n bar
-(gdb) skip delete
-(gdb) info skip
-Not skipping any files or functions.
-```
-
-### GDB step command
-
-Using GDB's `step` command is a useful tool for debugging your application. There are several ways to step into even complicated functions, so give these GDB techniques a try next time you're troubleshooting your code.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/gdb-step-command
-
-作者:[Alexandra][a]
-选题:[lkxed][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/ahajkova
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/21/3/debug-code-gdb
diff --git a/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
new file mode 100644
index 0000000000..ea398cd4a0
--- /dev/null
+++ b/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
@@ -0,0 +1,256 @@
+[#]: subject: "7 pro tips for using the GDB step command"
+[#]: via: "https://opensource.com/article/22/12/gdb-step-command"
+[#]: author: "Alexandra https://opensource.com/users/ahajkova"
+[#]: collector: "lkxed"
+[#]: translator: "chai001125"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+GDB 进入函数内部的 7 个命令
+======
+
+>**调试器**是一个可以运行你的代码并检查问题的软件。[GNU Debugger][1](GBD)是最流行的调试器之一,在这篇文章中,我研究了 **GDB 进入函数内部的几个命令**,包含了 **`step` 命令**和其他几个**常见的 GDB 命令**。`step` 是一个被广泛使用的命令,但它有一些人们不太了解的地方,可能会使得他们十分困惑。此外,还有一些方法可以**在不使用 `step` 命令的情况下进入一个函数**,比如使用不太知名的 `advance` 命令。
+
+### 1、无调试符号
+
+考虑以下这个简单的示例程序:
+
+```
+#include
+
+int num() {
+ return 2;
+}
+
+void bar(int i) {
+ printf("i = %d\n", i);
+}
+
+int main() {
+ bar(num());
+ return 0;
+}
+```
+
+如果你在没有 调试符号 debugging sysbols 的情况下进行编译(即在使用 `gcc` 编译程序时上,没有写 `-g` 选项),然后在 `bar` 上设置一个断点,然后尝试在这个函数内使用 `step`,来单步执行语句。GDB 会给出一个 没有行号信息 no line number information 的错误信息。
+
+```
+gcc exmp.c -o exmp
+gdb ./exmp
+(gdb) b bar
+Breakpoint 1 at 0x401135
+(gdb) r
+Starting program: /home/ahajkova/exmp
+Breakpoint 1, 0x0000000000401135 in bar ()
+(gdb) step
+Single stepping until exit from function bar,
+which has no line number information.
+i = 2
+0x0000000000401168 in main ()
+```
+
+### 2、`stepi` 命令
+
+但是你仍然可以在没有行号信息的函数内部单步执行语句,但要使用 `stepi` 命令来代替 `step`。`stepi` 一次只执行一条指令。当使用 GDB 的 `stepi` 命令时,先做 `display/i $pc` 通常很有用,这会在每一步之后**显示** **程序计数器的值** program counter value 和**相应的** **机器指令** machine instruction :
+
+```
+(gdb) b bar
+Breakpoint 1 at 0x401135
+(gdb) r
+Starting program: /home/ahajkova/exmp
+Breakpoint 1, 0x0000000000401135 in bar ()
+(gdb) display/i $pc
+1: x/i $pc
+=> 0x401135 : sub $0x10,%rsp
+```
+
+在上述的 `display` 命令中,`i` 代表机器指令,`$pc` 表示程序计数器寄存器(即 PC 寄存器)。
+
+使用 `info registers` 命令,来**打印寄存器的内容**,也是十分有用的。
+
+```
+(gdb) info registers
+rax 0x2 2
+rbx 0x7fffffffdbc8 140737488346056
+rcx 0x403e18 4210200
+(gdb) print $rax
+$1 = 2
+(gdb) stepi
+0x0000000000401139 in bar ()
+1: x/i $pc
+=> 0x401139 : mov %edi,-0x4(%rbp)
+```
+
+### 3、复杂的函数调用
+
+在带调试符号的 `-g` 选项,重新编译示例程序后,你可以用 `main` 中的行号,在 `bar` 上设置断点,然后再单步执行 `bar` 函数的语句:
+
+```
+gcc -g exmp.c -o exmp
+gdb ./exmp
+(gdb) b exmp.c:14
+Breakpoint 1 at 0x401157: file exmp.c, line 14.
+(gdb) r
+Starting program: /home/ahajkova/exmp
+Breakpoint 1, main () at exmp.c:14
+14 bar(num());
+```
+
+接下来,用 `step`,来单步执行 `bar()` 函数的语句:
+
+```
+(gdb) step
+num () at exmp.c:4
+4 return 2;
+```
+
+函数调用的参数需要在实际的函数调用之前进行处理,`bar()` 函数调用了 `num()` 函数,所以 `num()` 会在 `bar()` 被调用之前执行。但是,通过 GDB 调试,你怎么才能如愿以偿地进入 `bar()` 函数呢?你可以使用 `finish` 命令,并再次使用 `step` 命令。
+
+```
+(gdb) finish
+Run till exit from #0 num () at exmp.c:4
+0x0000000000401161 in main () at exmp.c:14
+14 bar(num());
+Value returned is $1 = 2
+(gdb) step
+bar (i=2) at exmp.c:9
+9 printf("i = %d\n", i);
+```
+
+### 4、`Tbreak` 命令
+
+`tbreak` 命令会设置一个**临时断点**。如果你不想设置永久断点,那么这个命令是很有用的。举个例子🌰,你想进入一个复杂的函数调用,例如 `f(g(h()), i(j()), ...)`,在这种情况下,你需要一个很长的 `step/finish/step` 序列,才能到达 `f` 函数。如果你设置一个临时断点,然后再使用 `continue` 命令,这样就不需要以上的序列了。为了证明这一点,你需要像以前一样将断点设置在 `main` 的 `bar` 调用上。然后在 `bar` 上设置临时断点。当到达该临时断点后,临时断点会被自动删除。
+
+
+```
+(gdb) r
+Starting program: /home/ahajkova/exmp
+Breakpoint 1, main () at exmp.c:14
+14 bar(num());
+(gdb) tbreak bar
+Temporary breakpoint 2 at 0x40113c: file exmp.c, line 9.
+```
+
+在调用 `bar` 的时候遇到断点,并在 `bar` 上设置临时断点后,你只需要使用`continue` 继续运行直到 `bar` 结束。
+
+```
+(gdb) continue
+Continuing.
+Temporary breakpoint 2, bar (i=2) at exmp.c:9
+9 printf("i = %d\n", i);
+```
+
+### 5、`disable` 命令
+
+类似地,你也可以在 `bar` 上设置一个正常的断点,然后执行 `continue`,然后在不再需要第二个断点时,使用`disable` 命令禁用这个断点,这样也能达到与 `tbreak` 相同的效果。
+
+```
+(gdb) b exmp.c:14
+Breakpoint 1 at 0x401157: file exmp.c, line 14.
+(gdb) r
+Starting program: /home/ahajkova/exmp
+Breakpoint 1, main () at exmp.c:14
+14 bar(num());
+(gdb) b bar
+Breakpoint 2 at 0x40113c: file exmp.c, line 9.
+(gdb) c
+Continuing.
+Breakpoint 2, bar (i=2) at exmp.c:9
+9 printf("i = %d\n", i);
+(gdb) disable 2
+```
+
+正如你所看到的,`info breakpoints` 命令在 `Enb` 下显示为 `n`,这意味着这个断点已被禁用。但你也能在再次需要这个断点时,再启用它。
+
+```
+(gdb) info breakpoints
+Num Type Disp Enb Address What
+1 breakpoint keep y 0x0000000000401157 in main at exmp.c:14
+breakpoint already hit 1 time
+2 breakpoint keep n 0x000000000040113c in bar at exmp.c:9
+breakpoint already hit 1 time
+(gdb) enable 2
+(gdb) info breakpoints
+Num Type Disp Enb Address What
+1 breakpoint keep y 0x000000000040116a in main at exmp.c:19
+breakpoint already hit 1 time
+2 breakpoint keep y 0x0000000000401158 in bar at exmp.c:14
+breakpoint already hit 1 time
+```
+
+### 6、`Advance` 命令运行程序到指定的位置
+
+另一个进入函数内部的方法是 `advance` 命令。你可以简单地用 `advance bar`,来代替 `tbreak bar ; continue`。这一命令会将程序继续运行到指定的位置。
+
+`advance` 命令的一个很棒的地方在于:如果程序并没有到达你试图进入的位置,那么 GDB 将在当前函数运行完成后停止。因此,程序的执行会受到限制:
+
+```
+Breakpoint 1 at 0x401157: file exmp.c, line 14.
+(gdb) r
+Starting program: /home/ahajkova/exmp
+Breakpoint 1, main () at exmp.c:14
+14 bar(num());
+(gdb) advance bar
+bar (i=2) at exmp.c:9
+9 printf("i = %d\n", i);
+```
+
+### 7、`skip` 命令
+
+进入 `bar` 函数的另一种方式是使用 `skip num` 命令:
+
+```
+(gdb) b exmp.c:14
+Breakpoint 1 at 0x401157: file exmp.c, line 14.
+(gdb) skip num
+Function num will be skipped when stepping.
+(gdb) r
+Starting program: /home/ahajkova/exmp
+Breakpoint 1, main () at exmp.c:14
+14 bar(num());
+(gdb) step
+bar (i=2) at exmp.c:9
+9 printf("i = %d\n", i);
+```
+
+请使用 `info skip` 命令,来了解 GDB 跳过了哪些函数。`num()` 函数被标记为 `y`,表示跳过了 `num()` 函数:
+
+```
+(gdb) info skip
+Num Enb Glob File RE Function
+1 y n n num
+```
+
+如果不再需要 `skip`,可以禁用(稍后重新启用)或完全删除它。你可以添加另一个 `skip`,并禁用第一个 `skip`,然后全部删除。要禁用某个 `skip`,必须指定其编号(例如,`skip disable 1`),如果没有指定,则会禁用所有的 `skip`。启用或删除 `skip` 的工作原理相同:
+
+```
+(gdb) skip bar
+(gdb) skip disable 1
+(gdb) info skip
+Num Enb Glob File RE Function
+1 n n n num
+2 y n n bar
+(gdb) skip delete
+(gdb) info skip
+Not skipping any files or functions.
+```
+
+### GDB 的 `step` 命令
+
+使用 GDB 的 `step` 命令是调试程序的一个有用工具。即使是复杂的函数,也有几种方法可以进入这些函数,所以下次你在排除代码问题的时候,可以尝试一下这些 GDB 技术。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/gdb-step-command
+
+作者:[Alexandra][a]
+选题:[lkxed][b]
+译者:[chai001125](https://github.com/chai001125)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/ahajkova
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/21/3/debug-code-gdb
From b9638d8f62ab2f362e5073d66aaa55d5715de506 Mon Sep 17 00:00:00 2001
From: chai001125 <94744119+chai001125@users.noreply.github.com>
Date: Wed, 14 Dec 2022 20:47:55 +0800
Subject: [PATCH 043/266] translating
---
...21212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
index 4988fb5a7c..d91fa7bea4 100644
--- a/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
+++ b/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
@@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/best-linux-phones/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "chai001125"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From dd48a67ffe2f650867563e7844886805ae2e9bd3 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Thu, 15 Dec 2022 08:47:48 +0800
Subject: [PATCH 044/266] translated
---
...⭐️ Install open source solar power at home.md | 61 -------------------
...⭐️ Install open source solar power at home.md | 61 +++++++++++++++++++
2 files changed, 61 insertions(+), 61 deletions(-)
delete mode 100644 sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
create mode 100644 translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
diff --git a/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
deleted file mode 100644
index 303c257fdb..0000000000
--- a/sources/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
+++ /dev/null
@@ -1,61 +0,0 @@
-[#]: subject: "Install open source solar power at home"
-[#]: via: "https://opensource.com/article/22/12/open-source-solar-power-home"
-[#]: author: "Joshua Pearce https://opensource.com/users/joshuapearce"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Install open source solar power at home
-======
-
-You might have already given some thought to powering your home with solar. Solar photovoltaic panels, which convert sunlight directly into electricity, have fallen so far down in cost that it makes economic sense everywhere. That is why large companies have put in a lot of solar, and even the electric utilities have started installing massive solar farms—it simply costs less than antiquated fossil fuels. Like most homeowners, you would like to save money and eviscerate your electric bill, but you are probably cringing a bit at the upfront cost. To get a rough idea of the cost, a 5kW system that would power an average home installed at $3/W would cost about $15,000, while a larger home might need 10kW to offset all of their electricity purchases and cost $30,000. If you want batteries, double the cost (you don’t need batteries as most solar arrays connect to the grid, but if the grid goes down, so does your solar array until it is turned back on.) Paying for all your electricity for the next several decades is an investment, even if you save a lot of money.
-
-There is some good financial news. First, both the US and Canada have enacted a 30% tax credit for solar. This credit drops the price down to about $2/W. Second, [Opensource.com previously discussed][1] how you could get a free book, [_To Catch the Sun_][2], that walks you through how to design your own system (you will still need a certified electrician and inspections to attach it to the grid). If you are a little handy, you can cut the remaining cost by about 50%. These costs are primarily for materials, including solar panels, wiring, electronics, and racking. Amazingly, solar panel costs have dropped so low for small solar systems (like the ones for your house) the racking (mechanical structures that hold the solar panels up) can cost more than the panels!
-
-### Open source to the rescue again
-
-Applying the open source development paradigm to software results in faster innovation, better products, and lower costs. The same is true of open source hardware—and even in the relatively obscure area of photovoltaic racking. Nearly all commercial photovoltaic racking is made from proprietary odd aluminum extrusions. They cost a lot of money. If you have a bit of unshaded backyard, you have a few open source racking solutions to choose from.
-
-### Open source solar rack designs
-
-The first DIY solar rack design meets the following criteria: (1) made from locally-accessible renewable materials, (2) 25-year lifetime to match solar warranties, (3) able to be fabricated by average consumers, (4) able to meet Canadian structural building codes (if you live where there is no snow this is a bit overkill, but, hey, you might have other weather extremes like hurricanes to deal with), (5) low cost and (6) that it is shared using an open source license. [The open source wood-based fixed-tilt ground-mounted bifacial photovoltaic rack design][3] works throughout North America. The racking system saves from 49% to 77% compared to commercial proprietary racking. The racking design, however, is highly dependent on the cost of lumber, which varies worldwide.
-
-Check your local cost of wood before you dive into this open source design.
-
-![Non-tilting solar rack plans][4]
-
-If you are even more adventurous, you might consider this second design that allows you to change the tilt angle. The results of [the second study][5] show the racking systems with an optimal variable seasonal tilt angle have the best lifetime energy production, with 5.2% more energy generated compared to the fixed-tilt system (or 4.8% more energy, if limited to a maximum tilt angle of 60°). Both fixed and variable wooden racking systems show similar electricity costs, which are only 29% of that of proprietary commercial metal racking. The variable tilt rack provides the lowest cost option even when modest labor costs are included and also may provide specific advantages for applications such as [agrivoltaics][6] (i.e., you can garden underneath the panels and amazingly get increases in yields for shade-tolerant crops like lettuce). This design has been certified by [OSHWA with CERN-OHL-S-2.0 licenses][7].
-
-IMAGE
-
-![Tilt-adjustable solar racks][8]
-
-There is about 1kW for each of the 2 PV module racks shown. So a house would need about five of them. Both papers provide full calculations and step-by-step build instructions.
-
-As anyone with a solar system will tell you, getting a negative electricity bill is pretty rewarding. This happens if you size your system to meet all of your load and live in a net-metered part of the country. Please note that the electric utilities don’t pay you; the credit carries over until you use it in the winter.
-
-Have fun with a little open source solar!
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/open-source-solar-power-home
-
-作者:[Joshua Pearce][a]
-选题:[lkxed][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/joshuapearce
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/21/11/open-source-solar-power
-[2]: https://tocatchthesun.com/
-[3]: https://doi.org/10.3390/designs6030041
-[4]: https://opensource.com/sites/default/files/2022-11/nontilt.png
-[5]: https://doi.org/10.3390/designs6030054
-[6]: https://www.academia.edu/18406368/The_potential_of_agrivoltaic_systems
-[7]: https://certification.oshwa.org/ca000013.html
-[8]: https://opensource.com/sites/default/files/2022-11/tilt.png
diff --git a/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
new file mode 100644
index 0000000000..c73b0ee49b
--- /dev/null
+++ b/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
@@ -0,0 +1,61 @@
+[#]: subject: "Install open source solar power at home"
+[#]: via: "https://opensource.com/article/22/12/open-source-solar-power-home"
+[#]: author: "Joshua Pearce https://opensource.com/users/joshuapearce"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+在家里安装开源太阳能
+======
+
+你可能已经考虑过用太阳能为您的家供电。将太阳光直接转化为电能的太阳能光伏电池板的成本已大幅下降,因此在任何地方都具有经济意义。这就是为什么大公司投入大量太阳能,甚至电力公司也开始安装大型太阳能发电场的原因,因为它的成本低于过时的化石燃料。像大多数房主一样,你想省钱并节省电费,但你可能对前期费用有点畏缩。为了大致了解成本,以 3 美元/瓦的价格为普通家庭供电的 5kW 系统的成本约为 15,000 美元,而更大的家庭可能需要 10kW 才能抵消所有电力购买,成本为 30,000 美元。如果你想要电池,成本加倍(你不需要电池,因为大多数太阳能电池阵列连接到电网,但如果电网瘫痪,你的太阳能电池阵列也会瘫痪,直到它重新开启)支付你未来几十年所有的电费是一种投资,即使你存了很多钱。
+
+有一些好消息。首先,美国和加拿大都对太阳能实行了 30% 的税收抵免。此项优惠将价格降至约 2 美元/W。其次,[Opensource.com 之前讨论][1]过你可以获得一本免费书籍[_捕捉阳光_][2],它会引导你完成如何设计自己的系统(你仍然需要一个合格的电工和检查来把它连接到电网)。如果你有一点手艺,你可以将剩余成本削减约 50%。这些成本主要用于材料,包括太阳能电池板、布线、电子设备和支架。令人惊讶的是,对于小型太阳能系统(比如你家的太阳能系统)来说,太阳能电池板的成本下降得如此之低,以至于支架(支撑太阳能电池板的机械结构)的成本可能比面板还高!
+
+### 开源再次拯救
+
+将开源开发范式应用于软件可以加快创新速度、改进产品并降低成本。开源硬件也是如此,甚至在光伏支架这个相对不为人知的领域也是如此。几乎所有的商业光伏支架都是由专有的奇特铝型材制成。它们会花很多钱。如果你有一些没有遮挡的后院,你有一些开源的支架解决方案可以选择。
+
+### 开源太阳能支架设计
+
+第一个 DIY 太阳能支架设计符合以下标准:(1) 由当地可获得的可再生材料制成,(2) 25 年的使用寿命与太阳能保修相匹配,(3) 能够由普通消费者制造,(4) 能够 符合加拿大结构建筑规范(如果你住在没有雪的地方,这有点矫枉过正,但是,嘿,你可能有其他极端天气需要应对,例如飓风),(5)低成本,(6)它是共享的 使用开源许可证。[开源的木质固定倾斜地面安装双面光伏支架设计][3]在整个北美都适用。与商业专有支架相比,该支架系统可节省 49% 至 77%。然而,支架设计高度依赖于世界各地不同的木材成本。
+
+在深入研究这个开源设计之前,请检查你当地的木材成本。
+
+![Non-tilting solar rack plans][4]
+
+如果你更喜欢冒险,你可能会考虑第二种允许改变倾斜角度的设计。[第二项研究][5]的结果表明,具有最佳可变季节性倾斜角的支架系统具有最佳的终身能量产生,与固定倾斜系统相比,产生的能量多 5.2%(或者,如果最大倾斜角限制为 60°,能量多 4.8%)。固定和可变木制支架系统的电力成本相似,仅为专有商业金属货架的 29%。可变倾斜支架提供了最低成本的选择,即使包括适度的劳动力成本,也可能为[农业光伏][6]等应用提供特定优势(即,你可以在面板下面种菜,对于莴苣等耐阴作物来说,能惊人地增加产量)。此设计已通过[具有 CERN-OHL-S-2.0 许可证的 OSHWA][7] 的认证。
+
+图片
+
+![Tilt-adjustable solar racks][8]
+
+所示的 2 个 PV 模块架中的每一个大约有 1kW。所以一所房子大约需要五个。这两篇论文都提供了完整的计算和分步建造说明。
+
+正如拥有太阳能系统的任何人都会告诉你的那样,获得负电费是非常有益的。如果你的系统规模能满足你所有的负荷,并且住在该国的净计量地区,就会出现这种情况。请注意,电力公司不会向你付款; 额度会一直延续到你在冬天使用它为止。
+
+享受一点开源太阳能带来的乐趣!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/open-source-solar-power-home
+
+作者:[Joshua Pearce][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/joshuapearce
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/21/11/open-source-solar-power
+[2]: https://tocatchthesun.com/
+[3]: https://doi.org/10.3390/designs6030041
+[4]: https://opensource.com/sites/default/files/2022-11/nontilt.png
+[5]: https://doi.org/10.3390/designs6030054
+[6]: https://www.academia.edu/18406368/The_potential_of_agrivoltaic_systems
+[7]: https://certification.oshwa.org/ca000013.html
+[8]: https://opensource.com/sites/default/files/2022-11/tilt.png
From 2a1098bed71e552f6a5cef3aebdacc2dadf93943 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Thu, 15 Dec 2022 08:50:50 +0800
Subject: [PATCH 045/266] translating
---
...0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md b/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
index 0ff3f068de..f97b3107bb 100644
--- a/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
+++ b/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/12/linux-file-manager-pcmanfm"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 5c93061c0e69976d2486ceafdbfc12dd11ccd04d Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Thu, 15 Dec 2022 10:17:01 +0800
Subject: [PATCH 046/266] RP
@Veryzzj
https://linux.cn/article-15349-1.html
---
...0210330 A DevOps guide to documentation.md | 94 +++++++++++++++++++
...0210330 A DevOps guide to documentation.md | 92 ------------------
2 files changed, 94 insertions(+), 92 deletions(-)
create mode 100644 published/20210330 A DevOps guide to documentation.md
delete mode 100644 translated/tech/20210330 A DevOps guide to documentation.md
diff --git a/published/20210330 A DevOps guide to documentation.md b/published/20210330 A DevOps guide to documentation.md
new file mode 100644
index 0000000000..79f11c85c2
--- /dev/null
+++ b/published/20210330 A DevOps guide to documentation.md
@@ -0,0 +1,94 @@
+[#]: subject: "A DevOps guide to documentation"
+[#]: via: "https://opensource.com/article/21/3/devops-documentation"
+[#]: author: "Will Kelly https://opensource.com/users/willkelly"
+[#]: collector: "lujun9972"
+[#]: translator: "Veryzzj"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15349-1.html"
+
+文档写作的 DevOps 指南
+======
+
+> 将文档写作加入到 DevOps 的生命周期中。
+
+![][0]
+
+DevOps 正在挑战技术文档的规范,这在 IT 历史上是前所未有的。从自动化到提高交付速度,再到拆除瀑布式软件开发生命周期模型,这意味着业务和技术文档写作的理念需要做出巨大改变。
+
+以下是 DevOps 对技术文档写作不同方面的影响。
+
+### 技术写手的角色变化
+
+技术写手必须适应 DevOps。好消息是,许多技术写手已经加入到开发团队中,并且拥有合作关系和不断增长的产品知识的技术写手很具优势。
+
+但是如果一个技术写手习惯于独立工作,并依赖于领域专家的草稿作为文档的基础,那么就需要做一些调整。
+
+进行一些投资,以确保文档和其他与项目有关的内容开发工作获得所需的工具、结构和支持。从改变 [技术写手聘用方式][2] 开始。以 [DevOps 的速度][3] 编写文档需要重新思考内容规划,并打破 DevOps 团队和支持项目的技术写手之间长期存在的隔阂。
+
+DevOps 使开发团队摆脱了传统文档实践的束缚。首先,文档 [完成的定义][4] 必须改变。一些企业的文化使技术写手成为软件开发的被动参与者。DevOps 提出了新的要求:随着 DevOps 文化的转变,技术写手的角色也应发生变化。技术写手需要(且必须适应)DevOps 提供的透明度。他们必须融入 DevOps 团队。取决于组织如何塑造这个角色,将技术写手带入团队可能会带来技能上的挑战。
+
+### 文档标准、方法和规格
+
+虽然 DevOps 还没有影响到技术文档本身,但开源社区已经加强了对应用编程接口(API)文档的帮助,已经有不同规模的企业的 DevOps 团队正在使用这些文档。
+
+用于记录 API 的开源规范和工具是个非常值得关注的领域。我想这是由于 [谷歌文档季][5] 的影响,它使开源软件项目能够获得专业的技术写作人才来解决他们最关键的文档项目。
+
+开源 API 属于 DevOps 文档讨论的一部分。云原生应用集成需求的重要性正在上升。[OpenAPI 规范][6](一个定义和记录 API 的开放标准)是在 DevOps 环境下 API 文档的良好资源。然而,该规范会导致文档的创建和更新过程变得很费时,这使其饱受批评。
+
+曾经也有短暂尝试过创建 [持续文档][7]Continuous Documentation,并且还有一个来自 CA(现在的 Broadcom)的创建 [DocOps][8] 框架的运动。然而,DocOps 从来没有作为一个行业运动流行起来。
+
+DevOps 文档标准的现状意味着 DevOps 团队(包括技术写手)需要在项目的最初阶段就开始创建文档。要做到这一点,你需要把文档作为一个敏捷故事和(同样重要的)管理期望,并且把它与年度绩效评估放在一起执行。
+
+### 文档工具
+
+文档的编写应该以一种所有团队成员都可以使用的格式或平台在线进行。MediaWiki、DokuWiki、TikiWiki 和其他 [开源维基][9] 为 DevOps 团队提供了一个编写和维护文档的中央仓库。
+
+让团队选择他们的维基平台,就像让他们选择他们的其他持续集成/持续开发(CI/CD)工具链一样。开源维基强大之处在于其可扩展性。例如,DokuWiki 包括一系列的扩展,你可以通过安装这些扩展来创建一个符合你的 DevOps 团队的创作要求的平台。
+
+如果你有足够的野心来加强你的团队的编写和协作能力,[Nextcloud][10](一个开源的云协作套件)是一个让你的 DevOps 团队上网并给他们提供编写文档所需工具的选择。
+
+### DevOps 最佳实践
+
+文档在 DevOps 转型中也发挥着作用。例如,你会想要记录组织从 DevOps 实现效率和流程增益的最佳实践,这些信息太重要了,不能靠着 DevOps 团中之间口耳相传。如果你所在的组织有多个 DevOps 团队,那么文档就是统一的力量,它可以促进最佳实践的标准化,并设置了衡量代码质量的基准指标。
+
+一般情况下,开发人员承担了记录 DevOps 实践的工作。即使他们的组织有技术写手,他们也可能跨开发团队工作。因此,开发人员和系统管理员能够捕捉、记录和交流他们的最佳实践是很重要的。这里有一些朝正确的方向发展的提示:
+
+* 提前花时间为 DevOps 最佳实践创建标准模板。不要陷入复制在线模板的陷阱。采访利益相关者和团队来创建一个符合团队需求的模板。
+* 寻找一些创造性的信息收集的方法,例如记录团队会议和使用聊天系统日志来作为文档的基础。
+* 建立一个用于发布最佳实践的维基。使用维基可以跟踪编辑和更新。这样的平台可以帮助团队在最佳实践发生变化时进行更新和维护。
+
+当在构建 CI/CD 工具链时记录依赖关系是非常明智的。尤其是当加入新的团队成员时,你会发现这些记录非常有用,另外当团队成员忘记一些事情时,这也是一种保险。
+
+最后,自动化对 DevOps 利益相关者和从业者都很有吸引力。在自动化中断之前,一切都很有趣。拥有自动化运行手册、管理指南和其他内容的文档(并且是最新的)意味着无论何时发生故障,员工都可以让自动化重新工作。
+
+### 最后一些想法
+
+DevOps 对于技术文档来说是一个积极的因素。它将内容开发纳入 DevOps 生命周期,并打破组织文化中开发人员和技术作者之间的隔阂。在没有技术写手的情况下,团队就可以使用工具来加快文档创作的速度,以与 DevOps 的速度相匹配。
+
+你的组织将如何把文档加入到 DevOps 生命周期?请在评论区分享你的经验。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/21/3/devops-documentation
+
+作者:[Will Kelly][a]
+选题:[lujun9972][b]
+译者:[Veryzzj](https://github.com/Veryzzj)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/willkelly
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/typewriter-hands.jpg?itok=oPugBzgv "Typewriter with hands"
+[2]: https://opensource.com/article/19/11/hiring-technical-writers-devops
+[3]: https://searchitoperations.techtarget.com/opinion/Make-DevOps-documentation-an-integral-part-of-your-strategy?_ga=2.73253915.980148481.1610758264-908287796.1564772842
+[4]: https://www.agilealliance.org/glossary/definition-of-done
+[5]: https://developers.google.com/season-of-docs
+[6]: https://swagger.io/specification/
+[7]: https://devops.com/continuous-documentation
+[8]: https://www.cmswire.com/cms/information-management/the-importance-of-docops-in-the-new-era-of-business-027489.php
+[9]: https://opensource.com/article/20/7/sharepoint-alternative
+[10]: https://opensource.com/article/20/7/nextcloud
+[0]: https://img.linux.net.cn/data/attachment/album/202212/15/101537c4kcxxzqzh6fxkor.jpg
\ No newline at end of file
diff --git a/translated/tech/20210330 A DevOps guide to documentation.md b/translated/tech/20210330 A DevOps guide to documentation.md
deleted file mode 100644
index 31fd2bffad..0000000000
--- a/translated/tech/20210330 A DevOps guide to documentation.md
+++ /dev/null
@@ -1,92 +0,0 @@
-[#]: subject: "A DevOps guide to documentation"
-[#]: via: "https://opensource.com/article/21/3/devops-documentation"
-[#]: author: "Will Kelly https://opensource.com/users/willkelly"
-[#]: collector: "lujun9972"
-[#]: translator: "Veryzzj"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-文档写作的 DevOps 指南
-======
-
-将文档写作加入到 DevOps 的生命周期中
-![Typewriter with hands][1]
-
-DevOps 正在挑战技术文档的规范,这在IT历史上是前所未有的。从自动化到提高交付速度,再到拆除瀑布式软件开发生命周期模型,这意味着业务和技术文档的理念需要做出巨大改变。
-
-以下是DevOps对技术文档不同方面的影响。
-
-### 技术作家的角色变化
-
-技术作家必须适应 DevOps。好消息是,许多技术作家已经加入到开发团队中,并且由于拥有合作关系和不断增长的产品知识,这些技术作家很具优势。
-
-但是如果一个技术作家习惯独立工作,并依赖于领域专家的草稿作为文档的基础,那么就需要做一些调整。
-
-进行一些投资以确保文档和其他与项目有关的开发工作获得所需的工具、结构和支持。 从改变[技术作家聘用习惯][2]开始。以[DevOps 的速度][3]编写文档需要重新思考内容规划,并打破DevOps 团队和支持项目的技术作家之间长期存在的隔阂。
-
-DevOps 使开发团队摆脱了传统文档实践的束缚。首先,文档[完成的定义][4]必须改变。一些企业的文化使技术作家成为软件开发的被动参与者。DevOps提出了新的要求--随着 DevOps 文化的转变,技术作家的角色也应发生变化。技术作家需要(且必须适应)DevOps 提供的透明度。他们必须融入 DevOps 团队。取决于组织如何塑造这个角色,将技术作家带入团队可能会带来技能上的挑战。
-
-### 文档标准、方法和规格
-
-虽然 DevOps 还没有影响到技术文档本身,但开源社区已经加强了对应用编程接口(API)文档的帮助质保,已经有不同规模的企业的 DevOps 团队正在使用这些文档。
-
-用于记录 API 的开源规范和工具是个非常值得关注的领域。我想这是由于[谷歌文档季][5]的影响,使得一些专业的技术作家能够接触到开源项目,并解决最关键的文档类项目。
-
-开源 API 属于 DevOps文档讨论。云原生应用集成需求的重要性正在上升。[OpenAPI 规范][6]--一个定义和记录API的开放标准--是在 DevOps 环境下 API 文档的良好资源。然而,该规范会导致文档的创建和更新过程变得很费时,这使其饱受批评。
-
-曾经也有短暂尝试过创建[持续文档][7],并且还有一个来自 CA(现在的Broadcom)的创建[DocOps][8]框架的运动。然而,DocOps 从来没有作为一个行业运动流行起来。
-
-DevOps 文档标准的现状意味着 DevOps 团队(包括技术作家)需要在项目的最初阶段开始创建文档。要做到这一点,需要把文档作为一个敏捷故事和(同样重要的)管理期望来添加,并且把它与年度绩效评估放在一起执行。
-
-### Documentation tools 文档工具
-
-文档的编写应该以一种所有团队成员都可以使用的格式或平台在线进行。MediaWiki、DokuWiki、TikiWiki和其他[开源维基][9]为 DevOps 团队提供了一个编写和维护文档的中央仓库。
-
-让团队选择他们的 wiki,就像让他们选择他们的其他持续集成/持续开发(CI/CD)工具链一样。开源维基强大之处在于其可扩展性。例如,DokuWiki包括一系列的扩展,你可以通过安装这些扩展来创建一个符合你的 DevOps 团队的创作要求的平台。
-
-如果你有足够的野心来加强你的团队的编写和协作能力,[Nextcloud][10](一个开源的云协作套件)是一个让你的 DevOps 团队上网并给他们提供编写文档所需工具的选择。
-
-### DevOps 最佳实践
-
-文档在 DevOps 转型中也发挥着作用。例如,组织从 DevOps 实现效率和流程增益的最佳实践的相关记录,这些信息太重要了,不能靠着 DevOps团中之间口口相传。如果你所在的组织有多个 DevOps 团队,那么文档就是统一的力量,它可以促进最佳实践的标准化,并设置了衡量代码质量的基准指标。。
-
-一般情况下,开发人员承担了记录 DevOps 实践的工作。即使他们的组织有技术作家,他们也可能跨开发团队工作。因此,开发人员和系统管理员能够捕捉、记录和交流他们的最佳实践是很重要的。这里有一些朝正确的方向发展的提示:
-
-* 提前花时间为 DevOps 最佳实践创建标准模板。不要陷入复制在线模板,采访利益相关者和团队来创建一个符合团队需求的模板。
-* 寻找一些方法进行信息收集,例如记录团队会议和使用聊天系统日志来作为文档的基础。
-* 建立一个用于发布最佳实践的 wiki。使用 wiki 可以跟踪编辑和更新。这样的平台可以帮助团队在最佳实践发生变化时进行更新和维护。
-
-当在构建 CI/CD 工具链时记录依赖关系是非常明智的。尤其是当加入新的团队成员时,你会发现这些记录非常有用,另外当团队成员忘记一些事情时,这也是一种保险。
-
-最后,自动化对 DevOps 利益相关者和从业者都很有吸引力。在自动化中断之前,一切都很有趣。拥有自动化运行手册、管理指南和其他内容的文档(并且是最新的)意味着无论何时发生故障,员工都可以让自动化重新工作。
-
-### 最后一些想法
-
-DevOps 对于技术文档来说是一个积极的因素。它将内容开发纳入DevOps生命周期,并打破组织文化中开发人员和技术作者之间的隔阂。没有技术作家的优势,团队就可以使用工具来加快文档创作的速度,以与DevOps的速度相匹配。
-
-您的组织将如何把文档加入到 DevOps 生命周期?请在评论区分享您的经验。
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/3/devops-documentation
-
-作者:[Will Kelly][a]
-选题:[lujun9972][b]
-译者:[Veryzzj](https://github.com/Veryzzj)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/willkelly
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/typewriter-hands.jpg?itok=oPugBzgv "Typewriter with hands"
-[2]: https://opensource.com/article/19/11/hiring-technical-writers-devops
-[3]: https://searchitoperations.techtarget.com/opinion/Make-DevOps-documentation-an-integral-part-of-your-strategy?_ga=2.73253915.980148481.1610758264-908287796.1564772842
-[4]: https://www.agilealliance.org/glossary/definition-of-done
-[5]: https://developers.google.com/season-of-docs
-[6]: https://swagger.io/specification/
-[7]: https://devops.com/continuous-documentation
-[8]: https://www.cmswire.com/cms/information-management/the-importance-of-docops-in-the-new-era-of-business-027489.php
-[9]: https://opensource.com/article/20/7/sharepoint-alternative
-[10]: https://opensource.com/article/20/7/nextcloud
From 3f3b569f75696010eb5327c852269a3c8f73ae37 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Thu, 15 Dec 2022 10:51:05 +0800
Subject: [PATCH 047/266] RP
@robsean
https://linux.cn/article-15350-1.html
---
...Install GNOME Desktop Environment in Linux Mint.md | 45 ++++++++++---------
1 file changed, 24 insertions(+), 21 deletions(-)
rename {translated/tech => published}/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md (66%)
diff --git a/translated/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md b/published/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md
similarity index 66%
rename from translated/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md
rename to published/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md
index 2547594576..f521aaceed 100644
--- a/translated/tech/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md
+++ b/published/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md
@@ -3,48 +3,50 @@
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
[#]: translator: "robsean"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15350-1.html"
如何在 Linux Mint 上安装 GNOME 桌面环境
======
+![][0]
+
Linux Mint 是一款极好的 Linux 发行版,特别适合初学者。
-我喜欢它仍然保持常见的 Ubuntu/Debian 字体,但是它还做了一些 [比 Ubuntu 更好的][1] 工作。其中之一就是它没有使用 Snaps 。
+我喜欢它仍然保持常见的 Ubuntu/Debian 习惯,但是它还做了一些 [比 Ubuntu 更好的][1] 工作,其中之一就是它没有使用 Snap。
然而,我不是 Cinnamon 桌面环境的粉丝,因为我从来没有真正地喜欢过 Windows XP 或 7 的默认设置。
-当我在为 Linux Mint 寻找能提供稳定使用 GNOME 的能力时,这便是我最终获得的结果:
+当我寻求保持 Linux Mint 稳定的同时而提供 GNOME 的能力时,这便是我最终获得的结果:
![install gnome in linux mint][2]
-这就是我运行 GNOME 42.5 的 Linux Mint 21 。
+不太炫,这就是我运行 GNOME 42.5 的 Linux Mint 21 。
如果你想在 Linux Mint 上安装 GNOME ,那么这篇指南非常适合你。
### 在 Linux Mint 上安装GNOME 之前所要知道的事
-你真的应该有足够的理由来在 Mint 上安装 GNOME 。如果你只是为了尝鲜,可以在虚拟机中尝试。我使用 [在 VirtualBox 中安装的 Linux Mint][3] 来演示这篇教程。
+要在 Mint 上安装 GNOME,你务必需要有足够的理由。如果你只是为了尝鲜,可以在虚拟机中尝试。我使用 [在 VirtualBox 中安装的 Linux Mint][3] 来演示这篇教程。
-在发行版上安装一种桌面环境与直接使用来自发行版所提供的桌面环境相比,移除桌面环境部分会使其变成一件很复杂化的事。
+安装除发行版提供的桌面环境之外的其他桌面环境,移除桌面环境部分会使其变成一件很复杂的事。
-Cinnamon 使用一些 GNOME 元素。如果你决定稍后移除 GNOME ,这可能会影响到 Cinnamon 的一部分功能。
+Cinnamon 使用了一些 GNOME 元素。如果你决定稍后移除 GNOME ,这可能会影响到 Cinnamon 的一部分功能。
这可能会导致缺少实战经验用户的恐慌。当然,在 TTY 屏幕中重新安装 Cinnamon 桌面环境可能是一种可行的解决方案。
-最重要的一点是,如果你很容易惊慌地不知所措和不喜欢解决难题,那么你就不应该在你的主力计算机上做这些 ‘试验’ 。
+最重要的一点是,如果你很容易惊慌地不知所措和不喜欢解决难题,那么你就不应该在你的主力计算机上做这些 “试验” 。
抛开这些顾虑,让我们看看在 Linux Mint 上获取 GNOME 的简单过程。
### 在 Linux Mint 上安装 GNOME 桌面环境
-在这里,你有两个选项。1、你可以使用包含所有的 GNOME 实用程序的完整的 GNOME 桌面,2、你也可以使用包含极少数软件包的 GNOME 精简版本、
+在这里,你有两个选项:1、你可以使用包含所有的 GNOME 实用程序的完整的 GNOME 桌面,2、你也可以使用包含极少数软件包的 GNOME 精简版本。
我都将讲解一下。
-为 **安装精简版本的 GNOME** ,你需要安装一个名称为 `vanilla-GNOME` 的软件包,使用下面给定的命令:
+为 **安装精简版本的 GNOME** ,你需要安装一个名称为 `vanilla-gnome-desktop` 的软件包,使用下面给定的命令:
```
sudo apt install vanilla-gnome-desktop
@@ -60,29 +62,29 @@ sudo apt install gnome
![choose display manager][4]
-`gdm3` 是 GNOME 桌面的显示管理器,而 Linux Mint 使用 `lightdm` 作为默认的显示管理器,这两种显示器都可以正常工作,但是,我建议你使用 gdm3 来获取完整的 GNOME 体验。
+`gdm3` 是 GNOME 桌面的显示管理器,而 Linux Mint 使用 `lightdm` 作为默认的显示管理器,这两种显示器都可以正常工作,但是,我建议你使用 `gdm3` 来获取完整的 GNOME 体验。
#### 切换到 GNOME
-在完成后,注销并按一次 enter 按键,在这里,你将看到一个小齿轮图标。从这里选择 GNOME :
+在完成后,注销并按一次回车键,在这里,你将看到一个小齿轮图标。从这里选择 “GNOME” :
![choose gnome while logging in][5]
现在,你拥有以 Linux Mint 为基础的 GNOME 桌面环境!
-#### 额外提示:如何应用整体风格一致的主题
+#### 额外提示:如何应用整体风格一致的主题
你可以继续使用 Cinnamon 桌面的主题,但是它们大多不能如前工作,因此,我建议使用 GNOME 桌面的主题(例如 Adwaita )来保持桌面环境的一致性。
-对我而言,其默认的字体没有一点效果。并且,我更喜欢 Fedora 提供的一些字体。因此,从系统菜单打开 GNOME 调整GNOME tweaks 窗口,并作出如下更改:
+对我而言,其默认的字体没有一点效果。并且,我更喜欢 Fedora 提供的一些字体。因此,从系统菜单打开 GNOME 调整GNOME tweaks,并作出如下更改:
![change fonts in ubuntu to have vanilla gnome experience][6]
-这里是我使用的一些东西:
+这里是我使用的一些设置:
-- **Cantarell Regular (11)** 用于界面和文档文本。
-- **Noto Sans Mono Regular (13)** 用于等宽字体文本。
-- **Cantarell Bold (11)** 用于窗口标题。
+- `Cantarell Regular (11)` 用于界面和文档文本。
+- `Noto Sans Mono Regular (13)` 用于等宽字体文本。
+- `Cantarell Bold (11)` 用于窗口标题。
它们的结果是,比默认的 Ubuntu 字体方案要好得多。
@@ -101,7 +103,7 @@ via: https://itsfoss.com/install-gnome-linux-mint/
作者:[Sagar Sharma][a]
选题:[lkxed][b]
译者:[robsean](https://github.com/robseans)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -114,3 +116,4 @@ via: https://itsfoss.com/install-gnome-linux-mint/
[5]: https://itsfoss.com/wp-content/uploads/2022/11/choose-gnome-while-logging-in.png
[6]: https://itsfoss.com/wp-content/uploads/2022/11/change-fonts-in-ubuntu-to-have-vanilla-gnome-experience.png
[7]: https://itsfoss.com/install-switch-themes-gnome-shell/
+[0]: https://img.linux.net.cn/data/attachment/album/202212/15/104944fkv32vbys5x1hiv9.jpg
\ No newline at end of file
From c4e3906856be7866a4e4ed27964d4886ff77673e Mon Sep 17 00:00:00 2001
From: CanYellow
Date: Thu, 15 Dec 2022 12:22:29 +0800
Subject: [PATCH 048/266] =?UTF-8?q?Update=2020221202.0=20=E2=AD=90?=
=?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=208=20ideas=20for=20measuring=20you?=
=?UTF-8?q?r=20open=20source=20software=20usage.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️⭐️ 8 ideas for measuring your open source software usage.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
index 892fce0de0..6c4a9eec17 100644
--- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
+++ b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics"
[#]: author: "Georg Link https://opensource.com/users/georglink"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "CanYellow"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From a12b71f4a9b23ff753d029da58944ca5ea6efd04 Mon Sep 17 00:00:00 2001
From: CanYellow
Date: Thu, 15 Dec 2022 12:26:09 +0800
Subject: [PATCH 049/266] =?UTF-8?q?Update=2020221202.0=20=E2=AD=90?=
=?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=208=20ideas=20for=20measuring=20you?=
=?UTF-8?q?r=20open=20source=20software=20usage.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️⭐️ 8 ideas for measuring your open source software usage.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
index 6c4a9eec17..892fce0de0 100644
--- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
+++ b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics"
[#]: author: "Georg Link https://opensource.com/users/georglink"
[#]: collector: "lkxed"
-[#]: translator: "CanYellow"
+[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 422144d4f431c3a30560b470b3b39fab42d1482e Mon Sep 17 00:00:00 2001
From: chai001125 <94744119+chai001125@users.noreply.github.com>
Date: Thu, 15 Dec 2022 19:36:24 +0800
Subject: [PATCH 050/266] translated
---
... 5 Best Linux Phones to Watch Out for in 2023.md | 226 ------------------
... 5 Best Linux Phones to Watch Out for in 2023.md | 223 +++++++++++++++++
2 files changed, 223 insertions(+), 226 deletions(-)
delete mode 100644 sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
create mode 100644 translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
diff --git a/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
deleted file mode 100644
index d91fa7bea4..0000000000
--- a/sources/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
+++ /dev/null
@@ -1,226 +0,0 @@
-[#]: subject: "5 Best Linux Phones to Watch Out for in 2023"
-[#]: via: "https://www.debugpoint.com/best-linux-phones/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: "chai001125"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-5 Best Linux Phones to Watch Out for in 2023
-======
-
-**Here’s a list of the best Linux Phones which may become more mainstream in 2023 with their features and price.**
-
-Android and iOS smartphones are the most popular ones around the world. However, many of you look for something more “open” and better at privacy. If you use Android, you forfeit your privacy. Apple’s iOS is a little better on that – but again – it’s a “walled garden”.
-
-That’s why Linux phones are becoming popular nowadays because they contain many options for developers and end users. Although various types of Linux phones are currently available, it still becomes confusing to choose the best one. Looking at the trends of 2022, here are some of the Linux Phones which may become more mainstream in 2023.
-
-### Things you should know about Linux Phones
-
-Before you read or even plan to buy one, there are a couple of things you should know about. Here are some of them:
-
-- The Linux phones use a modified version of mainstream Linux distribution with a mobile-friendly desktop environment. This is the same for most of the phones available today.
-- You must manage your expectations if you plan to buy a phone and use it for your daily driver. Because the Linux phone operating systems, device features, and app ecosystem is still in the early stages, and it’s not close to the Android or iOS ecosystem,
-- However, Linux phones with the operating system provide the best privacy feature, which might be the reason you can make a move.
-
-### Best Linux Phones
-
-#### Librem from Purism
-
-The Librem 5 – Purism is quite a famous brand in the Linux phone market. The Librem 5 model comes with PureOS, an OS designed for Linux Mobiles and not based on the android or iOS platform. It is a natively designed free and open-source OS. PureOS also supports convergence. That means you can plug your phone into a monitor via a USB hub and use it as a desktop OS.
-
-The phone has premium hardware and feels and focuses on security and privacy. However, this impressive smartphone comes with a little higher price tag of $1299.
-
-#### Key features & specification
-
-- Fully free and open-source Linux-based mobile operating system: PureOS
-- Separate modem, Wi-Fi and Bluetooth chip
-- Three dedicated hardware keys to enable and disable – internet, camera, Wi-Fi and Bluetooth
-- Smart card reader
-- SD card reader
-- User-replaceable battery
-
-![Librem 5][1]
-
-| Specification | Description |
-| :- | :- |
-| **Screen** | 5.7″ (IPS TFT 720×1440) |
-| **RAM** | 3 GB |
-| **Storage** | 32 GB eMMC |
-| **Battery** | 4500mAh |
-| **CPU** | NXP i.MX 8M QUAD CORE Cortex-A53 with 64 bit ARM @max 1.5GHz |
-| **GPU** | Vivante GC7000 Lite |
-| **Screen** | 5.7Inches IPS TFT 720×1440 |
-| **Camera** | 13 Mpx with LED Flash (Rear) and 8 Mpx (Front) |
-| **USB** | USB Type C |
-
-[Official page for buying options of Librem 5][2]
-
-#### Pinephone
-
-Second on the list is Pinephone, perhaps the most complete and usable Linux phone in the market. Developed by Pine64, it has excellent features and supports multiple Linux ARM distributions for mobile phones.
-
-In addition, PinePhone comes in multiple versions, including a pro version, simultaneously. It is an excellent option for Linux phones as it is also cheaper. PinePhone focuses on the user’s privacy and extensibility and can be a good option if you want to start the first time with Linux phones.
-
-#### Key features & specification
-
-- Supports KDE Plasma mobile, Manjaro mobile, Sailfish OS, and Ubuntu touch
-- It comes with five kill switches for LTE, Cameras, Wifi/BT, and Microphones
-- Bootable microSD and 16GB/32GB eMMC
-- USB Type C (Power, Data and Video Out)
-- Six pogo pins allow custom hardware extensions such as a thermal camera, wireless charging, NFC, an extended battery case, or a keyboard case.
-- 3.5 headphone jack
-- Supports convergence to extend it as a PC
-- Affordable price with starting $149 and $199
-
-![Pinephone][3]
-
-| Specification | Description |
-| :- | :- |
-| **Screen** | 5.95 Inches, HD IPS capacitive touchscreen |
-| **CPU** | Allwinner A64 ARM QUAD Core Cortex-A53 and 64bit |
-| **GPU** | Mali-400 MP2 |
-| **RAM** | Two Variants: 2GB and 3GB LPDDR3 SDRAM |
-| **Storage** | Two Variants: 16GB and 32GB eMMC. |
-| **Camera** | Single 5MP, 1/4″, LED Flash (Rear) and Single 2MP, f/2.8, 1/5″ (Front) |
-| **Battery** | Li-ion (capacity 2800mAh) |
-| **Audio Jack** | 3.5 mm |
-
-[Pinephone buying options][4]
-
-#### Pro 1 X – F(X)tec
-
-[Pro 1 X – F(X)tec][5] is a smartphone that offers various options for operating systems. And it’s arguably the more exciting product in this Linux phone list.
-
-You can use LineageOS, Android, Ubuntu Touch, etc., on the same phone. Moreover, an inbuilt slide-out keyboard makes it more unique and attractive.
-
-Developed by F(x)tec company in London, its new in the market and shows promise. However, it’s not yet out, with planned shipping on December 2022. Hence, you may need to wait a few days for a review.
-
-![Pro 1 X][6]
-
-#### Key features
-
-- First Linux-based smartphone startup with a sliding QUERTY keyboard
-- Supports Ubuntu touch out of the box with an Android option
-- Unlocked bootloader
-- 3.5 headphone jack
-- AMOLED display
-- 128GB/6GB (storage and RAM) starting price $829
-- 256GB/8GB (storage and RAM) starting price $899
-
-| Specification | Description |
-| :- | :- |
-| **CPU** | Snapdragon 662 Qualcomm |
-| **GPU** | Adreno 610 Qualcomm |
-| **RAM** | Two Variants: 6GB and 8GB LPDDR4 |
-| **Storage** | 128GB (expandable up to 2TB) |
-| **Screen** | 5.99″ with curved edge Corning® Gorilla® Glass 3 ( 2160 x 1080 FHD AMOLED Display) |
-| **Camera** | 12MP Sony IMX363 (Rear) and 8MP (Front) |
-| **Battery** | 3200 mAh |
-| **Audio Jack** | 3.5 mm |
-
-[pro 1 x buying options][5]
-
-#### Volla Phone
-
-[Volla Phone][7] can operate simultaneously with two operating systems: Ubuntu Touch and VollaOS. Moreover, VollaOS is a modified android that is google-free and simultaneously focuses on the user’s privacy. At the same time, Ubuntu Touch is a popular Linux phone distro.
-
-#### Key features & specifications
-
-- Free from Google and services
-- No cloud dependency
-- Encrypted device storage
-- Modified Android OS: Volla OS
-- Supports Ubuntu Touch, Manjaro, Sailfish OS
-- USB C charging
-- 3.5 headphone jack
-- Fingerprint log in
-- Offline maps
-
-![Volla Phone][8]
-
-| Specification | Description |
-| :- | :- |
-| **CPU** | MediaTek Helio P23 |
-| **GPU** | ARM Mali-G71 MP2 |
-| **Storage** | 64 GB, eMMC |
-| **RAM** | 4 GB DDR3 RAM |
-| **Screen** | 6.3Inches, IPS, 2340×1080 Pixels |
-| **Camera** | 16MP with Flash (Rear) and 16MP (Front) |
-| **Battery** | 4700 mAh |
-| **USB** | Type C & 3.5mm Audio Jack |
-
-[Volla Phone buying options][9]
-
-#### Fairphone 4
-
-It comes with PostmarketOS; [Fairphone 4][10] is another smartphone that has modular hardware. You can replace its battery effortlessly. Moreover, not just the battery, you can also replace its display, etc., just with a screwdriver.
-
-Fairphone is another Linux phone which comes with modular hardware. It supports PostmarketOS and uses a modified version of Android: FairPhone OS. The primary selling point of this device is its modularity, where you can replace any part of the mobile phone. That includes the display, battery and other components of this device.
-
-#### Specifications
-
-| Specification | Description |
-| :- | :- |
-| **CPU** | Octa-Core Kryo 570 |
-| **RAM** | Two variants: 6GB and 8GB |
-| **Storage** | Two variants: 128GB or 256GB |
-| **GPU** | Adreno 619 |
-| **Screen** | 6.3 inch Full HD+ IPS |
-| **Camera** | Dual 48MP (Rear) and 25MP (Front) |
-| **Battery** | 3905 mAh Li-ion |
-| **Chipset** | Qualcomm SM7225 Snapdragon 750G |
-
-[FairPhone buying options][11]
-
-#### Are there any mainstream Android phones that support Linux OS?
-
-If you don’t want to buy an off-the-shelf mobile phone as listed above, then you can continue using Linux mobile OS in older branded phones because Android is a modified Linux Kernel-based. Hence these devices should work with Ubuntu Touch or PostmarketOS.
-
-- Google Pixel 3a/3a XL
-- Sony Xperia X (F5121 & F5122)
-- Google Nexus 5
-- OnePlus One
-
-- Supported by Ubuntu Touch OS ([full list][12])
-
-- Xiaomi Redmi 2
-- Xiaomi Mi Note 2
-- OnePlus GT
-- OnePlus 6
-
-- Supported by PostmarketOS ([full list][13])
-
-### Closing notes
-
-So, that’s about the best Linux phones available in the market today and will continue in 2023. You can learn more about the above devices from the official website. However, I believe there will be more adoption of Linux phones in the coming days as Privacy becomes a myth every day.
-
-It’s true that to compete with Android and iOS, the device or OS is not sufficient. What is important is the standard, global availability for buying, low entry-level pricing in emerging markets and investment in the app ecosystem. A streamlined vision is required in the phone ecosystem to win. Without it, Linux phones will become more fragmented, as in desktops. The device makers and major FOSS players need to work together to make it successful.
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/best-linux-phones/
-
-作者:[Arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.debugpoint.com/author/admin1/
-[b]: https://github.com/lkxed
-[1]: https://www.debugpoint.com/wp-content/uploads/2022/12/Librem-5-image2.jpg
-[2]: https://puri.sm/products/librem-5/
-[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pinephone.jpg
-[4]: https://pine64.com/product-category/pinephone
-[5]: https://www.fxtec.com/pro1x
-[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pro-1-X.jpg
-[7]: https://volla.online/de/index.html
-[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/Volla-Phone.jpg
-[9]: https://volla.online/de/shop/
-[10]: https://shop.fairphone.com/en/buy-fairphone-4
-[11]: https://shop.fairphone.com/
-[12]: https://devices.ubuntu-touch.io/
-[13]: https://wiki.postmarketos.org/wiki/Devices
diff --git a/translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
new file mode 100644
index 0000000000..e83a6dd39a
--- /dev/null
+++ b/translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
@@ -0,0 +1,223 @@
+[#]: subject: "5 Best Linux Phones to Watch Out for in 2023"
+[#]: via: "https://www.debugpoint.com/best-linux-phones/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: "chai001125"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+2023 年值得期待的 5 个最好的 Linux 手机
+======
+
+>以下是一份**可能在 2023 年成为手机界主流的最好的 Linux 手机榜单**,其中还例举了各个 Linux 手机的**特点和价格**。
+
+安卓和 iOS 智能手机是世界上最流行的手机。然而,还有许多人都想要更"开放"、且**在隐私方面做得更好的手机**。如果你使用安卓手机,那么你就是放弃了你的隐私。在个人隐私保护方面,苹果的 iOS 手机表现得要好一点,但它也仅提供了有限的隐私保护。
+
+这就是现在 Linux 手机变得很流行的原因,因为它们为开发者和终端用户提供了许多选择。虽然,各种类型的 Linux 手机都已经上市,但是要选择最好的 Linux 手机仍然十分困难。从 2022 年的趋势来看,以下是一些可能在 2023 年成为主流的 Linux 手机。
+
+### 关于 Linux 手机,你需要知道的事情
+
+当你浏览或者计划购买一部 Linux 手机之前,你应该先了解以下关于 Linux 手机的事情:
+
+- Linux 手机使用的是主流 Linux 发行版的修改版,它有一个适合手机的桌面环境。这对今天的大多数手机(例如安卓、苹果 iOS)来说,也是类似的。
+- 如果你打算买一部 Linux 手机,并将其作为你日常所使用的手机的话,请不要太期待这个 Linux 手机。因为 Linux 手机的操作系统、功能和应用生态系统仍处于早期发展阶段,远远比不上与安卓或 iOS 手机。
+- 然而,Linux 手机的操作系统提供了最好的隐私功能,这会成为你想要出手买一部 Linux 手机的原因。
+
+### 最好的 Linux 手机
+
+#### 1、Librem🥇
+
+**Purism** 公司是 Linux 手机市场上一个相当著名的品牌。Purism 公司推出的 **Librem 5 Linux** 智能手机支持 **PureOS**。PureOS 是一个专为 Linux 手机设计的操作系统,不基于安卓或 iOS 系统;并且它是一个开源的操作系统;它还支持 融合 convergence ,这意味着你可以通过 USB 集线器将手机插入电脑显示器,并将其作为一个桌面操作系统使用🆒。
+
+这款手机拥有优质的硬件和手感,并还十分注重安全和隐私。但是,这款令人印象深刻的智能手机价格有点贵,售价为 1299 美元💔。
+
+#### Librem 5 Linux 的主要特点和规格
+
+- 完全免费和开源的,基于 Linux 的移动操作系统:PureOS
+- 拥有独立的调制解调器、Wi-Fi 和蓝牙芯片
+- 拥有 3 个专门的硬件键,来启用和禁用互联网、相机、Wi-Fi 和蓝牙
+- 拥有智能卡读卡器
+- 拥有 SD 卡读卡器
+- 电池可更换
+
+![Librem 5][1]
+
+| 规格 | 描述 |
+| :- | :- |
+| **屏幕** | 5.7 英寸(IPS TFT 720×1440) |
+| **运行内存 RAM** | 3 GB |
+| **内存** | 32 GB eMMC |
+| **电池容量** | 4500 mAh |
+| **CPU** | NXP i.MX 8M QUAD CORE Cortex-A53(四核),64 位 ARM,最高主频为 1.5GHz |
+| **GPU** | Vivante GC7000 Lite |
+| **屏幕尺寸、材质、分辨率** | 5.7 英寸,IPS TFT,720×1440 像素 |
+| **摄像头** | 带 LED 闪光灯的 1300 万像素(后置)摄像头和 800 万像素(前置)摄像头 |
+| **USB 接口** | Type C 接口 |
+
+有点兴趣?你可以进一步浏览 [Librem 5 的购买官网][2]。
+
+#### 2、Pinephone🥈
+
+Linux 手机榜单的第 2 名是 **Pinephone**。Pinephone 也许是市场上最完善、最实用的 Linux 手机了。它由 **Pine64** 公司开发,具有出色的功能,并是支持多种 Linux ARM 的移动发行版。
+
+此外,PinePhone 同时有很多个版本,其中包括专业版本。PinePhone 的价格比较便宜,并且十分注重用户的隐私和可扩展性,如果你是第一次使用 Linux 手机,PinePhone 将会是一个不错的选择😌。
+
+#### Pinephone 的主要特点和规格
+
+- 支持的操作系统有 KDE Plasma mobile、Manjaro mobile、Sailfish OS 和 Ubuntu touch。
+- 配备启用和禁用 LTE、摄像头、Wifi/BT 和麦克风的 5 个开关
+- 可启动的 microSD 和 16GB/32GB eMMC 的内存空间
+- Type C 接口(可用于电源、数据和视频输出)
+- 拥有 6 个 Pogo 引脚,允许自定义硬件扩展,如热像仪、无线充电、NFC、扩展电池盒或键盘盒。
+- 拥有 3.5 毫米耳机插孔
+- 支持融合,可将其插到一台电脑上
+- 价格实惠,2 种型号的售价分别为 149 美元和 199 美元起
+
+![Pinephone][3]
+
+| 规格 | 描述 |
+| :- | :- |
+| **屏幕** | 5.95 英寸,高清 IPS 电容式触摸屏 |
+| **CPU** | Allwinner A64 ARM QUAD Core Cortex-A53(四核),64 位 |
+| **GPU** | Mali-400 MP2 |
+| **运行内存 RAM** | 2 种型号:2GB 和 3GB LPDDR3 SDRAM |
+| **内存** | 2 种型号:16GB and 32GB eMMC. |
+| **摄像头** | 500 万像素、1/4英寸、LED 闪光灯(后置)摄像头和 200 万像素、1/5英寸(前置)摄像头 |
+| **电池** | 锂离子电池(容量为 2800 mAh) |
+| **音频插孔** | 3.5 毫米 |
+
+想要入手你的第一部 Linux 手机?请进一步浏览 [Pinephone 的购买官网][4] 吧。
+
+#### 3、Pro 1 X – F(X)tec🥉
+
+[**Pro 1 X** – F(X)tec][5] 是一款提供各种操作系统选择的智能手机,因此它是 Linux 手机榜单中十分令人激动的一项产品。
+
+Pro 1 X **支持各种操作系统**,例如 LineageOS、安卓、Ubuntu Touch 等。此外,一个**内置的滑出式键盘**使它看起来更加独特且十分有吸引力。
+
+Pro 1 X 由伦敦的 **F(x)tec** 公司开发。它是 Linux 手机市场上新出的产品,很有前景。然而,这个手机还没有上市,计划在 2022 年 12 月开始发货。因此,你可能需要等待几天,才能看到别人对这部手机的评价。
+
+![Pro 1 X][6]
+
+#### Pro 1 X 的主要特点和规格
+
+- 首款基于 Linux 的、有内置滑出式键盘的智能手机
+- 支持 Ubuntu touch 操作系统,并有安卓选项
+- 解锁的启动程序
+- 拥有 3.5 毫米耳机插孔
+- 拥有 AMOLED 显示屏
+- 128 GB 内存/6 GB 运行内存:售价为 829 美元起
+- 256 GB 内存/8 GB 运行内存:售价为 899 美元起
+
+| 规格 | 描述 |
+| :- | :- |
+| **CPU** | Snapdragon 662 Qualcomm |
+| **GPU** | Adreno 610 Qualcomm |
+| **运行内存 RAM** | 2 种型号:6GB 和 8GB LPDDR4 |
+| **内存** | 128 GB(可扩展至 2 TB) |
+| **屏幕** | 5.99英寸,弧形边缘,Corning® Gorilla® Glass 3(分辨率为 2160 x 1080 像素的 AMOLED 显示屏) |
+| **摄像头** | 1200 万像素 Sony IMX363(后置)摄像头和800万像素(前置)摄像头 |
+| **电池容量** | 3200 mAh |
+| **音频插孔** | 3.5 毫米 |
+
+它的内置滑出式键盘有没有吸引到你呢?去 [pro 1 x 的购买官网][5] 看看吧。
+
+#### 4、Volla Phone
+
+[Volla Phone][7] 可以同时运行**两个操作系统:Ubuntu Touch 和 VollaOS**。
+
+VollaOS 是一个安卓操作系统的修改版,没有谷歌,同时也很注重用户的隐私;Ubuntu Touch 是一个流行的 Linux 手机发行版。
+
+#### Volla Phone 的主要特点和规格
+
+- 没有谷歌及其服务
+- 不依赖云计算
+- 加密的设备存储
+- 使用安卓操作系统的修改版:Volla OS
+- 支持的操作系统有 Ubuntu Touch,Manjaro,Sailfish OS
+- 拥有 USB C 充电口
+- 拥有 3.5 毫米耳机插孔
+- 可以用指纹解锁
+- 拥有离线地图
+
+![Volla Phone][8]
+
+| 规格 | 描述 |
+| :- | :- |
+| **CPU** | MediaTek Helio P23 |
+| **GPU** | ARM Mali-G71 MP2 |
+| **内存** | 64 GB,eMMC |
+| **运行内存 RAM** | 4 GB DDR3 RAM |
+| **屏幕尺寸、材质、分辨率** | 6.3 英寸,IPS,2340×1080 像素 |
+| **摄像头** | 1600万像素带闪光灯的(后置)摄像头和1600万像素(前置)摄像头 |
+| **电池容量** | 4700 mAh |
+| **USB 接口** | Type C 接口和 3.5 毫米音频插孔 |
+
+这个手机看起来也很不错呢,不妨到 [Volla 的购买官网][9] 看看吧。
+
+#### 5、Fairphone 4
+
+[Fairphone 4][10] 是另一款具有模块化硬件的 Linux 智能手机。它支持 PostmarketOS 操作系统,并使用安卓操作系统的修改版本:FairPhone OS。这个手机的主要卖点是它的 模块化 modularity ,你可以替换手机的任何模块:你可以毫不费力地更换它的电池🔋;此外,不仅仅是更换电池,你还可以简单地用螺丝刀来更换它的显示屏等部件。
+
+#### Fairphone 4 的规格
+
+| 规格 | 描述 |
+| :- | :- |
+| **CPU** | Octa-Core Kryo 570(八核) |
+| **运行内存 RAM** | 2 种型号:6GB 和 8GB |
+| **内存** | 2 种型号:128GB 和 256GB |
+| **GPU** | Adreno 619 |
+| **屏幕** | 6.3 英寸,全高清,IPS |
+| **摄像头** | 2 个 4800 万像素(后置)摄像头和 2500 万像素(前置)摄像头 |
+| **电池** | 锂离子电池(容量为 3905 mAh)|
+| **芯片组** | Qualcomm SM7225 Snapdragon 750G |
+
+进一步可浏览 [FairPhone 的购买官网][11]。
+
+#### 是否有支持 Linux 操作系统的主流安卓手机呢?
+
+如果你不想购买上述现成的 Linux 手机,那么你也可以在**安卓手机**上使用 Linux 移动操作系统,因为安卓是基于 Linux 内核上修改的。因此,这些手机应该也能使用 Ubuntu Touch 或 PostmarketOS 操作系统。
+
+- Google Pixel 3a/3a XL
+- Sony Xperia X (F5121 & F5122)
+- Google Nexus 5
+- OnePlus One
+- 支持 Ubuntu Touch OS 操作系统的[完整列表][12]
+- Xiaomi Redmi 2
+- Xiaomi Mi Note 2
+- OnePlus GT
+- OnePlus 6
+- 支持 PostmarketOS 操作系统的[完整列表][13]
+
+### 结语
+
+以上就是关于如今市场上最好的 Linux 手机的全部内容了。你可以从这些手机的官方网站上,了解更多信息。因为手机的隐私保护在当下变得越来越重要了,我相信在未来会有越来越多的人使用 Linux 手机。
+
+诚然,Linux 手机本身的功能及其操作系统比不上安卓和苹果 iOS 手机。但是,对于 Linux 手机来说,更重要的是它的标准的设立、全球购买的可行性、在这一新兴市场的低入门价格以及对 Linux 手机应用生态系统的大力投资。在 Linux 手机的生态系统中需要更简化的界面,没有简单的界面,Linux 手机将变得更加零散,就像台式机一样。Linux 手机的制造商还需要和自由及开源软件(FOSS)参与者一起合作,最终才能使 Linux 手机广受欢迎。
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/best-linux-phones/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[chai001125](https://github.com/chai001125)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2022/12/Librem-5-image2.jpg
+[2]: https://puri.sm/products/librem-5/
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pinephone.jpg
+[4]: https://pine64.com/product-category/pinephone
+[5]: https://www.fxtec.com/pro1x
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/Pro-1-X.jpg
+[7]: https://volla.online/de/index.html
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/Volla-Phone.jpg
+[9]: https://volla.online/de/shop/
+[10]: https://shop.fairphone.com/en/buy-fairphone-4
+[11]: https://shop.fairphone.com/
+[12]: https://devices.ubuntu-touch.io/
+[13]: https://wiki.postmarketos.org/wiki/Devices
From 9dabf995363d2a9170f17bfa9e8f3dcd74268274 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 15 Dec 2022 19:56:23 +0800
Subject: [PATCH 051/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221215.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Ho?=
=?UTF-8?q?w=20to=20Switch=20from=20Debian=20Stable=20to=20Testing.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️ How to Switch from Debian Stable to Testing.md | 159 ++++++++++++++++++
1 file changed, 159 insertions(+)
create mode 100644 sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md
diff --git a/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md b/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md
new file mode 100644
index 0000000000..3f0d190572
--- /dev/null
+++ b/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md
@@ -0,0 +1,159 @@
+[#]: subject: "How to Switch from Debian Stable to Testing"
+[#]: via: "https://itsfoss.com/switch-debian-stable-testing/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Switch from Debian Stable to Testing
+======
+
+If you are looking for the most stable Linux distribution, sure, Debian is the right choice.
+
+Especially if you are planning to use it on servers.
+
+But, on the desktop side, things are a bit different. I mean, you are given packages that are at least a year old and support for new-age hardware is even worse.
+
+So what do you do in those cases, Well, you can use Debian testing!
+
+But before jumping to the explanation part, let’s briefly understand Debian testing.
+
+### What is Debian Testing?
+
+Debian offers you 3 variants of Debian:
+
+- Debian stable (what you get by default from their homepage).
+- Debian testing (has **newer packages** and breaks less often than Debian unstable).
+- Debian unstable (has the most recent packages and is **considered the most fragile of all**).
+
+So Debian testing can be considered a sweet spot between stability and fresh packages.
+
+I’ve been playing around with Debian testing for some time and haven’t faced any issues.
+
+In fact, many Debian users prefer the testing variant over the stable version. Despite the name testing, it is pretty usable.
+
+But still, **I would recommend you to experiment with this on VM,** try using it with your primary tools and if things go well, you can apply those changes in the main system.
+
+### Switch from Debian stable to Debian testing
+
+**_Warning: You can not downgrade from Debian testing to Debian stable, as installer scripts and installation tools are only designed to replace the older version with the new one._**
+
+Also, I would recommend [using timeshift to create a backup][1] before applying the shown steps on your main machine.
+
+First, update the existing packages using the given command:
+
+```
+sudo apt update && sudo apt upgrade -y
+```
+
+Next, make a copy of original `sources.list` file:
+
+```
+sudo cp /etc/apt/sources.list sources.list.backup
+```
+
+Now, let’s start with the first step.
+
+#### Step 1: Edit sources.list file
+
+There are two ways of editing `sources.list` file. Either you can manually alter the current release name with `testing` or you can [use the sed command][2] to get your job done.
+
+And I’m going with a 2nd one to make the whole process easier. You just have to use the given command, and it will replace `bullseye` with `testing` for you:
+
+```
+sudo sed -i 's/bullseye/testing/g' /etc/apt/sources.list
+```
+
+Now, open your terminal and use the given command to open `sources.list` files:
+
+```
+sudo nano /etc/apt/sources.list
+```
+
+And comment out the lines having `security.debian.org` and anything that ends with `-updates` as shown below:
+
+![comment out security sources][3]
+
+If you are using nano as I do, you can press `Alt + /` to jump to the end of the line. And then you have to add the following line:
+
+```
+deb http://security.debian.org testing-security main
+```
+
+![2. add line to keep track of testing in debian][4]
+
+And [save the changes and exit from the nano][5] text editor.
+
+#### Step 2: Update the Repository and install new packages
+
+Now, update the repository index, and it will show you a massive update pending:
+
+```
+sudo apt update
+```
+
+![update repository in linux][6]
+
+Now, you can use the given command, and it will get you the most recent packages:
+
+```
+sudo apt upgrade
+```
+
+Sit back and relax as it is going to take a while.
+
+Once done, it will present you with the list of changes made as you switched from Debian stable to testing:
+
+![packages that are updated when switched to debian testing][7]
+
+You can read if you want or you can **just press q** to proceed further.
+
+Now, it will show you the message that some of the libraries installed on your system needs to restart. Press the **TAB** key, and it will select the **OK** option, and then press **Enter:**
+
+![libraries needs to be restarted after update][8]
+
+Next, it will ask you whether you want to restart services during the package upgrade. Here you have a choice. As I’m doing this for desktop usage only, I will go with `YES`:
+
+![restart services during package upgrades without asking?][9]
+
+Once done, you can reboot your system and then use the following command to have full effect from the changes you’ve just made:
+
+```
+sudo apt full-upgrade
+```
+
+Now, reboot your system, and you’ll have the most recent packages. Such as **I was running GNOME 43** when I got into the system:
+
+![running gnome 43 in debian][10]
+
+### Wrapping Up
+
+In this tutorial, I explained how you could switch from Debian stable to Debian testing. I hope this will be helpful to you.
+
+And if you face any issues or have any queries, let me know in the comments.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/switch-debian-stable-testing/
+
+作者:[Sagar Sharma][a]
+选题:[lkxed][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/sagar/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/backup-restore-linux-timeshift/
+[2]: https://linuxhandbook.com/sed-command-basics/
+[3]: https://itsfoss.com/wp-content/uploads/2022/11/comment-out-security-sources.gif
+[4]: https://itsfoss.com/wp-content/uploads/2022/11/2.-add-line-to-keep-track-of-testing-in-debian.png
+[5]: https://linuxhandbook.com/nano-save-exit/
+[6]: https://itsfoss.com/wp-content/uploads/2022/11/update-repository-in-linux.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/11/packages-that-are-updated-when-switched-to-debian-testing.png
+[8]: https://itsfoss.com/wp-content/uploads/2022/11/libraries-needs-to-be-restarted-after-update.png
+[9]: https://itsfoss.com/wp-content/uploads/2022/11/restart-services-during-package-upgrades-without-asking.png
+[10]: https://itsfoss.com/wp-content/uploads/2022/11/running-gnome-43-in-debian.png
From 60b3add05bc8ca84f0e0a79b824f6810bd4d1e90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 15 Dec 2022 19:57:44 +0800
Subject: [PATCH 052/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221215.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Wh?=
=?UTF-8?q?y=20Drupal=20is=20the=20future=20of=20content=20strategy.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... Why Drupal is the future of content strategy.md | 90 +++++++++++++++++++
1 file changed, 90 insertions(+)
create mode 100644 sources/tech/20221215.1 ⭐️⭐️ Why Drupal is the future of content strategy.md
diff --git a/sources/tech/20221215.1 ⭐️⭐️ Why Drupal is the future of content strategy.md b/sources/tech/20221215.1 ⭐️⭐️ Why Drupal is the future of content strategy.md
new file mode 100644
index 0000000000..572d40c963
--- /dev/null
+++ b/sources/tech/20221215.1 ⭐️⭐️ Why Drupal is the future of content strategy.md
@@ -0,0 +1,90 @@
+[#]: subject: "Why Drupal is the future of content strategy"
+[#]: via: "https://opensource.com/article/22/12/drupal-content-strategy"
+[#]: author: "Suzanne Dergacheva https://opensource.com/users/pixelite"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Why Drupal is the future of content strategy
+======
+
+As a long-time advocate for open source and a contributor to Drupal, I spend a lot of time thinking about how organizations can leverage the platform. I've been thinking about Drupal's position in the larger digital ecosystem and how it compares to the other options on the market. And how Drupal can lean more on its strengths when planning out the strategy for a new project.
+
+### How Drupal fits into the digital landscape
+
+In 2022, putting a site online can be as fast as the time it takes to make a coffee. This is made possible because websites have many similar features and there's usually no need to build one from scratch. When I started my career, frameworks like Ruby on Rails were appealing because of their flexibility. But I quickly learned that the lack of standard solutions for common things like multilingual content, media management, and workflows, meant that each project required a huge investment in custom development.
+
+On the other hand, web builders that have emerged over the last ten years, like Wix and Squarespace offer the dream of "drag-and-drop" website construction and customizable templates. But in reality, their flexibility is very surface-level. They don't offer enough flexibility to build a solid content model, create an experience, or provide the level of content compliance that large organizations need.
+
+This is where Drupal stands out, providing both powerful functionality out-of-the-box, and the tools to build out custom functionality on top of that content.
+
+### Drupal, the content management system
+
+When I started using Drupal 15 years ago, it was described as a content management system. And it is, as it gives content editors the power to log in and manage content, rather than relying on a webmaster or a web developer to do it.
+
+But there was also the promise that site builders could update not just the content, but the content model. Site builders could extend Drupal using configuration instead of writing code. This set it apart from the frameworks that were out at the time. From years of teaching people Drupal, I can tell you that there's a certain amount of joy and empowerment that people get when they realize how much they can do through the Drupal admin UI.
+
+At its core, this is still Drupal's strength. You can control not just the content, but how content is organized. The fact that taxonomy and localization are baked into Drupal's content model, gives a huge advantage over other systems that have a more limited concept of content.
+
+### Drupal, the platform
+
+Shortly after adopting Drupal as our agency's technology of choice, I started calling it a platform. As an ambitious 20-something, I was keen to build more than nice-looking content-rich websites. The ambition was to create more powerful tools to organize the flow of information. This includes integrating Drupal with other systems to build functionality and workflows around your content. You can also create content synchronizations between a CRM and Drupal. Finally, you can search interfaces that allow you to search diverse content sources and filter content in new ways.
+
+The fact that Drupal is so adaptable to these architectures distinguishes it immediately from other CMSs. When talking to large organizations, teams of developers or IT leaders see the benefit of using a technology that is so flexible and adaptable to functional needs.
+
+### Drupal, the digital experience platform
+
+While these attributes are still very compelling, Drupal is now referred to as a digital experience platform (DXP). Its main difference from the proprietary DXPs of the world is that it's open. It doesn't ship with a stack of integrated technologies but rather lets you decide what your stack will be. Whether it's for marketing integrations or multi-channel experiences, you can decide how content feeds into and out of Drupal. This flexibility is one of Drupal's strengths. But it can be a challenge when pitching Drupal against other DXPs that come with a complete marketing toolset.
+
+Marketing folks often look for a packaged solution. And while an agency can package Drupal with a stack of tools, it's hard for Drupal to market this type of ready-to-go solution.
+
+### Drupal's strength as a content strategy platform
+
+So how does Drupal position itself when talking to marketers? Drupal's core strength is still its flexible content architecture. This means that it's an ideal platform for implementing a content strategy and content governance plan. These are two things that plenty of organizations are missing. They are also the two reasons for marketers to adopt a platform like Drupal.
+
+### Better content strategy with Drupal
+
+While Drupal can already be adapted to the content strategy of any organization, it doesn't mean that every Drupal website has a strong content strategy. Drupal implementers have to proactively make choices that prioritize the needs of content and content editors. This means doing things like:
+
+- Organizing content around user needs, not organizational structure
+- Structuring content to be reusable, adaptable, personalized, translatable
+- Integrating content with digital services by making content available via API
+- Setting up tools so that content compliance is checked systematically
+
+Meanwhile, beyond the website, organizations need to use best practices to prioritize their content strategy practice. This means:
+
+- Empowering communicators and treating content editors as first-class users
+- Sharing best practices for web publishing across the organization
+- Creating a clear, actionable content governance plan
+- Using tools like the digital asset management (DAM) tool that fosters content governance
+- Creating a smooth flow of content and feedback between content experts and users
+
+With new expectations of platforms to handle personalization and faster cycles for re-branding or implementing a completely new marketing strategy, it's more important than ever for your website to be a tool to help your content strategy. If you're looking for ways to orient your practice around a strong content strategy, here are some places to start:
+
+- Get content editors involved in the process when launching a new web project
+- Build [documentation][1] that's driven by content needs, not just technology. Use real content examples in your documentation and talk about the "why" of the content.
+- Prioritize ongoing content governance rather than just relying on big projects to revamp your content every 3-5 years
+- Invest in cleaning up legacy content instead of migrating content as-is when you do invest in a website redesign
+- Invest in the content editor experience, something that Drupal facilitates and continues to invest in, but still takes active effort to do for each project
+
+To sum up, Drupal is already a CMS and a DXP. But this is beside the point. There is a need to leverage Drupal's capabilities towards creating a strong content strategy to really get the most out of the platform.
+
+_This article is based on the author's talk at DrupalCon Portland: [Future of content management: using Drupal as a content strategy platform][2]._
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/drupal-content-strategy
+
+作者:[Suzanne Dergacheva][a]
+选题:[lkxed][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/pixelite
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/tags/documentation
+[2]: https://www.youtube.com/watch?v=iexCIUuMWDU
From 1495bbf6d77a0038389d94c1edf63ace90f112e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 15 Dec 2022 20:03:04 +0800
Subject: [PATCH 053/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221215.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Im?=
=?UTF-8?q?prove=20your=20documentation=20with=20JavaScript.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️ Improve your documentation with JavaScript.md | 236 ++++++++++++++++++
1 file changed, 236 insertions(+)
create mode 100644 sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
diff --git a/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md b/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
new file mode 100644
index 0000000000..921b12bf7a
--- /dev/null
+++ b/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
@@ -0,0 +1,236 @@
+[#]: subject: "Improve your documentation with JavaScript"
+[#]: via: "https://opensource.com/article/22/12/dynamic-documentation-javascript"
+[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Improve your documentation with JavaScript
+======
+
+Open source software projects often have a very diverse user group. Some users might be very adept at using the system and need very little documentation. For these power users, documentation might only need to be reminders and hints, and can include more technical information such as commands to run at the shell. But other users may be beginners. These users need more help in setting up the system and learning how to use it.
+
+Writing documentation that suits both user groups can be daunting. The website's documentation needs to somehow balance "detailed technical information" with "providing more overview and guidance." This is a difficult balance to find. If your documentation can't meet both user groups, consider a third option — dynamic documentation.
+
+Explore how to add a little [JavaScript][1] to a web page so the user can choose to display just the information they want to see.
+
+### Structure your content
+
+You can use the example where documentation needs to suit both expert and novice users. In the simplest case, you can use a made-up music player called AwesomeProject.
+
+You can write a short installation document in HTML that provides instructions for both experts and novices by using the class feature in HTML. For example, you can define a paragraph intended for experts by using:
+
+```
+
+```
+
+This assigns both the expert class and the reader class. You can create a parallel set of instructions for novices using:
+
+```
+
+```
+
+The complete HTML file includes both paragraphs for novice readers and experts:
+
+```
+
+
+
+
+
+
+How to install the software
+
+
+
+
+
How to install the software
+
+
Thanks for installing AwesomeProject! With AwesomeProject,
+you can manage your music collection like a wizard.
+
+
But first, we need to install it:
+
+
You can install AwesomeProject from
+source. Download the tar file, extract it, then run:
+./configure ; make ; make install
+
+
AwesomeProject is available in
+most Linux distributions. Check your graphical package manager and search for AwesomeProject to install it.
+
+
+
+
+```
+
+This sample HTML document doesn't have a stylesheet associated with it, so viewing this in a web browser shows both paragraphs:
+
+![Image of html in black text.][2]
+
+We can apply some basic styling to the document to highlight any element with the reader, expert, or novice classes. To make the different text classes easier to differentiate, let's set the reader class to an off-white background color, expert to a dark red text color, and novice to a dark blue text color:
+
+```
+
+
+
+
+
+
+How to install the software
+
+
+
+
+
+
+
+
How to install the software
+```
+
+These styles help the two sections stand out when you view the page in a web browser. Both paragraphs with the installation instructions have an off-white background color because they both have the reader class. The first paragraph uses dark red text, as defined by the expert class. The second installation paragraph is in dark blue text, from the novice class:
+
+![Image of html in red and black text.][3]
+
+### Add JavaScript controls
+
+With these classes applied, you can add a short JavaScript function that shows just one of the content blocks. One way to write this function is to first set `display:none` to all of the elements with the reader class. This hides the content so it won't display on the page. Then the function should set `display:block` to each of the elements with the class you want to display:
+
+```
+
+```
+
+To use this JavaScript in the HTML document, you can attach the function to a button. Since the `readerview`function takes an audience as its parameter, you can call the function with the audience class that you want to view, either novice or expert:
+
+```
+
+
+
+How to install the software
+
+
+
+
+
+
+
+
How to install the software
+
+
+
+
Thanks for installing AwesomeProject! With AwesomeProject,
+you can manage your music collection like a wizard.
+
+
But first, we need to install it:
+
You can install AwesomeProject from
+source. Download the tar file, extract it, then run
+./configure ; make ; make install
+
+
AwesomeProject is available in
+most Linux distributions. Check your graphical package
+manager and search for AwesomeProject to install it.
+
+
+
+```
+
+With these controls in place, the web page now allows the user to select the text they want to see:
+
+![Image of window that allows you to select between novice and expert text.][4]
+
+Clicking either button will show just the text the user wants to read. For example, if you click the “view novice text” button, then you'll see just the blue paragraph:
+
+![Image showing blue text when you press the novice button.][5]
+
+Clicking the “view expert text” button hides the novice text and shows only the expert text in red:
+
+![Image of red text after the expert button is clicked.][6]
+
+### Extend this to your documentation
+
+If your project requires you to write multiple how-to documents for different audiences, consider using this method to publish once and read twice. Writing a single document for all your users makes it easy for everyone to find and share the documentation for your project. And you won't have to maintain parallel documentation that varies in just the details.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/dynamic-documentation-javascript
+
+作者:[Jim Hall][a]
+选题:[lkxed][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/jim-hall
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/downloads/learn-javascript
+[2]: https://opensource.com/sites/default/files/2022-12/publishonec.textblack.png
+[3]: https://opensource.com/sites/default/files/2022-12/publishone.red_.blue_.png
+[4]: https://opensource.com/sites/default/files/2022-12/publishone.novicexpert.png
+[5]: https://opensource.com/sites/default/files/2022-12/publishone.blue_.png
+[6]: https://opensource.com/sites/default/files/2022-12/publishone.red_.png
From 34c7a0e3912dfc8e10a8999313e48a4eed1e9bba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 15 Dec 2022 20:04:08 +0800
Subject: [PATCH 054/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221215.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20En?=
=?UTF-8?q?joy=20two-panel=20file=20management=20on=20Linux=20with=20far2l?=
=?UTF-8?q?.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...y two-panel file management on Linux with far2l.md | 148 ++++++++++++++++++
1 file changed, 148 insertions(+)
create mode 100644 sources/tech/20221215.3 ⭐️⭐️ Enjoy two-panel file management on Linux with far2l.md
diff --git a/sources/tech/20221215.3 ⭐️⭐️ Enjoy two-panel file management on Linux with far2l.md b/sources/tech/20221215.3 ⭐️⭐️ Enjoy two-panel file management on Linux with far2l.md
new file mode 100644
index 0000000000..53340252a5
--- /dev/null
+++ b/sources/tech/20221215.3 ⭐️⭐️ Enjoy two-panel file management on Linux with far2l.md
@@ -0,0 +1,148 @@
+[#]: subject: "Enjoy two-panel file management on Linux with far2l"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-far2l"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Enjoy two-panel file management on Linux with far2l
+======
+
+Far2l is a port of the Windows text-based file manager **Far**. And to be clear, that's a lower-case **L** (as in "Linux") not a number **1**. It runs in the terminal and is designed around a plug-in structure, enabling compatibility with SSH, WebDAV, NFS, and more. You can compile and run far2l on Linux, Mac, and BSD, or Far on Windows.
+
+### Install far2l
+
+Far2l is currently in beta, so you're unlikely to find it in your Linux distribution's software repository. However, you can [compile it from source][1] by downloading cloning its [Git repository][2]:
+
+```
+$ git clone --depth 1 https://github.com/elfmz/far2l.git
+```
+
+You can browse through the source code to see all of its different components. The main source files are in `utils/src`:
+
+```
+SharedResource.cpp
+StackSerializer.cpp
+StringConfig.cpp
+StrPrintf.cpp
+TestPath.cpp
+Threaded.cpp
+ThreadedWorkQueue.cpp
+TimeUtils.cpp
+TTYRawMode.cpp
+utils.cpp
+WideMB.cpp
+ZombieControl.cpp
+```
+
+The file `ZombieControl.cpp` works to [mitigate a zombie apocalypse][3] (at least, in terms of processes), the file `ThreadedWorkQueue.cpp` helps speed processes along by using threading. Far2l isn't just built for extensibility, it's built responsibly!
+
+Assuming you've already prepared your system for compiling code, as described in the [compiling from source][1] article, you must also install some development libraries required by far2l. On Fedora, CentOS, OpenMandriva, and Mageia, the minimal list is:
+
+- wxGTK3-devel
+- spdlog-devel
+- xerces-c-devel
+- uchardet-devel (your repository may not have this one, but there's a workaround)
+
+On Debian, the minimal list is:
+
+- libwxgtk3.0-gtk3-dev
+- libuchardet-dev
+- libspdlog-dev
+- libxerces-c-dev
+
+Use [CMake][4] to prepare the makefiles:
+
+```
+$ mkdir build
+$ cd !$
+$ cmake .. -DUSEUCD=no
+```
+
+The `-DUSECD=no` option is required only if you don't have the development libraries for `chardet` installed. If you do, then you can omit that option.
+
+Finally, compile the code and install far2l to a temporary location:
+
+```
+$ make -j$(nproc --all)
+$ mkdir ~/far2l
+$ make install DESTDIR=~/far2l
+```
+
+If you prefer to install it to your system instead of to a temporary directory, then omit the `DESTDIR=~/far2l` option.
+
+To launch far2l, invoke the binary stored in the `bin` subdirectory of your install path. For instance:
+
+```
+$ ~/far2l/local/bin/far2l
+```
+
+### Using far2l
+
+When you first launch far2l, it creates a configuration directory in `~/.config` and prompts you to choose what font you'd like to use. On my system, 16 pt font size was the default, and anything less than that was impossible to read. I used the open source Fantasque Mono Regular as my font, but any monospace font ought to work.
+
+Far2l is a two-panel file manager, meaning that the default view has a place to display two separate directories. At launch, both directories happen to be your home directory. To maximize the amount of screen space used for listing files, far2l uses two columns in each panel, and you can use the **Left** and **Right** arrows to change from one column to the other.
+
+In the right column, you can also use the **Right** arrow to move "down" the list of files by one screen. In the left column, use the **Left** arrow to move "up" the list of files by one screen.
+
+![Image of the far2l file manager.][5]
+
+This navigation takes some getting used to, especially if you're used to terminal file managers that only use the **Right** arrow to descend into a directory. However, once you get used to far2l's navigation, you're likely to appreciate the added speed you gain from this simple pagination.
+
+### Open a file or folder
+
+To open a folder, select a folder in your file list and press the **Return** key. This causes the active panel to change to a view of that directory. The inactive panel doesn't change, so it's not uncommon for far2l to always be showing two different directories at the same time. That's a feature of the two-panel file manager design, although it can take some getting used to if you're not in the habit of splitting windows.
+
+After you've moved into a directory, you can move back into its parent folder by selecting the double dots (`..`) at the top of the file listing and pressing **Return**.
+
+To open a file, select a folder in your file list and press the **Return** key. The file opens according to your desktop's mimetype preferences.
+
+### Panel and window navigation
+
+To move from one panel to another, press the **Tab** key.
+
+The fun thing about far2l is that its file listing is actually a layer over the top of your terminal. To hide the file listing temporarily, and to reveal it once it's gone, press **Ctrl+O** (that's the letter `O` not the digit zero).
+
+You can also adjust how much of your terminal the file panels take up. Press **Ctrl+Up** and **Ctrl+Down** to adjust the vertical size of the file panels.
+
+Make no mistake, though, you're not just suspending far2l when you access the terminal underneath. This isn't your usual terminal, it's a far2l terminal that interacts with the file manager and adds a few features to your standard terminal experience. For example, the [`find` command][6] gains graphical auto-completion.
+
+![Image of far2l responsive terminal.][7]
+
+### Copying and moving files
+
+All the usual file management functions are available within far2l are available with function keys. These are listed along the bottom of the far2l window. There are lots of options for some of the actions, which is either over-complex or really really powerful, depending on your preference.
+
+![Image of far21 move options.][8]
+
+### Exiting far2l
+
+To close far2l, type `exit far` into the command prompt at the bottom of the far2l window.
+
+### Far out
+
+Far2l is a dynamic and responsive text-based file manager. If you're a fan of classic two-panel file managers, then you'll feel at home with far2l. Far2l provides an interesting and novel interpretation of a terminal, and if you don't try far2l for its two-panel file management, you should at least try it for its terminal.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-far2l
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/21/11/compiling-code
+[2]: https://github.com/elfmz/far2l
+[3]: https://www.redhat.com/sysadmin/killing-zombies-linux-style
+[4]: https://opensource.com/article/21/5/cmake
+[5]: https://opensource.com/sites/default/files/2022-10/far2l.filemanager.png
+[6]: https://www.redhat.com/sysadmin/linux-find-command
+[7]: https://opensource.com/sites/default/files/2022-10/far2l-popup.png
+[8]: https://opensource.com/sites/default/files/2022-10/far2l-move-options.png
From 88ea9c2f21354a1be55f7e1a16cb060fff5935e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 15 Dec 2022 20:04:38 +0800
Subject: [PATCH 055/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221215.4=20=E2=AD=90=EF=B8=8F=20Pulsar=20A=20Communi?=
=?UTF-8?q?ty-Led=20Open=20Source=20Code=20Editor=20to=20Continue=20the=20?=
=?UTF-8?q?Legacy=20of=20Atom.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... Code Editor to Continue the Legacy of Atom.md | 82 +++++++++++++++++++
1 file changed, 82 insertions(+)
create mode 100644 sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
diff --git a/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md b/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
new file mode 100644
index 0000000000..cfbb33c029
--- /dev/null
+++ b/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
@@ -0,0 +1,82 @@
+[#]: subject: "Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom"
+[#]: via: "https://news.itsfoss.com/pulsar-editor/"
+[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom
+======
+
+Pulsar aims to be a replacement for Atom users, and could challenge Visual Studio code as its development progresses further.
+
+![Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom][1]
+
+It is no surprise that Microsoft decided to kill the Atom text editor to favor Visual Studio Code.
+
+If you did not know, you could take a glance through our older coverage:
+
+While you may have had better options, Atom was an impressive tool when it was popular.
+
+**A community build for it is already available**; however, there seems to be a new version (**Pulsar**) that aims to bring feature parity with the original Atom and introduce modern features and updated architecture.
+
+As per its documentation, the original team that worked on Atom-Community is now involved with creating Pulsar. The reason why they made a separate fork is because of different goals for the projects.
+
+**Pulsar** wants to modernize everything to present a successor to Atom.
+
+> 💡 Pulsar is a new project, as a new fork to Atom, with dev/beta releases available to test.
+
+### Pulsar Editor: What's to see here?
+
+![pulsar editor][2]
+
+Of course, the user interface is much of the same. Considering Pulsar hasn't had a stable release yet, the branding could sometimes seem all over the place.
+
+However, the essentials seem to be there with the documentation, packages, and features like the ability to install packages from Git repositories.
+
+The key feature highlights for Pulsar, as per the official website, include:
+
+- **Cross-platform support (Linux, macOS, and Windows)**
+- **Built-in package manager**
+- **Smart autocompletion**
+- **File system browser**
+- **Multiple pane user interfaces**
+- **Find and replace feature**
+
+At the time of writing this, automatic updates for Pulsar are not available. You will be able to install newer versions through the official website.
+
+![pulsar editor settings][3]
+
+You can customize the editor, change keybindings, manage packages, apply themes, and configure your experience with all the available options.
+
+As of now, it is too soon to say if Pulsar will become something better than what the Atom community version offers. However, it is something that we can keep an eye on.
+
+### Download and Try Pulsar
+
+As mentioned earlier, Pulsar is in its early development stage. So, you can find binaries for Linux distributions and AppImage file that you can try on any distro.
+
+In my test, it **did not work for Linux Mint**, but it worked fine with **Ubuntu 22.04 LTS**.
+
+You can head to its [official download page][4] to get the package required for your system and test it out.
+
+[Pulsar Editor][4]
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/pulsar-editor/
+
+作者:[Ankush Das][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/ankush/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/pulsar-hackable-text-editor.png
+[2]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor.png
+[3]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor-settings.png
+[4]: https://pulsar-edit.dev/download.html#releases
From b9f4dff71a6b8aafd815d71ed068c4beb7103141 Mon Sep 17 00:00:00 2001
From: Songling Gu <1563156662@qq.com>
Date: Fri, 16 Dec 2022 00:41:49 +0800
Subject: [PATCH 056/266] =?UTF-8?q?Create=2020221126.2=20=E2=AD=90?=
=?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Create=20a=20holiday=20light=20di?=
=?UTF-8?q?splay=20with=20your=20Raspberry=20Pi=20and=20ping=20pong=20ball?=
=?UTF-8?q?s.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...play with your Raspberry Pi and ping pong balls.md | 129 ++++++++++++++++++
1 file changed, 129 insertions(+)
create mode 100644 translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
diff --git a/translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md b/translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
new file mode 100644
index 0000000000..303c5388ae
--- /dev/null
+++ b/translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
@@ -0,0 +1,129 @@
+[#]: subject: "Create a holiday light display with your Raspberry Pi and ping pong balls"
+[#]: via: "https://opensource.com/article/22/11/raspberry-pi-holiday-light-display"
+[#]: author: "Brian McCafferty https://opensource.com/users/bdm"
+[#]: collector: "lkxed"
+[#]: translator: "Return7g"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+利用树莓派和乒乓球制作一个假日彩灯
+======
+
+我喜欢圣诞装饰品和灯饰,因此很长一段时间以来我一直想做一个可编程的 LED 项目。最近,我制作了一个由 LED 灯、乒乓球和树莓派 Zero 组成的灯阵列。这个项目相对简单并且具有教学价值,因此我认为它非常值得分享。
+
+整个彩灯由我设计,但其中一些灵感也来自 YouTube。你可以在我的 [Git 存储库][1] 中找到源代码和构建说明。
+
+### 购物清单
+
+- [树莓派 Zero][2]
+- [树莓派保护壳][3]
+- 5V 2A 的电源线
+- 展架
+- 255 个乒乓球
+- 热熔胶枪和若干热熔胶棒
+- 烙铁
+- 焊锡丝
+- 22 AWG 0.35mm 实芯线
+- 10 米 WS2812(B) LED灯带(每米 30 像素)
+- 万用表
+- 钢丝钳
+- 剥线钳
+
+
+### 设计树莓派的灯光效果
+
+这个设计是由我展框的大小决定的。我在全球速卖通买到了每米 30 像素的灯带,它可以轻松地切成 0.5m 的长度,这样我就有了 15 个 LED。 乒乓球的直径是 40 毫米,所以我测量并放置了 40 毫米的线,每 40 毫米部分的中间都有 LED 灯条,这就产生了 17 行。 因此我的灯光阵列是 15×17。你可以根据实际情况来调整尺寸。
+
+为了给灯带和树莓派供电,我在电路板底部设置了数据线和电源线。我的 LED 灯不需要很多电,所以我使用树莓派 Zero 的 5V 输出 GPIO 为它们供电。当我以 50% 的亮度运行时,这个亮度已经足以在白天和晚上透过我的窗户看到。
+
+### 布线
+
+我从电路板的底部以之字形开始布线,这使得焊接非常容易,因为每行的末尾不必返回到每行的开头。
+
+我的线路大致像这样(为清楚起见,这里进行了简化,实际上它一共有 17 行):
+
+```
+<---------------\
+ |
+/---------------/
+|
+\---------------< # 这里连接树莓派
+```
+
+### 使用树莓派搭建显示屏
+
+当设计和布线的工作完成后就可以开始搭建显示屏了。
+
+我在展板上测量并绘制了线路。我的灯带背面有胶带,所以我只需要取下背衬并将其贴在展板上。我检查了每个灯带的位置和数据线的方向以确保灯带可以按照树莓派的指令正确运作。
+
+连接好所有灯带后,我剪下三段长度相同的电线,并将每个灯带末端的电源线、数据线和接地线连接到其上方。
+
+![Connect each light strip at the end of each line.][4]
+
+在线路连接完成后,我检查了每条灯带之间的电源线和地线之间的连续性,以确保其连通性。我还检查了是否存在错误的桥接,所以我验证了电源线和地线之间的连续性。我还进行了一些测试以确保所有灯都正常点亮(参阅[测试代码][5]。)
+
+完成上述工作后,我开始在乒乓球上剪洞,用剪刀刺入乒乓球的底部,然后剪一个小洞让 LED 灯穿进去。我每米使用 30 个像素的 LED 灯,所以每个 LED 之间有大约 30 毫米的空隙。
+
+在 LED 灯上滴上热熔胶,然后在 LED 上放了一个乒乓球并按住大约五秒钟,就粘好了一个乒乓球。粘贴下一个乒乓球时我只需要挨着上一个乒乓球就能让所有乒乓球都变得整齐了
+
+![It's a tight fit, but the 40mm ping pong balls fit in a 30mm space just fine.][6]
+
+我继续为余下的乒乓球进行焊接。尽管这个过程中有几个乒乓球被压碎了,但最终还是顺利完成了制作。
+
+![255 LEDs and 255 ping pong balls in an array.][7]
+
+### 测试代码
+
+测试代码需要确保所有部件都能正常工作,为此我使用了[Adafruit 指南][8],它以红、绿和蓝点亮每个 LED,然后依次进行循环。我在测试时使用它来确保我连接无误并且焊接正常。
+
+在此之后,我在电子表格中设计了一个网格,将每个像素映射到一个网格位置。由于我的像素编号呈之字形排列,因此很难跟踪每个 LED(例如 A1 为 256,B1 为 226)。重新映射网格位置能使得我在构建图像时更容易。
+
+在所有准备工作完成之后,我就可以在纸上和电子表格中设计图像,然后编码。于是我开始添加一些动画(使用循环并将像素变为一种颜色,然后变为另一种颜色)。
+
+最终的结果还算顺利。
+
+![A Christmas gift in LED.][9]
+
+![Reindeer painted with light.][10]
+
+![An LED snowflake.][11]
+
+### 全年可用的树莓派彩灯
+
+我不确定这是否已经完全完成了。自从把它摆放到橱窗里,几乎每个晚上我都会添加一些新的图像和动画。我已经在考虑除夕夜的时候要做成什么样了。它不会像圣诞装饰品一起在圣诞节后被放进储藏室。 我只需要在上面显示其它图案,就能使它成为一个全年可用的彩灯! 我的一个朋友推荐了像素马里奥,这听起来是个好主意!
+
+我的代码仍然需要完善。 例如,我做了一些滚动文本,但当我为文本的每个位置重新绘制时却花了很多时间。我想我可以用循环做一些事情,或者图像库可以帮助更轻松地滚动字母,并使添加文本更容易,而不是在每一步打开和关闭每个像素。
+
+这里有一张照片记录了我制作的全过程[LED 乒乓墙][12]。
+
+可以在此处观看它的运行视频:[XMas 灯光展示][13]。
+
+这个彩灯最终的效果我非常满意。以后我也会尝试更多利用 LED 彩灯完成的项目。我也鼓励大家亲自动手制作一个这样的彩灯,它会比你想象中更简单。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/11/raspberry-pi-holiday-light-display
+
+作者:[Brian McCafferty][a]
+选题:[lkxed][b]
+译者:[Return7g](https://github.com/Return7g)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/bdm
+[b]: https://github.com/lkxed
+[1]: https://github.com/bmccafferty/ping-pong-led-wall
+[2]: https://shop.pimoroni.com/products/raspberry-pi-zero-wh-with-pre-soldered-header
+[3]: https://shop.pimoroni.com/products/pibow-zero-w
+[4]: https://opensource.com/sites/default/files/2022-11/IMG_20201126_115520.jpeg
+[5]: https://opensource.com#the-code
+[6]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_101409.webp
+[7]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_160500.webp
+[8]: https://learn.adafruit.com/neopixels-on-raspberry-pi/python-usage
+[9]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_181931.webp
+[10]: https://opensource.com/sites/default/files/2022-11/IMG_20201202_215902.webp
+[11]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_215314.webp
+[12]: https://projects.bdm.scot/Xmas%20LED%20Wall%202020/
+[13]: https://youtu.be/zc0501GzpMw
From 26ee69a5f9b85849db67a04eb8b735be3df9a603 Mon Sep 17 00:00:00 2001
From: Songling Gu <1563156662@qq.com>
Date: Fri, 16 Dec 2022 00:43:06 +0800
Subject: [PATCH 057/266] =?UTF-8?q?Delete=2020221126.2=20=E2=AD=90?=
=?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Create=20a=20holiday=20light=20di?=
=?UTF-8?q?splay=20with=20your=20Raspberry=20Pi=20and=20ping=20pong=20ball?=
=?UTF-8?q?s.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...play with your Raspberry Pi and ping pong balls.md | 130 ------------------
1 file changed, 130 deletions(-)
delete mode 100644 sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
diff --git a/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md b/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
deleted file mode 100644
index c1e4f1b306..0000000000
--- a/sources/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
+++ /dev/null
@@ -1,130 +0,0 @@
-[#]: subject: "Create a holiday light display with your Raspberry Pi and ping pong balls"
-[#]: via: "https://opensource.com/article/22/11/raspberry-pi-holiday-light-display"
-[#]: author: "Brian McCafferty https://opensource.com/users/bdm"
-[#]: collector: "lkxed"
-[#]: translator: "Return7g"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Create a holiday light display with your Raspberry Pi and ping pong balls
-======
-
-I love Christmas decorations and lights, and I'd been wanting to do an programmable LED project for a long time. Recently, I built a light array made of LED lights, ping pong balls, and a Raspberry Pi Zero. I thought it was worth sharing, because it ended up being relatively easy but also educational.
-
-It's mostly my own design, with some inspiration from YouTube videos. You can find the source code and build instructions in my [Git repository][1].
-
-### Shopping list
-
-- [Raspberry Pi Zero][2]
-- [Pibow Case][3]
-- 5v 2A USB power supply
-- Poster frame
-- 255 ping pong balls
-- Hot glue gun and LOTS of hot glue sticks
-- Soldering iron
-- Solder
-- 22 AWG 0.35mm solid core wiring
-- 10 meters of WS2812(B) LED strip lights (30 pixels per meter)
-- Multimeter
-- Wire cutters
-- Wire strippers
-
-### Design the Raspberry Pi light display
-
-My design was driven by the size of the poster frame I happened to have available. I got 30 pixel per meter tape from Ali Express, which cut nicely into 0.5m sections, so that gave me 15 LEDs across. Ping pong balls are 40mm, so I measured and placed the lines 40mm apart, with the LED Strip in the middle of each 40mm section. This gave me 17 lines down in total. My array was therefore 15×17. If you try this yourself, yours can be a different size.
-
-To get power to the array and the Raspberry Pi, I placed the open connections for both data and power at the bottom of the board. I didn't have that many LEDs needing power, so I was able to use the 5v out GPIO from the Raspberry Pi Zero to power them. I run them at 50% brightness, which is easily bright enough to see in the day and at night through my window.
-
-### Wiring
-
-In my design, I started at the bottom of the board and wired up in an S-curve. This made soldering easier because loops at the end of each row didn't have to return all the way back to the start of each line. The WS2812 data lines do require you to wire the data the correct way: power can be fed from either side of the strip, but data must be fed from the side with the arrows pointing away.
-
-My wiring looks like this (this is abbreviated for clarity, in real life it's 17 lines deep):
-
-```
-<---------------\
- |
-/---------------/
-|
-\---------------< # Pi connected here
-```
-
-### Build the display with your Raspberry Pi
-
-Once the design and wiring plan was sorted, it was time to get started on the build.
-
-I measured and drew my lines in pencil on the poster backboard. The WS2812 strips I got came with sticky tape on the back, so I just removed the backing and attached that directly to the backboard. I was sure to position each strip so that the data arrows went one way, then back the other, to ensure that the lights could be daisy-chained correctly for the Pi's instructions.
-
-Once all light strips were attached, I cut three similar lengths of wire and connected the 5v, data, and ground lines from the end of each light section to the one above it.
-
-![Connect each light strip at the end of each line.][4]
-
-After completing each row, I checked continuity between the 5v and ground lines between each strip to ensure my joins were correct. I also checked that I had not accidentally bridged any connections, so I verified that there was no continuity between the 5v and ground lines (in other words, a 5v wire on one line didn't bridge to the ground on the next line.) I also ran some tests to ensure everything was lighting up correctly (see [the code][5] section for my strand tests.)
-
-Once this was complete, I started to cut holes in the ping pong balls by stabbing scissors into the bottom of them, and cutting a small hole for the LED to shine into. There was no exact science to this, and each one was different, but the effect really worked. I was working with 30 pixels per meter, so my lighting had about 30mm between each LED. A ping pong ball is 40mm across, but I wasn't about to start soldering each LED individually! First of all, I'm not that good at soldering (as my photos show), and anyway, I thought "Well, they're ping pong balls. I can just squash them together!"
-
-And that's what I did.
-
-I placed a hot glue blob around each LED and then placed a ping pong ball onto the LED, held it for about five seconds, and moved on to the next one. I held onto the previous ping pong ball as I slid the next one in, pushing it against the first before "folding" it into its neighbor. The effect worked really well. I was happy with what it was looking like straight away. It also had the nice bonus of hiding my bad soldering job ;)
-
-![It's a tight fit, but the 40mm ping pong balls fit in a 30mm space just fine.][6]
-
-I continued doing this for 255 LEDs and ping pong balls. There were a few crushed ping pong balls in the process, but in the end, I got there.
-
-![255 LEDs and 255 ping pong balls in an array.][7]
-
-### Test the code
-
-For the test code to ensure that everything was working, I used this [Adafruit guide][8] which lights each LED in red, green, and blue, and then does a rainbow cycle. I used this when I was building to ensure my connections were correct and that everything was soldered correctly.
-
-After that, I designed a grid in a spreadsheet to map each pixel to a grid position. This helped to make building the images easier. Since my pixel numbers run in a zig-zag pattern, it would have been hard to keep track of each LED (e.g. LED A1 was 256 and B1 was 226).
-
-Once this was all set, it was time to design some images on paper and in the spreadsheet. Then it was time to code! It got a bit addictive and I started adding some animation (using loops and turning pixels onto one color and then another color).
-
-The end result was everything I'd hoped it would be.
-
-![A Christmas gift in LED.][9]
-
-![Reindeer painted with light.][10]
-
-![An LED snowflake.][11]
-
-### A Raspberry Pi light display all year
-
-I am not sure this will ever be truly finished. Nearly every night since it's been up in the window, I've added some new images and animations. I'm already thinking about what to do for New Year's Eve. I also won't be putting this back in storage with my Christmas decorations in January. I just need to think of other things to draw on it to make it a year-round project! A friend of mine suggested a pixel Mario and I love that idea!
-
-My code also needs a little work. For example, I do some scrolling text, but I redraw the whole board for each position of the text, so it took quite a bit of time to do. I think I can do something with loops, or perhaps the image library can help scroll the letters easier, and make it easier to add text rather than turning each pixel on and off at every step.
-
-I've got a photo record of my progress from start to finish: [LED Ping Pong Wall][12].
-
-You can also see a video of it in action here: [XMas light display][13].
-
-I'm really pleased with how this turned out, and I think it looks amazing. I'm very excited to try some other LED projects in the future. I encourage you to try a light array of your own even as your first project. It's easier than it looks!
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/11/raspberry-pi-holiday-light-display
-
-作者:[Brian McCafferty][a]
-选题:[lkxed][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/bdm
-[b]: https://github.com/lkxed
-[1]: https://github.com/bmccafferty/ping-pong-led-wall
-[2]: https://shop.pimoroni.com/products/raspberry-pi-zero-wh-with-pre-soldered-header
-[3]: https://shop.pimoroni.com/products/pibow-zero-w
-[4]: https://opensource.com/sites/default/files/2022-11/IMG_20201126_115520.jpeg
-[5]: https://opensource.com#the-code
-[6]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_101409.webp
-[7]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_160500.webp
-[8]: https://learn.adafruit.com/neopixels-on-raspberry-pi/python-usage
-[9]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_181931.webp
-[10]: https://opensource.com/sites/default/files/2022-11/IMG_20201202_215902.webp
-[11]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_215314.webp
-[12]: https://projects.bdm.scot/Xmas%20LED%20Wall%202020/
-[13]: https://youtu.be/zc0501GzpMw
From a8daea810cc76cfb794ef7087c91db928ad72263 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Fri, 16 Dec 2022 08:36:01 +0800
Subject: [PATCH 058/266] translated
---
... ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 104 ------------------
... ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 104 ++++++++++++++++++
2 files changed, 104 insertions(+), 104 deletions(-)
delete mode 100644 sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
create mode 100644 translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
diff --git a/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
deleted file mode 100644
index fe68240171..0000000000
--- a/sources/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
+++ /dev/null
@@ -1,104 +0,0 @@
-[#]: subject: "Linux Mint Upgrade Tool: Usage Guide"
-[#]: via: "https://www.debugpoint.com/mint-upgrade-tool/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Linux Mint Upgrade Tool: Usage Guide
-======
-
-**Here’s how you can upgrade to new Linux Mint versions using the Mint upgrade tool, i.e. mintupgrade GUI with actual upgrade process screenshots.**
-
-If you are looking for **detailed upgrade** steps to the recently released **Linux Mint 21 Vanessa**, read this guide 👉 [upgrade-linux-mint-21-from-20-3][1]
-
-### Linux Mint Upgrade Tool
-
-The Linux Mint team [announced][2] a few months back, that they built a new utility to upgrade the Linux Mint’s significant versions. It’s called the “mintupgrade2”. Development is complete, and It is currently under the support and planning for upgrading to the major versions—for example, Linux Mint 20 to 21 and not the minor version upgrades.
-
-Although you can upgrade the versions using the standard apt commands, the Mint team believes significant version upgrades are tricky. It would be difficult for the new users to perform a seamless upgrade because it involves the terminal and a set of complex steps with commands.
-
-Moreover, the GUI is a wrapper with additional features to the mintupgrade program, which brings a set of pre-system checks and upgrade processes with a one-click Fix.
-
-In addition, the mintupgrade checks basic checks, whether you are connected to power, the system is up to date, disk space availability and many more features.
-
-To show you how it looks and works, we set up a testbed with LMDE 4 and give it a go.
-
-But before that, here’s a quick set of features:
-
-- Entirely GUI-driven upgrade process
-- Multi-language support
-- Pre-upgrade checks: system backup, power, disk space, list of removed packages
-- Configurable
-- Alert you about the orphaned packages from the prior version
-- It gives you the option to fix issues
-
-### How it works
-
-When we ran the mint upgrade utility via the command `mintupgrade`, the GUI, the friendly welcome screen gives you an excellent starting point and starts the upgrade process. And then, it begins with a series of checks on its own.
-
-![Starting the upgrade process][3]
-
-In addition to that, when it finds some problem in your system, it stops and gives you sufficient details about it. Once you click on Fix, it can resume the process again.
-
-That’s not all; it can resume the upgrade process if interrupted due to network or internet or any other problem.
-
-The utility found the following errors in our test system during our test and fixed them with just one click.
-
-![Apt Cache check][4]
-
-![Mint Upgrade detects that system snapshots not present][5]
-
-![Check for Orphan Packages][6]
-
-![Status before upgrade][7]
-
-![Mint Upgrade can detect the packages require downgrade][8]
-
-Lastly, we successfully upgraded a test system from LMDE 4 to LMDE 5.
-
-![Upgrade Complete][9]
-
-#### How to get this upgrade utility
-
-The installation of the utility is easy using the commands below. However, if you are running the latest version of Linux Mint 21, it should already be installed and try by running mintupgrade from the terminal.
-
-```
-sudo apt update
-```
-
-```
-sudo apt install mintupgrade
-```
-
-### Closing Notes
-
-Finally, I think it’s one of the best utilities by the Linux Mint team. As you can see above, it handled many errors on its own. All I did was click the “Fix” button. And the utility is smart enough to understand all the failure points and take care of the remediations.
-
-[GitHub and source code of mintupgrade][10]
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/mint-upgrade-tool/
-
-作者:[Arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.debugpoint.com/author/admin1/
-[b]: https://github.com/lkxed
-[1]: https://www.debugpoint.com/upgrade-linux-mint-21-from-20-3/
-[2]: https://www.debugpoint.com/2022/04/linux-mint-21-announcement/
-[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/Starting-the-upgrade-process.jpg
-[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/Apt-Cache-check.jpg
-[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-detects-that-system-snapshots-not-present.jpg
-[6]: https://www.debugpoint.com/wp-content/uploads/2022/04/Check-for-Orphan-Packages.jpg
-[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Status-before-upgrade.jpg
-[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-can-detect-the-packages-require-downgrade.jpg
-[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Upgrade-Complete.jpg
-[10]: https://github.com/linuxmint/mintupgrade
diff --git a/translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
new file mode 100644
index 0000000000..dbfa0952d0
--- /dev/null
+++ b/translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
@@ -0,0 +1,104 @@
+[#]: subject: "Linux Mint Upgrade Tool: Usage Guide"
+[#]: via: "https://www.debugpoint.com/mint-upgrade-tool/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Linux Mint 升级工具:使用指南
+======
+
+**以下是如何使用 Mint 升级工具升级到新的 Linux Mint 版本,即带有实际升级过程截图的 mintupgrade GUI。**
+
+如果你正在寻找最近发布的 **Linux Mint 21 Vanessa** 的**详细升级**步骤,请阅读本指南👉[从 Linux Mint 20.3 升级到 21][1]
+
+### Linux Mint 升级工具
+
+Linux Mint 团队 [宣布][2]在几个月前,他们构建了一个新的程序来升级 Linux Mint 的重要版本。它被称为 “mintupgrade2”。开发已经完成,目前正在支持和计划升级到主要版本,例如 Linux Mint 20 到 21,而不是小版本升级。
+
+尽管你可以使用标准的 apt 命令升级版本,但 Mint 团队认为重大版本升级是棘手的。新用户很难进行无缝升级,因为它涉及终端和一系列复杂的命令步骤。
+
+此外,GUI 是一个封装器,具有 mintupgrade 程序的附加功能,它通过一键修复带来了一组系统前检查和升级过程。
+
+此外,mintupgrade 会进行基本检查,你是否连接到电源、系统是否是最新的、磁盘空间可用性等。
+
+为了向你展示它的外观和工作情况,我们安装了一台 LMDE 4 测试机测试。
+
+但在此之前,这里有一组功能:
+
+- 完全由 GUI 驱动的升级过程
+- 多语言支持
+- 升级前检查:系统备份、电源、磁盘空间、已删除包列表
+- 可配置
+- 提醒你有关先前版本中的孤立包
+- 它为你提供了解决问题的选项
+
+### 它如何运作
+
+当我们通过命令 `mintupgrade` 运行 mint 升级程序时,GUI 友好的欢迎屏幕为你提供了一个很好的起点并开始升级过程。然后,它开始自己进行一系列检查。
+
+![开始升级过程][3]
+
+除此之外,当它在你的系统中发现问题时,它会停止并为你提供足够的详细信息。单击“修复”后,它可以再次恢复该过程。
+
+这不是全部。如果由于网络或互联网或任何其他问题而中断,它可以恢复升级过程。
+
+这个程序在我们的测试过程中在我们的测试系统中发现了以下错误,并且只需单击一下即可修复它们。
+
+![Apt 缓存检查][4]
+
+![Mint Upgrade 检测到系统快照不存在][5]
+
+![检查孤立包][6]
+
+![升级前状态][7]
+
+![Mint Upgrade 可以检测需要降级的包][8]
+
+最后,我们成功地将测试系统从 LMDE 4 升级到 LMDE 5。
+
+![升级完成][9]
+
+#### 如何获取此升级程序
+
+使用以下命令可以轻松安装该程序。但是,如果你正在运行最新版本的 Linux Mint 21,它应该已经安装并尝试从终端运行 mintupgrade。
+
+```
+sudo apt update
+```
+
+```
+sudo apt install mintupgrade
+```
+
+### 结束语
+
+最后,我认为它是 Linux Mint 团队最好的程序之一。正如你在上面看到的,它自己处理了许多错误。我所做的只是单击“修复”按钮。该程序足够智能,可以了解所有故障点并采取补救措施。
+
+[GitHub 和 mintupgrade 源码][10]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/mint-upgrade-tool/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/upgrade-linux-mint-21-from-20-3/
+[2]: https://www.debugpoint.com/2022/04/linux-mint-21-announcement/
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/Starting-the-upgrade-process.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/Apt-Cache-check.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-detects-that-system-snapshots-not-present.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/04/Check-for-Orphan-Packages.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Status-before-upgrade.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-can-detect-the-packages-require-downgrade.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Upgrade-Complete.jpg
+[10]: https://github.com/linuxmint/mintupgrade
From 69d71eb44716b16c08d3f174cfa3705b9819a498 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Fri, 16 Dec 2022 08:40:48 +0800
Subject: [PATCH 059/266] translating
---
...13.6 ⭐️⭐️ Try this Linux web browser as your file manager.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
index 622adb597e..0d959b6e95 100644
--- a/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
+++ b/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 249d06c2537e77336544864ab73dca71c3dc48d7 Mon Sep 17 00:00:00 2001
From: duoluoxiaosheng <554765662@qq.com>
Date: Fri, 16 Dec 2022 09:24:55 +0800
Subject: [PATCH 060/266] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E7=94=B3=E8=AF=B7]I?=
=?UTF-8?q?mprove=20your=20documentation=20with=20JavaScript?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...21215.2 ⭐️⭐️ Improve your documentation with JavaScript.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md b/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
index 921b12bf7a..04434f2ebe 100644
--- a/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
+++ b/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/12/dynamic-documentation-javascript"
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "duoluoxiaosheng"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
@@ -221,7 +221,7 @@ via: https://opensource.com/article/22/12/dynamic-documentation-javascript
作者:[Jim Hall][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
+译者:[译者ID](https://github.com/duoluoxiaosehng)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From e192948e962722e36f74672e1772880e89768974 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Fri, 16 Dec 2022 09:27:09 +0800
Subject: [PATCH 061/266] RP
@cool-summer-021
https://linux.cn/article-15352-1.html
---
...221004 Learn the OSI model in 5 minutes.md | 48 ++++++++++---------
1 file changed, 26 insertions(+), 22 deletions(-)
rename {translated/tech => published}/20221004 Learn the OSI model in 5 minutes.md (72%)
diff --git a/translated/tech/20221004 Learn the OSI model in 5 minutes.md b/published/20221004 Learn the OSI model in 5 minutes.md
similarity index 72%
rename from translated/tech/20221004 Learn the OSI model in 5 minutes.md
rename to published/20221004 Learn the OSI model in 5 minutes.md
index cd2b6d735a..dc05565ee5 100644
--- a/translated/tech/20221004 Learn the OSI model in 5 minutes.md
+++ b/published/20221004 Learn the OSI model in 5 minutes.md
@@ -3,29 +3,32 @@
[#]: author: "Anamika https://opensource.com/users/anamika"
[#]: collector: "lkxed"
[#]: translator: "cool-summer-021"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15352-1.html"
5 分钟内了解 OSI 模型
======
-理解OSI框架的基本概念,掌握计算机系统通信机制
-开放系统互联(OSI)模型是一个定义计算机、服务器和用户如何在一个系统内通信的标准。它是第一个网络通信标准模型,在20世纪80年代早期,所有主流的计算机和通信公司都采用了这个标准。
+![][0]
-OSI 模型提供了一种通用语言,用于描述网络,以及在离散的块或层中考虑相关的问题。
+> 理解 OSI 框架的基本概念,掌握计算机系统通信机制。
-### OSI模型的各个层
+开放系统互联Open Systems Interconnection(OSI)模型是一个定义计算机、服务器和用户如何在一个系统内通信的标准。它是第一个网络通信标准模型,在上世纪 80 年代早期,所有主流的计算机和通信公司都采用了这个标准。
+
+OSI 模型提供了一种用于描述网络的通用语言,并以离散的块或层的方式来描述。
+
+### OSI 模型的各个层
该模型描述了计算机系统通过网络进行通信的七个层。
-1. [应用层][2]
-2. [表现层][3]
-3. [会话层][4]
-4. [传输层][5]
-5. [网络层][6]
-6. [数据链路层][7]
-7. [物理层][8]
+- 7 应用层
+- 6 表示层
+- 5 会话层
+- 4 传输层
+- 3 网络层
+- 2 数据链路层
+- 1 物理层
每个层都有自己的工作方式和一系列跟其他层不同的协议。本文将逐个剖析这些层级。
@@ -33,15 +36,15 @@ OSI 模型提供了一种通用语言,用于描述网络,以及在离散的
应用层是在软件中实现的。它是与应用程序交互的层级。
-考虑发送消息的例子。发送消息的程序与应用层进行交互,并发送消息。接着,应用层向 OSI 模型的下一个层级(即表现层)发送消息。
+用发送消息作为例子。发送消息的程序与应用层进行交互,并发送消息。接着,应用层向 OSI 模型的下一个层级(即表示层)发送消息。
-### 表现层
+### 表示层
-来自应用层的数据被转发到表现层。表现层接收到文字、字符、字母、数字等形式的数据,并把它们转换为机器可识读的二进制格式数据。这个过程叫做编译。
+来自应用层的数据被转发到表示层。表示层接收到文字、字符、字母、数字等形式的数据,并把它们转换为机器可识读的二进制格式数据。这个过程叫做编译。
-在此阶段,ASCII(美国信息交换标准码) 字符被转换为扩充的二进制编码的十进制交换码(EBCDIC)。转换后的数据在继续传输前,也会进行编码和加密过程,使用SSL协议进行加密和解密。
+在此阶段,ASCII(美国信息交换标准码)字符被转换为扩充的二进制编码的十进制交换码(EBCDIC)。转换后的数据在继续传输前,也会进行编码和加密过程,使用 SSL 协议进行加密和解密。
-表现层的作用是抽象化,它假设下面的层级会处理它们收到的数据。它也负责压缩数据。数据的压缩可能是有损的,也有可能是无损的,这取决于很多因素,不属于本文的讨论范围。
+表示层的作用是抽象化,它假设下面的层级会处理它们收到的数据。它也负责压缩数据。数据的压缩可能是有损的,也有可能是无损的,这取决于很多因素,这不属于本文的讨论范围。
### 会话层
@@ -51,9 +54,9 @@ OSI 模型提供了一种通用语言,用于描述网络,以及在离散的
### 传输层
-传输层的作用是管理数据传输和其自身的关于数据如何传输的一些协议。从会话层传到这里的数据被分为更小的数据单元,这些数据单元称为片段。这个过程叫做“分割”。每个片段包含来源端口号、目标端口号和一个序列号。端口号用来识别发送数据的应用程序。注意,数据以块的形式传输。序列号用于把这些片段按正确的顺序排列。
+传输层的作用是管理数据传输和其自身的关于数据如何传输的一些协议。从会话层传到这里的数据被分为更小的数据单元,这些数据单元称为片段。这个过程叫做“分段”。每个片段包含来源端口号、目标端口号和一个序列号。端口号用来识别发送数据的应用程序。注意,数据以块的形式传输。序列号用于把这些片段按正确的顺序排列。
-传输层负责控制流量或在给定的时间内传输的数据量。它也负责错误的管理,比如数据丢失、损坏等情况。它利用一种错误探测值,通常叫做校验和。传输层对每个数据片段加上校验和,就可以检查所发送的数据是否被正确接收。然后数据传输到网络层。
+传输层负责控制流量或在给定的时间内传输的数据量。它也负责错误控制,比如数据丢失、损坏等情况。它利用一种错误检测值,通常叫做校验和。传输层对每个数据片段加上校验和,就可以检查所发送的数据是否被正确接收。然后数据传输到网络层。
### 网络层
@@ -84,7 +87,7 @@ via: https://opensource.com/article/22/10/osi-model-network-communications
作者:[Anamika][a]
选题:[lkxed][b]
译者:[cool-summer-021](https://github.com/cool-summer-021)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -98,3 +101,4 @@ via: https://opensource.com/article/22/10/osi-model-network-communications
[6]: https://opensource.com/article/22/10/osi-model-network-communications#network-layer
[7]: https://opensource.com/article/22/10/osi-model-network-communications#data-link-layer
[8]: https://opensource.com/article/22/10/osi-model-network-communications#physical-layer
+[0]: https://img.linux.net.cn/data/attachment/album/202212/16/092612etn6gwaecb91bweg.jpg
\ No newline at end of file
From 27bf29e75471277c6ec0f0a1d4d217470e6c3888 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Fri, 16 Dec 2022 11:02:50 +0800
Subject: [PATCH 062/266] R
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@yzuowei
翻译的非常认真!很好。
---
...️ Introducing Rust calls to C library functions.md | 67 ++++++++++---------
1 file changed, 36 insertions(+), 31 deletions(-)
diff --git a/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
index c318bfa2dd..824dd7b0e8 100644
--- a/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
+++ b/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
@@ -3,26 +3,30 @@
[#]: author: "Marty Kalin https://opensource.com/users/mkalindepauledu"
[#]: collector: "lkxed"
[#]: translator: "yzuowei"
-[#]: reviewer: " "
+[#]: reviewer: "wxy"
[#]: publisher: " "
[#]: url: " "
-介绍从 Rust 调用 C 库函数
+从 Rust 调用 C 库函数
======
-为什么要从 Rust 调用 C 函数?简短的回答就是软件库。冗长的答案则触及到 C 在众多编程语言中的地位,特别是相对 Rust 而言。C,C++,还有 Rust 都是系统语言,这意味着程序员会访问机器层面的数据类型与操作。在这三个系统语言中,C 依然占据主导地位。现代操作系统的内核大致用 C 来写,其余部分依靠汇编语言来补充。在标准系统函数库中,输入与输出、数字处理、加密计算、安全、网络、国际化、字符串处理、内存管理,还用更多,都大体用 C 来写。这些函数库所代表的是一个庞大的基础架构,支撑着用其他语言写出来的应用。Rust 发展至今也有着可观的函数库,但是 C 的函数库——自1970年代就已存在,迄今还在蓬勃发展——是一个无法被忽视的资源。最后一点是, C 依然还是编程语言中的 [lingua franca][1]:大部分语言都与 C 交流,透过 C,语言互相交流。
+![][0]
+
+> Rust FFI 和 bindgen 工具是为 Rust 调用 C 库而设计的。Rust 很容易与 C 语言对话,从而与任何其它可以与 C 语言对话的语言对话。
+
+为什么要从 Rust 调用 C 函数?简短的答案就是软件库。冗长的答案则触及到 C 在众多编程语言中的地位,特别是相对 Rust 而言。C、C++,还有 Rust 都是系统语言,这意味着程序员可以访问机器层面的数据类型与操作。在这三个系统语言中,C 依然占据主导地位。现代操作系统的内核主要是用 C 来写的,其余部分依靠汇编语言补充。在标准系统函数库中,输入与输出、数字处理、加密计算、安全、网络、国际化、字符串处理、内存管理等等,大多都是用 C 来写的。这些函数库所代表的是一个庞大的基础设施,支撑着用其他语言写出来的应用。Rust 发展至今也有着可观的函数库,但是 C 的函数库 —— 自 1970 年代就已存在,迄今还在蓬勃发展 —— 是一种无法被忽视的资源。最后一点是,C 依然还是编程语言中的 [通用语][1]:大部分语言都可以与 C 交流,透过 C,语言之间可以互相交流。
### 两个概念证明的例子
-Rust 支持 FFI (外部函数接口)用以调用 C 函数。任何 FFI 所需要面临的问题是调用方语言是否包括了被调用语言的数据类型。例如,`ctypes` 是 Python 调用 C 的 FFI,但是 Python 并没有包括 C 所支持的无符号整数类型。结果就是,`ctypes` 必须寻求解决方案。
+Rust 支持 FFI(外部函数接口Foreign Function Interface)用以调用 C 函数。任何 FFI 所需要面临的问题是调用方语言是否涵盖了被调用语言的数据类型。例如,`ctypes` 是 Python 调用 C 的 FFI,但是 Python 并没有包括 C 所支持的无符号整数类型。结果就是,`ctypes` 必须寻求解决方案。
-与之相对的是,Rust 包含了所有 C 中的原始(即,机器层面)类型。比如说,Rust 中的 `i32` 类对应 C 中的 `int` 类。C 特别声明了 `char` 类必须是一个字节大小,而其他类型,比如 `int`,必须至少是这个大小(LCTT 译注:原文处有评论指出 `int` 大小依照 C 标准应至少为2字节);然而如今所有合理的 C 编译器都支持四字节的 `int`,以及八字节的 `double`(Rust 中则是 `f64` 类),以此类推。
+相比之下,Rust 包含了所有 C 中的原始(即,机器层面)类型。比如说,Rust 中的 `i32` 类对应 C 中的 `int` 类。C 特别声明了 `char` 类必须是一个字节大小,而其他类型,比如 `int`,必须至少是这个大小(LCTT 译注:原文处有评论指出 `int` 大小依照 C 标准应至少为 2 字节);然而如今所有合理的 C 编译器都支持四字节的 `int`,以及八字节的 `double`(Rust 中则是 `f64` 类),以此类推。
-面向 C 的 FFI 所面临的另一个挑战是:FFI 是否能够处理 C 的裸指针,包括指向被看作是字符串的数组指针。C 没有字符串类型,它通过结合字符组和一个不会被打印的终止符来实现字符串,大名鼎鼎的_空终止符_。与之相对,Rust 有两个字符串类型:`String` 和 `&str` (字符串切片)。问题是,Rust FFI 是否能将 C 字符串转化成 Rust 字符串——答案是_肯定的_。
+针对 C 的 FFI 所面临的另一个挑战是:FFI 是否能够处理 C 的裸指针,包括指向被看作是字符串的数组指针。C 没有字符串类型,它通过结合字符组和一个非打印终止符(大名鼎鼎的 _空终止符_)来实现字符串。相比之下,Rust 有两个字符串类型:`String` 和 `&str` (字符串切片)。问题是,Rust FFI 是否能将 C 字符串转化成 Rust 字符串——答案是 _肯定的_。
-出于对效率的追求,结构体指针在 C 中也很常见。一个 C 结构体在作为一个函数的参数或者返回值的时候,其默认行为是传递值(即,一个字节一个字节的复制)。C 结构体,如同它在 Rust 中的对应部分一样,可以包含数组和嵌套其他结构体,所以其大小是不定的。结构体在两种语言中的最佳用法是传递或返回引用,也就是说,传递或返回结构体的地址而不是结构体本身的复制。Rust 再一次成功处理了 C 的结构体指针,其在 C 函数库中十分普遍。
+出于对效率的追求,结构体指针在 C 中也很常见。一个 C 结构体在作为一个函数的参数或者返回值的时候,其默认行为是传递值(即,逐字节复制)。C 结构体,如同它在 Rust 中的对应部分一样,可以包含数组和嵌套其他结构体,所以其大小是不定的。结构体在两种语言中的最佳用法是传递或返回引用,也就是说,传递或返回结构体的地址而不是结构体本身的副本。Rust FFI 再一次成功处理了 C 的结构体指针,其在 C 函数库中十分普遍。
-第一段代码案例专注于调用相对简单的 C 库函数,比如 `abs`(绝对值)和 `sqrt`(平方根)。这些函数使用非指针标量参数并返回一个非指针标量值。第二段代码案例则涉及了字符串和结构体指针,在这里会介绍工具 [bindgen][2],其通过 C 接口(头)文件生成 Rust 代码,比如 `math.h` 以及 `time.h`。C 头文件声明了 C 函数的调用语法并定义了会被调用的结构体。两段代码都能在[我的主页上][3]找到。
+第一段代码案例专注于调用相对简单的 C 库函数,比如 `abs`(绝对值)和 `sqrt`(平方根)。这些函数使用非指针标量参数并返回一个非指针标量值。第二段代码案例则涉及了字符串和结构体指针,在这里会介绍工具 [bindgen][2],其通过 C 接口(头文件)生成 Rust 代码,比如 `math.h` 以及 `time.h`。C 头文件声明了 C 函数的调用语法,并定义了会被调用的结构体。两段代码都能在 [我的主页上][3] 找到。
### 调用相对简单的 C 函数
@@ -56,9 +60,9 @@ fn main() {
}
```
-顶部的两个 `use` 声明是 Rust 的数据类型 `c_int` 和 `c_double`,对应 C 类型里的 `int` 和 `double`。Rust 标准模块 `std::os::raw` 定义了十四个类似的类型以确保跟 C 的兼容性。模块 `std::ffi` 中有十四个同样的类型定义以及对字符串的支持。
+顶部的两个 `use` 声明是 Rust 的数据类型 `c_int` 和 `c_double`,对应 C 类型里的 `int` 和 `double`。Rust 标准模块 `std::os::raw` 定义了 14 个类似的类型以确保跟 C 的兼容性。模块 `std::ffi` 中有 14 个同样的类型定义,以及对字符串的支持。
-位于 `main` 函数上的 `extern "C"` 区域声明了三个 C 库函数,这些函数会在 `main` 函数内被调用。每次调用都使用了标准的 C 函数名,但每次调用都必须发生在一个 `unsafe` 区域内。正如每个新接触 Rust 的程序员所发现的那样,Rust 编译器极度强制内存安全。其他语言(特别是 C 和 C++)作不出相同的保证。`unsafe` 区域其实是说:Rust 对外部调用中可能存在的不安全行为不负责。
+位于 `main` 函数上的 `extern "C"` 区域声明了 3 个 C 库函数,这些函数会在 `main` 函数内被调用。每次调用都使用了标准的 C 函数名,但每次调用都必须发生在一个 `unsafe` 区域内。正如每个新接触 Rust 的程序员所发现的那样,Rust 编译器极度强制内存安全。其他语言(特别是 C 和 C++)作不出相同的保证。`unsafe` 区域其实是说:Rust 对外部调用中可能存在的不安全行为不负责。
第一个程序输出为:
@@ -69,13 +73,13 @@ fn main() {
-3.14的平方根是: NaN.
```
-输出的最后一行的 `NaN` 表示不是数字 (Not a Number):C 库函数 `sqrt` 期待一个非负值作为参数,这使得参数-3.14生成了 `NaN` 作为返回值。
+输出的最后一行的 `NaN` 表示不是数字Not a Number:C 库函数 `sqrt` 期待一个非负值作为参数,这使得参数 `-3.14` 生成了 `NaN` 作为返回值。
### 调用涉及指针的 C 函数
-C 库函数为了提高效率经常在安全、网络、字符串处理、内存管理,以及其他领域中使用指针。例如,库函数 `asctime`(时间作为 ASCII 字符串)期待一个结构体指针作为其参数。Rust 调用类似 `asctime` 的 C 函数就会比调用 `sqrt` 要更加棘手一些,后者既没有牵扯到指针,也不涉及到结构体。
+C 库函数为了提高效率,经常在安全、网络、字符串处理、内存管理,以及其他领域中使用指针。例如,库函数 `asctime`(ASCII 字符串形式的时间)期待一个结构体指针作为其参数。Rust 调用类似 `asctime` 的 C 函数就会比调用 `sqrt` 要更加棘手一些,后者既没有牵扯到指针,也不涉及到结构体。
-函数 `asctime` 调用的 C 结构体类型为 `struct tm`。一个指向此结构体的指针会作为参数被传递给库函数 `mktime`(时间作为值)。此结构体会将时间拆分成诸如年、月、小时之类的单位。此结构体的字段 (fields) 类型为 `time_t`,是 `int`(32位)和 `long`(64位)的异名。两个库函数将这些破碎的时间碎片组合成了一个单一值:`asctime` 返回一个字符串用以表达时间,而 `mktime` 返回一个 `time_t` 值表示自 [_epoch_][4],即系统时钟和时间戳被决定的那一刻,以来所经历的秒数。典型的 epoch 设置为1900年或1970年,1月1日,0时0分0秒。
+函数 `asctime` 调用的 C 结构体类型为 `struct tm`。一个指向此结构体的指针会作为参数被传递给库函数 `mktime`(时间作为值)。此结构体会将时间拆分成诸如年、月、小时之类的单位。此结构体的字段field类型为 `time_t`,是 `int`(32位)和 `long`(64 位)的别名。两个库函数将这些破碎的时间片段组合成了一个单一值:`asctime` 返回一个以字符串表示的时间,而 `mktime` 返回一个 `time_t` 值表示自 “[纪元][4]Epoch 以来所经历的秒数,这是一个系统的时钟和时间戳的相对时间。典型的纪元设置为 1900 年或 1970 年,1 月 1 日 0 时 0 分 0 秒。(LCTT 校注:Unix、Linux 乃至于如今所有主要的计算机和网络的时间纪元均采用 1970 年为起点。)
以下的 C 程序调用了 `asctime` 和 `mktime`,并使用了其他库函数 `strftime` 来将 `mktime` 的返回值转化成一个格式化的字符串。这个程序可被视作 Rust 对应版本的预热:
@@ -93,8 +97,8 @@ int main () {
sometime.tm_hour = 1;
sometime.tm_mday = 1;
sometime.tm_mon = 1;
- sometime.tm_year = 1;
- sometime.tm_hour = 1; /*LCTT 译注:这里作者多敲了一行*/
+ sometime.tm_year = 1; /*LCTT 校注:注意,相对于 1900 年的年数*/
+ sometime.tm_hour = 1;
sometime.tm_wday = 1;
sometime.tm_yday = 1;
@@ -102,11 +106,11 @@ int main () {
utc = mktime(&sometime);
if( utc < 0 ) {
- fprintf(stderr, "错误: mktime 无法生成时间\n");
+ fprintf(stderr, "错误: mktime 无法生成时间\n");
} else {
- printf("返回的整数值: %d\n", utc);
- strftime(buffer, sizeof(buffer), "%c", &sometime);
- printf("更加可读的版本: %s\n", buffer);
+ printf("返回的整数值: %d\n", utc);
+ strftime(buffer, sizeof(buffer), "%c", &sometime);
+ printf("更加可读的版本: %s\n", buffer);
}
return 0;
@@ -121,19 +125,19 @@ int main () {
更加可读的版本: Fri Feb 1 01:01:01 1901
```
-(LCTT 译注:如果你尝试在自己电脑上运行这段代码,然后得到了一行关于 `mktime` 的错误信息,然后又在网上随便找了个在线 C 编译器,复制代码然后得到了跟这里的结果有区别但是没有错误的结果,不要慌,我的电脑上也是这样的。导致本地机器上 `mktime` 失败的原因是作者没有设置 `tm_isdst`,这个是用来标记夏令时的 flag。[`tm_isdst` 大于零则夏令时生效中,等于零则不生效,小于零标记未知][5]。加入 `sometime.tm_isdst = 0` 或 `= -1` 后应该就能得到跟在线编译器大致一样的结果。不同的地方在于结果第一行我得到的是 `Mon Feb ...`,这个与作者代码中 `sometime.tm_wday = 1` 对应,这里因该是作者写错了;第二行我和作者和网上得到的数字都不一样,这大概是合理的,因为这与机器的 epoch 有关;第三行我跟作者的结果是一样的,1901年2月1日也确实是周五,这是因为 [`mktime` 其实会修正时间参数中不合理的地方][6]。至于夏令时具体是如何影响 `mktime` 这个问题,我能查到的只有 `mktime` 的计算受时区影响,更底层的原因我也不知道了。)
+(LCTT 译注:如果你尝试在自己电脑上运行这段代码,然后得到了一行关于 `mktime` 的错误信息,然后又在网上随便找了个在线 C 编译器,复制代码然后得到了跟这里的结果有区别但是没有错误的结果,不要慌,我的电脑上也是这样的。导致本地机器上 `mktime` 失败的原因是作者没有设置 `tm_isdst`,这个是用来标记夏令时的标志。[`tm_isdst` 大于零则夏令时生效中,等于零则不生效,小于零标记未知][5]。加入 `sometime.tm_isdst = 0` 或 `= -1` 后应该就能得到跟在线编译器大致一样的结果。不同的地方在于结果第一行我得到的是 `Mon Feb ...`,这个与作者代码中 `sometime.tm_wday = 1` 对应,这里应该是作者**写错了**;第二行我和作者和网上得到的数字都不一样,这大概是合理的,因为这与机器的纪元有关;第三行我跟作者的结果是一样的,1901 年 2 月 1 日也确实是周五,这是因为 [`mktime` 其实会修正时间参数中不合理的地方][6]。至于夏令时具体是如何影响 `mktime` 这个问题,我能查到的只有 `mktime` 的计算受时区影响,更底层的原因我也不知道了。)
总的来说,Rust 在调用库函数 `asctime` 和 `mktime` 时,必须处理以下两个问题:
- 将裸指针作为唯一参数传递给每个库函数。
- 把从 `asctime` 返回的 C 字符串转化为 Rust 字符串。
-### Rust 调用 `asctime` 和 `mktime`
+### Rust 调用 asctime 和 mktime
工具 `bindgen` 会根据类似 `math.h` 和 `time.h` 之类的 C 头文件生成 Rust 支持的代码。下面这个简化版的 `time.h` 就可以用来做例子,简化版与原版主要有两个不同:
-- 内置类型 `int` 被用来取代异名类型 `time_t`。工具 bindgen 可以处理 `time_t` 类但是会生成一些烦人的警告,因为 `time_t` 不符合 Rust 的命名规范:`time_t` 以下划线区分 `time` 和 `t`;Rust 更偏好驼峰式命名方法,比如 `TimeT`。
-- 出于同样的原因,这里选择 `StructTM` 作为 `struct tm` 的异名。
+- 内置类型 `int` 被用来取代别名类型 `time_t`。工具 bindgen 可以处理 `time_t` 类,但是会生成一些烦人的警告,因为 `time_t` 不符合 Rust 的命名规范:`time_t` 以下划线区分 `time` 和 `t`;Rust 更偏好驼峰式命名方法,比如 `TimeT`。
+- 出于同样的原因,这里选择 `StructTM` 作为 `struct tm` 的别名。
以下是一份简化版的头文件,`mktime` 和 `asctime` 在文件底部:
@@ -154,7 +158,7 @@ extern int mktime(StructTM*);
extern char* asctime(StructTM*);
```
-`bindgen` 安装好后,`%` 作为命令行提示,`mytime.h` 作为以上提到的头文件,以下命令可以生成所需的 Rust 代码并将其保存到文件 `mytime.rs`:
+`bindgen` 安装好后,`mytime.h` 作为以上提到的头文件,以下命令(`%` 是命令行提示符)可以生成所需的 Rust 代码并将其保存到文件 `mytime.rs`:
```
% bindgen mytime.h > mytime.rs
@@ -201,9 +205,9 @@ fn bindgen_test_layout_tm() {
...
```
-Rust 结构体 `struct tm`,跟原本在 C 中的一样,包含了九个4字节的整型字段。这些字段名称在 C 和 Rust 中是一样的。`extern "C"` 区域声明了库函数 `astime` 和 `mktime` 分别需要只一个参数,一个指向可变实例 `extern "C"` 的裸指针。(库函数可能会通过指针改变作为参数传递的结构体。)
+Rust 结构体 `struct tm`,跟原本在 C 中的一样,包含了 9 个 4 字节的整型字段。这些字段名称在 C 和 Rust 中是一样的。`extern "C"` 区域声明了库函数 `astime` 和 `mktime` 分别需要只一个参数,一个指向可变实例 `StructTM` 的裸指针。(库函数可能会通过指针改变作为参数传递的结构体。)
-`#[test]` 属性下的其余代码是用来测试 Rust 版的时间结构体的布局。通过命令 `cargo test` 可以进行这些测试。一个 C 不会声明的问题是编译器应该如何对结构体中的字段进行布局。比如说,C 的 `struct tm` 以字段 `tm_sec` 开头用以表示秒;但是 C 不需要编译版本遵循这个排序。不管怎样,Rust 测试应该会成功而 Rust 对库函数的调用也应如预期般工作。
+`#[test]` 属性下的其余代码是用来测试 Rust 版的时间结构体的布局。通过命令 `cargo test` 可以进行这些测试。问题在于,C 没有规定编译器应该如何对结构体中的字段进行布局。比如说,C 的 `struct tm` 以字段 `tm_sec` 开头用以表示秒;但是 C 不需要编译版本遵循这个排序。不管怎样,Rust 测试应该会成功,而 Rust 对库函数的调用也应如预期般工作。
### 设置好第二个案例并开始运行
@@ -251,9 +255,9 @@ Ok(
2120218157
```
-对 C 函数 `asctime` 和 `mktime` 的调用必须再一次被放在 `unsafe` 区域内,因为 Rust 编译器无法对这些外部函数的潜在内存安全风险负责。此处声明一下,`asctime` 和 `mktime` 并没有安全风险。调用的两个函数的参数是裸指针 `ptr`,其指向结构体 `sometime` (在栈 (stack) 中)的地址。
+对 C 函数 `asctime` 和 `mktime` 的调用必须再一次被放在 `unsafe` 区域内,因为 Rust 编译器无法对这些外部函数的潜在内存安全风险负责。此处声明一下,`asctime` 和 `mktime` 并没有安全风险。调用的两个函数的参数是裸指针 `ptr`,其指向结构体 `sometime` (在栈stack中)的地址。
-`asctime` 是两个函数中调用起来更棘手的那个,因为这个函数返回的是一个指向 C `char` 的指针,如果函数返回 `Mon` 那么指针就指向 `M`。但是 Rust 编译器并不知道 C 字符串 (`char` 的空终止数组)的储存位置。是内存里的静态空间?还是堆 (heap)?`asctime` 函数内用来储存时间的文字表达的数组实际上是在内存的静态空间里。无论如何,C 到 Rust 字符串转化需要两个步骤来避免编译错误:
+`asctime` 是两个函数中调用起来更棘手的那个,因为这个函数返回的是一个指向 C `char` 的指针,如果函数返回 `Mon` 那么指针就指向 `M`。但是 Rust 编译器并不知道 C 字符串 (`char` 的空终止数组)的储存位置。是内存里的静态空间?还是堆heap?`asctime` 函数内用来储存时间的文字表达的数组实际上是在内存的静态空间里。无论如何,C 到 Rust 字符串转化需要两个步骤来避免编译错误:
- 调用 `Cstr::from_ptr(char_ptr)` 来将 C 字符串转化为 Rust 字符串并返回一个引用储存在变量 `c_str` 中。
- 对 `c_str.to_str()` 的调用确保了 `c_str` 是所有者。
@@ -262,9 +266,9 @@ Rust 代码不会增加从 `mktime` 返回的整型值的易读性,这一部
### 使用 FFI 和 bindgen 调用 C
-Rust FFI 和工具 `bindgen` 都能够出色地协助 Rust 调用 C 库,无论是标准库还是第三方库。Rust 轻松地与 C 交流,并透过 C 与其他语言交流。对于调用像 `sqrt` 一样简单的库函数,Rust FFI 表现直截了当,这是因为 Rust 的原始数据类型覆盖了它们在 C 中的对应部分。
+Rust FFI 和工具 `bindgen` 都能够出色地协助 Rust 调用 C 库,无论是标准库还是第三方库。Rust 可以轻松地与 C 交流,并透过 C 与其他语言交流。对于调用像 `sqrt` 一样简单的库函数,Rust FFI 表现直截了当,这是因为 Rust 的原始数据类型覆盖了它们在 C 中的对应部分。
-对于更为复杂的交流——特别是 Rust 调用像 `asctime` 和 `mktime` 一样,会涉及到结构体和指针的 C 库函数——工具 `bindgen` 是优秀的帮手。这个工具会生成支持代码以及所需要的测试。当然,Rust 编译器无法假设 C 代码对内存安全的考虑会符合 Rust 的标准;因此,Rust 必须在 `unsafe` 区域内调用 C。
+对于更为复杂的交流 —— 特别是 Rust 调用像 `asctime` 和 `mktime` 一样,会涉及到结构体和指针的 C 库函数 —— `bindgen` 工具是优秀的帮手。这个工具会生成支持代码以及所需要的测试。当然,Rust 编译器无法假设 C 代码对内存安全的考虑会符合 Rust 的标准;因此,Rust 必须在 `unsafe` 区域内调用 C。
--------------------------------------------------------------------------------
@@ -273,7 +277,7 @@ via: https://opensource.com/article/22/11/rust-calls-c-library-functions
作者:[Marty Kalin][a]
选题:[lkxed][b]
译者:[yzuowei](https://github.com/yzuowei)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -285,3 +289,4 @@ via: https://opensource.com/article/22/11/rust-calls-c-library-functions
[4]: https://baike.baidu.com/item/UNIX时间/8932323
[5]: https://cplusplus.com/reference/ctime/tm/
[6]: https://cplusplus.com/reference/ctime/mktime/
+[0]: https://img.linux.net.cn/data/attachment/album/202212/16/110147q4kk0qoqe0e3m6bb.jpg
\ No newline at end of file
From 3431b3e80fadb0ca6a53b7ba27d665ba4b67a38b Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Fri, 16 Dec 2022 11:03:19 +0800
Subject: [PATCH 063/266] P
@yzuowei
https://linux.cn/article-15353-1.html
---
....2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
rename {translated/tech => published}/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md (99%)
diff --git a/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/published/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
similarity index 99%
rename from translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
rename to published/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
index 824dd7b0e8..f0f6e2de35 100644
--- a/translated/tech/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
+++ b/published/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
@@ -4,8 +4,8 @@
[#]: collector: "lkxed"
[#]: translator: "yzuowei"
[#]: reviewer: "wxy"
-[#]: publisher: " "
-[#]: url: " "
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15353-1.html"
从 Rust 调用 C 库函数
======
From b7b0a4db99e3e73dbbd9e6a659a98d4278a0722b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Fri, 16 Dec 2022 23:08:48 +0800
Subject: [PATCH 064/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221215.5=20=E2=AD=90=EF=B8=8F=20XFCE=204.18=20Releas?=
=?UTF-8?q?e=20Looks=20Impressive!.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... ⭐️ XFCE 4.18 Release Looks Impressive!.md | 138 ++++++++++++++++++
1 file changed, 138 insertions(+)
create mode 100644 sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
diff --git a/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md b/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
new file mode 100644
index 0000000000..0fa893a4df
--- /dev/null
+++ b/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
@@ -0,0 +1,138 @@
+[#]: subject: "XFCE 4.18 Release Looks Impressive!"
+[#]: via: "https://news.itsfoss.com/xfce-4-18-release/"
+[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+XFCE 4.18 Release Looks Impressive!
+======
+
+Xfce 4.18 is here with interesting feature additions and subtle changes.
+
+![XFCE 4.18 Release Looks Impressive!][1]
+
+Xfce is one of the best desktop environments out there. It is popular for its simplicity and is a lightweight option.
+
+Unlike other desktop environments, you do not see regular feature additions to Xfce. So, it is always exciting to wait for an upgrade.
+
+Xfce 4.18 is the latest release with some useful feature additions and other technical improvements. Let me highlight the same.
+
+### Xfce 4.18: What's New?
+
+![Xfce 4.18 with its new default wallpaper][2]
+
+Although this is not a complete list of changes, some of the more noticeable ones include:
+
+- **File manager improvements**
+- **Desktop and panel changes**
+- **More settings for you to tinker with**
+- **New Wallpapers**
+
+#### File Manager Improvements
+
+![Xfce 4.18 file manager with split view][3]
+
+Thunar, the default file manager for XFCE, has received quite a few changes with this release. A favorite of many Linux users, Thunar has a clean and intuitive user interface, making it easy for people of all skill levels.
+
+With this release, this useful tool has received several new features. For instance:
+
+- **The new search icon in the toolbar allows users to search for files and folders quickly**
+- **You can now add a split view**
+- **Enable a standalone image preview**
+
+There's also an interesting addition that helps you **highlight files** to quickly spot them. You can set a foreground and background color, and reset it if you want it gone.
+
+![xfce 4.18 file highlight][4]
+
+You can access this feature from the properties option of a file.
+
+There are a few other additions to Thunar file manager, including:
+
+- **A new tab for customizing keyboard shortcuts**
+- **New bookmark menu**
+
+#### Refined Settings and Desktop Changes
+
+Xfce desktop remains much of the same. You should not expect a different user experience out of the box.
+
+There are no major visual overhauls but subtle refinements and feature improvements.
+
+For instance, you can find new abilities with the calendar widget. Display settings offer more options even if you do not have multiple displays connected.
+
+XFCE panel got some changes as well.
+
+![xfce 4.18 panel settings][5]
+
+These include adjusting the height in terms of pixels instead of percentages and a new "**keep panel above windows**" option. This allows windows to extend underneath the panel instead of being cut off at the top.
+
+Not to mention, the clock applet can now have its font family, font size, and layout customized.
+
+![xfce 4.18 clock][6]
+
+#### New Wallpapers
+
+Of course, we also get some new wallpapers; you've already seen the new default at the beginning of this article.
+
+![xfce 4.18 new wallpaper collection][7]
+
+If you are curious, you can check out various other submissions for the [wallpaper contest][8]. Maybe you will find something that others didn't like.
+
+![xfce 4.18 new wallpaper collection][9]
+
+These are the second and third-best choices planned to be added to the background collection.
+
+#### Other Changes
+
+Alongside those previously mentioned, a few more changes are also introduced with this release.
+
+- **Initial Wayland support, which allows Xfce to run on the Wayland display server.**
+- **GTK4 updates, which provide improved performance and stability.**
+- **A few minor updates to some core apps, including improvements to the Xfdesktop, Xfwm4, and Xfce4-panel applications.**
+
+For a complete list of changes, you can refer to the [official blog post][10].
+
+### Getting XFCE 4.18
+
+You can install it for rolling-release distributions like Arch Linux through the repositories. For other distributions, you may have to wait for an official update if you do not want to experiment with things yourself.
+
+For a quick try, you can install Xubuntu 23.04 daily builds to get your hands on the features.
+
+If you are using any other Linux distributions that do not provide quick desktop environment updates for stability purposes, you can try installing it manually if you know what you are doing.
+
+[Download Xfce 4.18][11]
+
+### Final Thoughts
+
+Xfce 4.18 is a significant update to the Xfce desktop environment, with many new features and improvements.
+
+The updates to the Thunar file manager are particularly noteworthy, as they provide users with more control and customization options. The initial Wayland support and GTK4 updates will improve performance and stability.
+
+Overall, Xfce 4.18 is a welcome update that will improve the user experience for Xfce users.
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/xfce-4-18-release/
+
+作者:[Jacob Crume][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/jacob/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/xfce-4-18-release.png
+[2]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-hero.jpg
+[3]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-manager.jpg
+[4]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-highlight.jpg
+[5]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-panel.jpg
+[6]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-clock-settings.jpg
+[7]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallaper.jpg
+[8]: https://gitlab.xfce.org/artwork/public/-/issues/1#note_58300
+[9]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallpapers.jpg
+[10]: https://alexxcons.github.io/blogpost_8.html
+[11]: https://www.xfce.org/
From 2df5e1752505455e66d08530bac77d07c42585b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Fri, 16 Dec 2022 23:23:21 +0800
Subject: [PATCH 065/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221216.1=20=E2=AD=90=EF=B8=8F=20Harmonoid=20A=20Beau?=
=?UTF-8?q?tiful=20Cross-Platform=20Music=20Player=20With=20Essential=20Fe?=
=?UTF-8?q?atures.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...atform Music Player With Essential Features.md | 107 ++++++++++++++++++
1 file changed, 107 insertions(+)
create mode 100644 sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
diff --git a/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
new file mode 100644
index 0000000000..9b02d56dcc
--- /dev/null
+++ b/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
@@ -0,0 +1,107 @@
+[#]: subject: "Harmonoid: A Beautiful Cross-Platform Music Player With Essential Features"
+[#]: via: "https://itsfoss.com/harmonoid/"
+[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Harmonoid: A Beautiful Cross-Platform Music Player With Essential Features
+======
+
+Fortunately, there’s no shortage of [good open-source music players for Linux][1]. We have covered a variety of options in the past.
+
+Here, I highlight a music player that is free to use, open-source, and available for multiple platforms, including **Linux, Windows, and Android**.
+
+### Harmonoid: Intuitive User Experience With Material Design
+
+![harmonoid player][2]
+
+Harmonoid is written in Dart programming language. It utilizes [libmpv][3] and [mpv][4] for its media playback capabilities on desktop platforms.
+
+It provides an excellent user interface to work with. And does not use electron.js. So, if you hate Electron, this is something you can try.
+
+Usually, you see apps feature material design UI on Android. If you did not know, Material is Google’s open-source design system.
+
+![harmonoid player info][5]
+
+Not a lot of creators use it for desktop applications. For a change, Harmonoid features a material design user experience that can be snappy and intuitive simultaneously.
+
+This lets Harmonoid present a unique user experience to Linux users. The animations feel smooth and easy to navigate and offer plenty of valuable features to help manage your music library.
+
+![harmonoid url][6]
+
+If you want a music player with a good UI and feature set, I recommend trying Harmonoid.
+
+**Recommended Read**: [Best Music Players for Linux Users][1]
+
+### Features of Harmonoid
+
+![harmonoid player options][7]
+
+[Harmonoid][8] may look like a simple music player, but it comes packed with some of the most valuable features. They include:
+
+- **Sing along feature where it finds lyrics, or you can manually add them**
+- **Edit song details, including artist, year, genre, track number, album, and title**
+- Easy sorting and ordering of your music list
+- A quick search feature to find what you are looking for
+- Caches metadata to offer a fast experience every time you load it
+- Good integration support with Windows and Linux
+- Discord rich presence support to show your music along with artwork and play buttons
+- Adjust the speed, volume, and pitch of the music
+- Raw metadata reader to read tags of any file or song in your library
+- Playback is powered by MPV
+- .LRC file compatibility
+- **Online URL (YouTube) and radio stream supported**
+- Cross-platform
+- Multiple artist support
+- Dark/light mode
+
+In addition to these, several subtle abilities go a long way, like **gapless playback and context menu integration, and it is a lightweight application** in general.
+
+Harmonoid should fit perfectly for users who want to play music or want to organize their collection simultaneously. I would say that it offers the best of both worlds.
+
+![harmonoid settings][9]
+
+### Install Harmonoid on Linux
+
+You can grab the **.deb/.rpm** package from its [download page][10] and install it on Ubuntu-based distros or Fedora.
+
+Additionally, you need to install mpv and libmpv using the following command (for Ubuntu):
+
+```
+sudo apt install mpv lipmpv-dev
+```
+
+Ensuring to install these packages will let you handle all kinds of files for playback with Harmonoid.
+
+You can also find Harmonoid on [AUR][11] for Arch-based distributions. To explore more about the player, head to its [GitHub page][12] and the [official website][8].
+
+_Have you tried Harmonoid to play and organize music on your Linux system? What’s your favorite music player for Linux? Let me know your thoughts in the comments down below._
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/harmonoid/
+
+作者:[Ankush Das][a]
+选题:[lkxed][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/ankush/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/best-music-players-linux/
+[2]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player.png
+[3]: https://github.com/mpv-player/mpv/tree/master/libmpv
+[4]: https://mpv.io
+[5]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-info.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-url.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-options.png
+[8]: https://harmonoid.com
+[9]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-settings.png
+[10]: https://harmonoid.com/downloads
+[11]: https://aur.archlinux.org/packages/harmonoid-bin
+[12]: https://github.com/harmonoid/harmonoid
From 7d595ec1cd2e42388646a032e5cf47c8bbbfb4af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Fri, 16 Dec 2022 23:24:04 +0800
Subject: [PATCH 066/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221216.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=205?=
=?UTF-8?q?=20reasons=20to=20love=20Linux=20GNOME=20Files.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️⭐️ 5 reasons to love Linux GNOME Files.md | 96 +++++++++++++++++++
1 file changed, 96 insertions(+)
create mode 100644 sources/tech/20221216.2 ⭐️⭐️ 5 reasons to love Linux GNOME Files.md
diff --git a/sources/tech/20221216.2 ⭐️⭐️ 5 reasons to love Linux GNOME Files.md b/sources/tech/20221216.2 ⭐️⭐️ 5 reasons to love Linux GNOME Files.md
new file mode 100644
index 0000000000..fda0ea984f
--- /dev/null
+++ b/sources/tech/20221216.2 ⭐️⭐️ 5 reasons to love Linux GNOME Files.md
@@ -0,0 +1,96 @@
+[#]: subject: "5 reasons to love Linux GNOME Files"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-gnome"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+5 reasons to love Linux GNOME Files
+======
+
+The GNOME desktop is a common default desktop for most Linux distributions and, as with most operating systems, you manage your data on GNOME with software called a file manager. GNOME promotes a simple and clear naming scheme for its applications, and so its file manager is called, simply, Files. Its intuitive interface is simple enough that you forget what operating system you're using altogether. You're just using a computer, managing files in the most obvious way. GNOME Files is a shining example of thoughtful, human-centric design, and it's an integral part of modern computing. These are my top five favorite things about GNOME Files, and why I love using it.
+
+### 1. Intuitive design
+
+![THe GNOME Files file manager is an intuitive and friendly application.][1]
+
+As long as you've managed files on a computer before, you basically already know how to use GNOME Files. Sure, everybody loves innovation, and everybody loves seeing new ideas that make the computer world a little more exciting. However, there's a time and a place for everything, and frankly sometimes the familiar just feels better. Good file management is like breathing. It's something you do without thinking about what you're doing. When it becomes difficult for any reason, it's disruptive and uncomfortable.
+
+GNOME Files doesn't have any surprises in store for you, at least not the kind that make you stop what you thought you were doing in order to recalculate and start again. And my favorite aspect of the "do it the way you think you should do it" design of GNOME Files is that there isn't only one way to accomplish a task. One thing I've learned from teaching people how to do things on computers is that everyone seems to have a slightly different workflow for even the simplest of tasks, so it's a relief that GNOME Files accounts for that.
+
+When you need to move a file, do you open a second window so you can drag and drop between the two? Or do you right-click and Cut the file and then navigate to the destination and Paste the file? Or do you drag the file onto a button or folder icon, blazing a trail through directories as they open for you? In GNOME Files, the "standard" assumptions usually apply (insofar as there are standard assumptions.)
+
+### 2. Space saver
+
+If you manage a lot of files for a lot of the time you're at your computer, you're probably familiar with just how much screen real estate a file manager can take up. Many file managers have lots of buttons across several toolbars, a menu bar, and a status bar, such that just one file manager window takes up a good portion of your screen. To make matters worse, many users prefer to open several folders, each in its own window, which takes even more space.
+
+GNOME Files tends to optimize space. What takes up three separate toolbars in other file managers is in a single toolbar in GNOME Files, and that toolbar is what would traditionally be the window title bar. In the top bar, there's a forward and back button, file path information, a view settings button, and a drop-down menu with access to common functions.
+
+![The GNOME Files toolbar has just the essential buttons, and in a compact space.][2]
+
+### 3. Other locations
+
+Not all operating systems or file managers make it so you can interact with your network as naturally as you can interact with your own computer. Linux has a long tradition of viewing the network as just another computer, and in fact, the name "GNOME" was an acronym for "GNU Network Object Model Environment."
+
+In GNOME Files, it's trivial to open a folder on a computer you're not sitting in front of. Whether it's a server in a data center or just your office desktop while you're relaxing in your lounge with a laptop, the **Other Locations** bookmark in the GNOME Files side panel allows you to access files as if they were on your hard drive.
+
+![It's easy to connect to remote systems through GNOME Files.][3]
+
+To use it, you enter the file sharing protocol you want to use, along with the username and IP address of the computer you want to access. The `ssh://` protocol is most common between Linux or Unix machines, while `smb://` is useful for an environment with [Windows machines][4], and `dav://` is useful for applications running on the Internet. Assuming the target computer is accessible over the protocol you're using, and that its [firewall is set correctly][5] to permit you to pass through it, you can interact with a remote system as naturally as though they were on your local machine.
+
+### 4. Preferences
+
+Most file managers have configuration options, and to be fair GNOME Files actually doesn't give you very many choices compared to others. However, the options that it does offer are, like the modes of working it offers its users, the "standard" ones. I'm misusing the word "standard" intentionally: There is no standard, and what feels standard to one person is niche to someone else. But if you like what you're experiencing with GNOME Files under normal circumstances, and you feel that you're its intended audience, then the configuration options it offers are in line with the experience it promotes. For example:
+
+- Sort folders before files
+- Expand folders in _list view_
+- Show the **Create link** option in the contextual menu
+- Show the **Delete Permanently** option in the contextual menu
+- Adjust visible information beneath a filename in _icon view_
+
+That's nearly all the options you're given, and in a way it's surface-level choices. But that's GNOME Files. If you want something with more options, there are several very good alternatives that may better fit your style of work. If you're looking for a file manager that just covers the most common use cases, then try GNOME Files.
+
+### 5. It's full of stars
+
+I love the concept of metadata, and I generally hate the way it's _not_ implemented. Metadata has the potential to be hugely useful in a pragmatic way, but it's usually relegated to specialized metadata editing applications, hidden from view and out of reach. GNOME Files humbly contributes to improving this situation with one simple feature: The gold star.
+
+In GNOME Files, you can star any file or folder. It's a bit of metadata so simple that it's almost silly to call it metadata, but in my experience, it makes a world of difference. Instead of desperately running [find][6] command to filter files by recent changes, or re-sorting a folder by modification time, or using [grep][7] to find that one string I just know is in an important file, I can star the files that are important to me.
+
+Making plans for the zombie apocalypse all day? Star it so you can find it tomorrow when you resume your important work. After it's over and the brain-eaters have been dealt with, un-star the folder and resume normal operation. It's simple. Maybe too simple for some. But I'm a heavy star-user, and it saves me several methods of searching and instead reduces "what was I working on?" to the click of a single button.
+
+### Install GNOME Files
+
+If you've downloaded a mainstream Linux distribution, then chances are good that you already have GNOME and GNOME Files installed. However, not all distributions default to GNOME, and even those that do often have different desktops available for download. The development name of GNOME Files is `nautilus`, so to find out whether you have GNOME Files installed, open a terminal and type `nautilus &` and then press **Return**. If you see this error, you don't have GNOME Files available:
+
+```
+bash: nautilus: command not found...
+```
+
+To install GNOME Files, you must install the GNOME desktop. If you're happy with your current desktop, though, that's probably not what you want to do. Instead, consider trying [PCManFM][8] or [Thunar][9].
+
+If you're interested in GNOME, though, this is a great reason to try it. You can probably install GNOME from your distribution's repository or software center.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-gnome
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/2022-10/gnome-files.webp
+[2]: https://opensource.com/sites/default/files/2022-10/gnome-files-toolbar.webp
+[3]: https://opensource.com/sites/default/files/2022-10/gnome-files-connect.webp
+[4]: https://opensource.com/article/21/4/share-files-linux-windows
+[5]: https://www.redhat.com/sysadmin/secure-linux-network-firewall-cmd
+[6]: https://opensource.com/article/21/9/linux-find-command
+[7]: https://www.redhat.com/sysadmin/how-to-use-grep
+[8]: http://linnk-to-pcmanfm-article
+[9]: http://link-to-article
From 8845ceb9c345aa23eb5ecddb345c10aa44b0ab84 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Fri, 16 Dec 2022 23:24:28 +0800
Subject: [PATCH 067/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221216.3=20=E2=AD=90=EF=B8=8F=20Better=20Late=20Than?=
=?UTF-8?q?=20Never!=20GNOME's=20File=20Picker=20Adds=20Thumbnail=20View?=
=?UTF-8?q?=20After=2018=20Years.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...e Picker Adds Thumbnail View After 18 Years.md | 94 +++++++++++++++++++
1 file changed, 94 insertions(+)
create mode 100644 sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
diff --git a/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md b/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
new file mode 100644
index 0000000000..2917f3aed7
--- /dev/null
+++ b/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
@@ -0,0 +1,94 @@
+[#]: subject: "Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years"
+[#]: via: "https://news.itsfoss.com/gnome-file-picker/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years
+======
+
+A long-lost request, and a much-needed one, finally made its way through!
+
+![Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years][1]
+
+Nowadays, the user interface of a program is extremely important; even the simplest of interactions can make or break the user's experience.
+
+The GNOME file picker lacked a proper thumbnail preview for viewing files, instead relying on a plain list view. This may have been unintuitive for many.
+
+The lack of this feature was also the topic of many memes and debates over the years.
+
+But now, finally, after 18 long years since the original [feature request][2] was put out, GNOME is set to receive support for a proper thumbnail view.
+
+Let's look at this upcoming change to GNOME's file picker.
+
+#### Recommended Read 📖
+
+### Feature to Arrive With GNOME 44
+
+![gnome file thumbnail view][3]
+
+As demonstrated by this early build screenshot provided by GNOME developer [Matthias Clasen][4]. The file picker on GNOME is going to feature a thumbnail view.
+
+This is how it looks like with GNOME 43 on board:
+
+![file picker with gnome 43][5]
+
+**How to access it?:** It is a grid view for the file picker on GNOME that shows the thumbnail previews of files and folders.
+
+It will now be easy to differentiate items in the file manager; no more opening a file to see what it contains!
+
+![gnome file thumbnail view selector][6]
+
+When this feature arrives, you can enable it by clicking on the new view toggle button at the top right.
+
+**What Changed?:** 18 years for a simple feature addition is a long time. Numerous technical reasons made the implementation of this an arduous task.
+
+But I am glad that it is finally here. 😃
+
+One of the reasons that made this possible was the recent deprecations and modernization work carried out in the GTK code base.
+
+> 💡 GTK is the toolkit that is at the core of all things GNOME.
+
+And, those changes resulted in [GtkListView][7] and [GtkGridView][8] using the same data models to make this feature work.
+
+**When to expect?:** The historical [merge request][9] has already been accepted and is paving the way for its introduction to GNOME.
+
+You can expect this to arrive with GNOME 44 sometime in 2023.
+
+I'm looking forward to that! 😁
+
+We would be covering it as part of GNOME 44's feature offerings. So, stay tuned to our coverage for that!
+
+_Don't forget to follow us on [Mastodon][10] and [Twitter][11]! Feel free to share your thoughts on this in the comments below._
+
+Notion – One workspace. Every team.We’re more than a doc. Or a table. Customize Notion to work the way you do.![][12]Notion![][13]
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/gnome-file-picker/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/gtk-file-chooser-gets-thumbnail-preview-support.png
+[2]: https://bugzilla.gnome.org/show_bug.cgi?id=141154
+[3]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail.png
+[4]: https://twitter.com/matthias_clasen
+[5]: https://news.itsfoss.com/content/images/2022/12/file-picker-now.png
+[6]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail-2.png
+[7]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtklistview.c
+[8]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkgridview.c
+[9]: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5163
+[10]: https://mastodon.social/@itsfoss
+[11]: https://twitter.com/itsfoss2
+[12]: https://notion.grsm.io/front-static/logo-ios.png
+[13]: https://www.notion.so/front-static/meta/default.png
From 3b78945d148766da42f1a372e3fc1c64675f50e7 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 17 Dec 2022 00:06:32 +0800
Subject: [PATCH 068/266] ALL
@wxy
https://linux.cn/article-15355-1.html
---
... ⭐️ XFCE 4.18 Release Looks Impressive!.md | 138 ++++++++++++++++++
... ⭐️ XFCE 4.18 Release Looks Impressive!.md | 138 ------------------
2 files changed, 138 insertions(+), 138 deletions(-)
create mode 100644 published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
delete mode 100644 sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
diff --git a/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md b/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
new file mode 100644
index 0000000000..5519a26495
--- /dev/null
+++ b/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
@@ -0,0 +1,138 @@
+[#]: subject: "XFCE 4.18 Release Looks Impressive!"
+[#]: via: "https://news.itsfoss.com/xfce-4-18-release/"
+[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15355-1.html"
+
+Xfce 4.18 版本发布:令人印象深刻
+======
+
+> Xfce 4.18 已发布,添加了一些有趣的功能和细微的变化。
+
+![Xfce 4.18 版本看起来令人印象深刻!][1]
+
+Xfce 是目前最好的桌面环境之一。它因其简单性而受欢迎,是一个轻量级的选择。
+
+不像其他桌面环境,你不会看到 Xfce 定期的添加功能。所以,等待升级总是令人兴奋的。
+
+Xfce 4.18 是最新的版本,它增加了一些有用的功能和其他技术改进。让我重点介绍一下。
+
+### Xfce 4.18 的新变化
+
+![Xfce 4.18 有新的默认墙纸][2]
+
+虽然这不是一个完整的变化列表,但其中一些比较明显的变化包括:
+
+- 文件管理器的改进。
+- 桌面和面板的变化。
+- 更多的设置。
+- 新的墙纸。
+
+#### 文件管理器的改进
+
+![Xfce 4.18 文件管理器的分割视图][3]
+
+Xfce 的默认文件管理器 Thunar 在这个版本中得到了相当多的改变。作为许多 Linux 用户的最爱,Thunar 有一个干净直观的用户界面,使其对不同技能水平的人都很简单易用。
+
+在这个版本中,这个有用的工具获得了几个新功能。比如说:
+
+- 工具条上新的搜索图标使用户能够快速搜索文件和文件夹。
+- 你现在可以添加一个分割视图。
+- 启用独立的图像预览。
+
+还有一个有趣的新增功能,可以帮助你**高亮文件**,以便快速发现它们。你可以设置一个前景和背景颜色,如果你不想要这个功能,也可以重置。
+
+![xfce 4.18 文件高亮][4]
+
+你可以从文件的属性选项中访问这个功能。
+
+Thunar 文件管理器还增加了一些其他功能,包括:
+
+- 一个用于定制键盘快捷键的新标签。
+- 新的书签菜单。
+
+#### 精致的设置和桌面变化
+
+Xfce 桌面的大部分都保持不变。你不应该期待开箱后有不同的用户体验。
+
+虽然没有重大的视觉改造,但有细微的完善和功能改进。
+
+例如,你可以发现日历小部件的新能力。显示设置提供了更多选项,即使你没有连接多个显示器。
+
+Xfce 面板也有一些变化。
+
+![Xfce 4.18 面板设置][5]
+
+这些变化包括用像素而不是百分比来调整高度,以及一个新的 “保持面板在窗口上方” 选项。这使得窗口可以在面板下面延伸,而不是在顶部被切断。
+
+更不用说,时钟小程序现在可以自定义其字体类、字体大小和布局。
+
+![Xfce 4.18 时钟][6]
+
+#### 新壁纸
+
+当然,我们也得到了一些新的壁纸;你已经在本文的开头看到了新的默认壁纸。
+
+![Xfce 4.18 新壁纸集][7]
+
+如果你很好奇,你可以看看其他为 [墙纸竞赛][8] 提交的各种作品。也许你会发现别人不喜欢的东西。
+
+![Xfce 4.18 新壁纸集锦][9]
+
+这些是计划添加到背景集的其它候选作品。
+
+#### 其他变化
+
+除了之前提到的那些,这个版本还引入了一些其他变化。
+
+- 初步的 Wayland 支持,它允许 Xfce 在 Wayland 显示服务器上运行。
+- GTK4 的更新,提供了更好的性能和稳定性。
+- 一些核心应用程序的小更新,包括对 Xfdesktop、Xfwm4 和 Xfce4-panel 应用程序的改进。
+
+关于完整的变化列表,你可以参考 [官方博客文章][10]。
+
+### 获得 Xfce 4.18
+
+你可以通过软件库为滚动发布的发行版(如 Arch Linux)安装它。对于其他发行版,如果你不想自己做实验,你可能必须等待官方的更新。
+
+要想快速尝试,你可以安装 Xubuntu 23.04 日常构建版来获得这些功能。
+
+如果你使用的是其他为了稳定起见而不提供快速桌面环境更新的 Linux 发行版,如果你知道自己在做什么,你可以尝试手动安装。
+
+> **[下载 Xfce 4.18][11]**
+
+### 总结
+
+Xfce 4.18 是 Xfce 桌面环境的一次重大更新,有许多新的功能和改进。
+
+Thunar 文件管理器的更新尤其值得注意,因为它们为用户提供了更多的控制和定制选项。初步的 Wayland 支持和 GTK4 更新将提高性能和稳定性。
+
+总的来说,Xfce 4.18是一个受欢迎的更新,将改善 Xfce 用户的用户体验。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/xfce-4-18-release/
+
+作者:[Jacob Crume][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/jacob/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/xfce-4-18-release.png
+[2]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-hero.jpg
+[3]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-manager.jpg
+[4]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-highlight.jpg
+[5]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-panel.jpg
+[6]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-clock-settings.jpg
+[7]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallaper.jpg
+[8]: https://gitlab.xfce.org/artwork/public/-/issues/1#note_58300
+[9]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallpapers.jpg
+[10]: https://alexxcons.github.io/blogpost_8.html
+[11]: https://www.xfce.org/
diff --git a/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md b/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
deleted file mode 100644
index 0fa893a4df..0000000000
--- a/sources/news/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
+++ /dev/null
@@ -1,138 +0,0 @@
-[#]: subject: "XFCE 4.18 Release Looks Impressive!"
-[#]: via: "https://news.itsfoss.com/xfce-4-18-release/"
-[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-XFCE 4.18 Release Looks Impressive!
-======
-
-Xfce 4.18 is here with interesting feature additions and subtle changes.
-
-![XFCE 4.18 Release Looks Impressive!][1]
-
-Xfce is one of the best desktop environments out there. It is popular for its simplicity and is a lightweight option.
-
-Unlike other desktop environments, you do not see regular feature additions to Xfce. So, it is always exciting to wait for an upgrade.
-
-Xfce 4.18 is the latest release with some useful feature additions and other technical improvements. Let me highlight the same.
-
-### Xfce 4.18: What's New?
-
-![Xfce 4.18 with its new default wallpaper][2]
-
-Although this is not a complete list of changes, some of the more noticeable ones include:
-
-- **File manager improvements**
-- **Desktop and panel changes**
-- **More settings for you to tinker with**
-- **New Wallpapers**
-
-#### File Manager Improvements
-
-![Xfce 4.18 file manager with split view][3]
-
-Thunar, the default file manager for XFCE, has received quite a few changes with this release. A favorite of many Linux users, Thunar has a clean and intuitive user interface, making it easy for people of all skill levels.
-
-With this release, this useful tool has received several new features. For instance:
-
-- **The new search icon in the toolbar allows users to search for files and folders quickly**
-- **You can now add a split view**
-- **Enable a standalone image preview**
-
-There's also an interesting addition that helps you **highlight files** to quickly spot them. You can set a foreground and background color, and reset it if you want it gone.
-
-![xfce 4.18 file highlight][4]
-
-You can access this feature from the properties option of a file.
-
-There are a few other additions to Thunar file manager, including:
-
-- **A new tab for customizing keyboard shortcuts**
-- **New bookmark menu**
-
-#### Refined Settings and Desktop Changes
-
-Xfce desktop remains much of the same. You should not expect a different user experience out of the box.
-
-There are no major visual overhauls but subtle refinements and feature improvements.
-
-For instance, you can find new abilities with the calendar widget. Display settings offer more options even if you do not have multiple displays connected.
-
-XFCE panel got some changes as well.
-
-![xfce 4.18 panel settings][5]
-
-These include adjusting the height in terms of pixels instead of percentages and a new "**keep panel above windows**" option. This allows windows to extend underneath the panel instead of being cut off at the top.
-
-Not to mention, the clock applet can now have its font family, font size, and layout customized.
-
-![xfce 4.18 clock][6]
-
-#### New Wallpapers
-
-Of course, we also get some new wallpapers; you've already seen the new default at the beginning of this article.
-
-![xfce 4.18 new wallpaper collection][7]
-
-If you are curious, you can check out various other submissions for the [wallpaper contest][8]. Maybe you will find something that others didn't like.
-
-![xfce 4.18 new wallpaper collection][9]
-
-These are the second and third-best choices planned to be added to the background collection.
-
-#### Other Changes
-
-Alongside those previously mentioned, a few more changes are also introduced with this release.
-
-- **Initial Wayland support, which allows Xfce to run on the Wayland display server.**
-- **GTK4 updates, which provide improved performance and stability.**
-- **A few minor updates to some core apps, including improvements to the Xfdesktop, Xfwm4, and Xfce4-panel applications.**
-
-For a complete list of changes, you can refer to the [official blog post][10].
-
-### Getting XFCE 4.18
-
-You can install it for rolling-release distributions like Arch Linux through the repositories. For other distributions, you may have to wait for an official update if you do not want to experiment with things yourself.
-
-For a quick try, you can install Xubuntu 23.04 daily builds to get your hands on the features.
-
-If you are using any other Linux distributions that do not provide quick desktop environment updates for stability purposes, you can try installing it manually if you know what you are doing.
-
-[Download Xfce 4.18][11]
-
-### Final Thoughts
-
-Xfce 4.18 is a significant update to the Xfce desktop environment, with many new features and improvements.
-
-The updates to the Thunar file manager are particularly noteworthy, as they provide users with more control and customization options. The initial Wayland support and GTK4 updates will improve performance and stability.
-
-Overall, Xfce 4.18 is a welcome update that will improve the user experience for Xfce users.
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/xfce-4-18-release/
-
-作者:[Jacob Crume][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/jacob/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/xfce-4-18-release.png
-[2]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-hero.jpg
-[3]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-manager.jpg
-[4]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-highlight.jpg
-[5]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-panel.jpg
-[6]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-clock-settings.jpg
-[7]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallaper.jpg
-[8]: https://gitlab.xfce.org/artwork/public/-/issues/1#note_58300
-[9]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallpapers.jpg
-[10]: https://alexxcons.github.io/blogpost_8.html
-[11]: https://www.xfce.org/
From c2d083e5875d489df09c9f7eabc95ac5b2befe01 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 17 Dec 2022 00:10:58 +0800
Subject: [PATCH 069/266] R
---
.../20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md b/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
index 5519a26495..73a9c460db 100644
--- a/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
+++ b/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
@@ -22,14 +22,14 @@ Xfce 4.18 是最新的版本,它增加了一些有用的功能和其他技术
### Xfce 4.18 的新变化
-![Xfce 4.18 有新的默认墙纸][2]
+![Xfce 4.18 有新的默认壁纸][2]
虽然这不是一个完整的变化列表,但其中一些比较明显的变化包括:
- 文件管理器的改进。
- 桌面和面板的变化。
- 更多的设置。
-- 新的墙纸。
+- 新的壁纸。
#### 文件管理器的改进
@@ -78,7 +78,7 @@ Xfce 面板也有一些变化。
![Xfce 4.18 新壁纸集][7]
-如果你很好奇,你可以看看其他为 [墙纸竞赛][8] 提交的各种作品。也许你会发现别人不喜欢的东西。
+如果你很好奇,你可以看看其他为 [壁纸竞赛][8] 提交的各种作品。也许你会发现别人不喜欢的东西。
![Xfce 4.18 新壁纸集锦][9]
From 85004fc10c7d4bff4c8d3623f8eb7ebed161f7b9 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 17 Dec 2022 10:07:45 +0800
Subject: [PATCH 070/266] =?UTF-8?q?=20=E8=B6=85=E6=9C=9F=E5=9B=9E=E6=94=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
index 29e1dbb48d..2858b33b75 100644
--- a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
+++ b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
@@ -2,7 +2,7 @@
[#]: via: "https://ostechnix.com/securely-transfer-files-with-scp-in-linux/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
-[#]: translator: "MjSeven"
+[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From e3e99c1b25edbe51a7e0e6114597b2d6f42ea8fe Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 17 Dec 2022 10:10:00 +0800
Subject: [PATCH 071/266] =?UTF-8?q?=E8=BF=87=E6=9C=9F=E6=96=B0=E9=97=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...acy-Preserving Ads Make a Debut on Brave Search.md | 96 ----------------
...nux Mint 21.1 beta is now available for testing.md | 90 ---------------
...le Open-Source Alternative to Slack and Discord.md | 99 ----------------
...icon GPU Driver is Now Available in Asahi Linux.md | 91 ---------------
...n Gets a Boost With Vivaldi Browser Integration.md | 90 ---------------
...2.4 is out with 100+ improvements and fixes.md | 69 ------------
...ade your video creation with Kdenlive 22.12.md | 88 ---------------
...sic on the web with new WebMIDI API support.md | 73 ------------
...live 22.12 Release Adds Useful New Features.md | 106 ------------------
9 files changed, 802 deletions(-)
delete mode 100644 sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md
delete mode 100644 sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md
delete mode 100644 sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md
delete mode 100644 sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md
delete mode 100644 sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md
delete mode 100644 sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md
delete mode 100644 sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md
delete mode 100644 sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md
delete mode 100644 sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md
diff --git a/sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md b/sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md
deleted file mode 100644
index 2d0561c3c3..0000000000
--- a/sources/news/20221202.2 ⭐️⭐️ Privacy-Preserving Ads Make a Debut on Brave Search.md
+++ /dev/null
@@ -1,96 +0,0 @@
-[#]: subject: "Privacy-Preserving Ads Make a Debut on Brave Search"
-[#]: via: "https://news.itsfoss.com/brave-search-ads/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Privacy-Preserving Ads Make a Debut on Brave Search
-======
-
-Brave Search is testing privacy-preserving ads. But, the Brave browser does not seem to block them by default.
-
-![Privacy-Preserving Ads Make a Debut on Brave Search][1]
-
-Brave Search is an independent search engine that claims not to track its users and provides a safe and secure search experience.
-
-It aims to be a privacy-friendly alternative to the extensive tech services from Microsoft and Google.
-
-With a [recent announcement][2], they introduced a new feature to Brave Search. The search will now show '_privacy-preserving_' ads as part of a global beta program.
-
-What does this mean? Allow me to explain.
-
-### Privacy-Preserving Ads: Meaning?
-
-![brave search privacy preserving ads][3]
-
-Brave is planning to run ads on their search platform; they claim that these ads are anonymous, are marked, and follow its commitment of putting users first.
-
-These ads are said to be clearly labeled and are integrated into Brave Search.
-
-To display relevant advertisements, Brave Search will only use your **search query, country, and device type**.
-
-So, in theory, this should stop them from keeping a profile of your searches.
-
-They also add that:
-
-> Brave Search ads protect users’ data and anonymity, while supporting their access to independent and transparent search as a true alternative to Big Tech search engines.
-
-This has been released as a beta test globally, where Brave Search users will be shown text-based ads in search results.
-
-Users who opted for Brave Private Ads (for _Brave Rewards_) and are using the latest version of Brave won't be shown search ads since these are not yet eligible for BAT earnings.
-
-Additionally, they offer a '**Search Premium**' subscription for an ad-free search experience, which costs **$3 per month**.
-
-With this subscription, you get a completely ad-free search experience while also supporting Brave.
-
-### Is This a Step in the Right Direction?
-
-Even though Brave Search is based on an **open-source search project**[Tailcat][4], they have no plans to make it open-source.
-
-So, Brave Search already has a red flag 🚩 for many privacy enthusiasts who prefer open-source solutions for their transparency.
-
-**Will privacy-preserving ads make a difference, just like Brave Search's original claims for its search engine?**
-
-Well, I certainly hope so. Why? **Because we need more competitors to Google**. And something is better than nothing.
-
-Even without open-source code, we will have to sit back and see what kind of transparency they provide in their advertisement testing soon.
-
-Though, the implementation of Brave's privacy-preserving ads has got a few users upset.
-
-A [comment][5] made by a Reddit user on the official Subreddit of Brave Browser mentions:
-
-> Putting in an exception for your own ads is in exceptionally bad taste. All the marketing fluff around "independent, private search" is not an excuse.
-
-Brave Browser seems to be **not blocking Brave search ads** with its in-built ad-blocker (Brave Shields).
-
-On that, a member of the Brave support team clarified:
-
-> Shields at this time does not block 1st part, non tracking ads by default anyway (with the exception of setting to Aggressive, I believe) so it's actually just following the standard we've already set.
-
-So, you can block the Brave search ads with the privacy protection settings set to aggressive, I believe?
-
-However, not everyone prefers the aggressive blocker. So, let us see how things turn out for Brave search ad experimentation.
-
-💭 **Thoughts? Feel free to share them in the comments section.**
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/brave-search-ads/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/brave-privacy-preserving-ads.png
-[2]: https://brave.com/private-search-ads/
-[3]: https://news.itsfoss.com/content/images/2022/12/Brave_Search_Ads.jpg
-[4]: https://www.tailcat.com
-[5]: https://www.reddit.com/r/brave_browser/comments/z9t171/comment/iyjledp/?utm_source=share&utm_medium=web2x&context=3
diff --git a/sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md b/sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md
deleted file mode 100644
index 871161bbc8..0000000000
--- a/sources/news/20221205.0 ⭐️⭐️ Linux Mint 21.1 beta is now available for testing.md
+++ /dev/null
@@ -1,90 +0,0 @@
-[#]: subject: "Linux Mint 21.1 beta is now available for testing"
-[#]: via: "https://debugpointnews.com/linux-mint-21-1-beta/"
-[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Linux Mint 21.1 beta is now available for testing
-======
-
-![][1]
-
-**Check out the new features of Linux Mint 21.1 beta, which is now slowly available for download in mirrors. The official announcement is awaited.**
-
-![Linux Mint 21.1 beta Cinnamon desktop][2]
-
-Linux Mint 21.1 is the first point release of the 21 series and will be released before Christmas this year. Codenamed “Vera”, which was [announced a few weeks back][3], is now available for beta testing.
-
-The beta testing is expected to continue for at least a week before the final release. Since it is the first point, the feature list is not at that higher end. But some significant updates are arriving in the final release.
-
-### Linux Mint 21.1 beta & new features
-
-One of the biggest updates to the Driver Manager in this release is the ability to run the app with your user account without requiring a password to launch it. This is a major convenience, as it means you don’t have to enter a password every time you want to use the Driver Manager. In addition, when you remove a driver, the app now purges it from the system completely, ensuring that no trace of the driver remains on your computer.
-
-Another key update to the Driver Manager is the ability to detect USB installation media and help you mount them. This is particularly useful if you’re installing software or drivers from a USB drive, as it makes the process much easier and more streamlined.
-
-In addition to these updates, the Mint team has also included a feature for verifying the checksum of ISO files. This is an important part of any installation process, as it ensures that your ISO file is legitimate and hasn’t been tampered with. While other [utilities][4] are available for verifying ISO checksums, including command line tools, it’s nice to see this feature included in the default desktop environment.
-
-Another change in this release is the default desktop view, which is expected to be updated. The default icons for the Computer, Home, Trash, and Network are now hidden from view, as the Computer icon is already included in the Panel, and the other icons are not used as frequently.
-
-Other noteworthy updates in this release include the inclusion of Timeshift backports for prior releases (such as Mint 20.x) and an updated version of Blueman. Overall, this is a solid point release that includes several useful updates and bug fixes.
-
-![New default icon set and bibata cursor][5]
-
-Finally, you may notice the “green” icon sets and the cursor is different in the Cinnamon flavour. Linux Mint 21.1 brings the “Mint-y-Aqua” theme and the stunning “Bibata-modern” cursor theme to pair with it. Both of them look awesome together, giving a much-needed fresh vibe.
-
-### Summary of changes
-
-- First point release of Linux Mint 21, based on Ubuntu 22.04.1 release
-- Linux Kernel 5.15 LTS
-- Cinnamon 5.6.4 desktop
-- Xfce 4.16 desktop
-- MATE 1.26 desktop
-- Friendly driver manager
-- Cleaner default desktop view with fewer icons
-- Default theme changes to “Mint-Y-Aqua” from the green-based icons
-- New cursor theme: Bibata (one of the best cursor theme in Linux)
-- A bunch of stunning wallpapers
-- And an array of bug fixes
-
-### Download and bug reporting for beta
-
-While the team is preparing for the official announcement, the ISO images are slowly becoming available to the public. As always, being a beta release, it may have bugs. So use it with caution.
-
-If you are running Linux Mint 21.0, don’t upgrade it yet. Wait for the final release.
-
-Still, if you want to try it on a virtual machine, download the Cinnamon, Xfce and MATE flavours of this beta release from the torrent links below.
-
-- [linuxmint-21.1-cinnamon-64bit-beta.iso.torrent][6]
-- [linuxmint-21.1-mate-64bit-beta.iso.torrent][7]
-- [linuxmint-21.1-xfce-64bit-beta.iso.torrent][8]
-
-I will update the changelog here once it is available. And finally, report any issues or bugs at the dedicated [21.1 beta bug tracking page][9].
-
-Cheers.
-
---------------------------------------------------------------------------------
-
-via: https://debugpointnews.com/linux-mint-21-1-beta/
-
-作者:[arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://debugpointnews.com/author/dpicubegmail-com/
-[b]: https://github.com/lkxed
-[1]: https://debugpointnews.com/wp-content/uploads/2022/12/21-1-beta-head.jpg
-[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Linux-Mint-21.1-beta-Cinnamon-desktop.jpg
-[3]: https://debugpointnews.com/linux-mint-21-1-announcement/
-[4]: https://www.debugpoint.com/collision/
-[5]: https://debugpointnews.com/wp-content/uploads/2022/12/New-default-icon-set-and-bibata-cursor.jpg
-[6]: https://linuxmint.com/torrents/linuxmint-21.1-cinnamon-64bit-beta.iso.torrent
-[7]: https://linuxmint.com/torrents/linuxmint-21.1-mate-64bit-beta.iso.torrent
-[8]: https://linuxmint.com/torrents/linuxmint-21.1-xfce-64bit-beta.iso.torrent
-[9]: https://github.com/linuxmint/mint21.1-beta/issues
diff --git a/sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md b/sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md
deleted file mode 100644
index e0478f7f27..0000000000
--- a/sources/news/20221205.1 ⭐️⭐️ Linen is a Google-Searchable Open-Source Alternative to Slack and Discord.md
+++ /dev/null
@@ -1,99 +0,0 @@
-[#]: subject: "Linen is a Google-Searchable Open-Source Alternative to Slack and Discord"
-[#]: via: "https://news.itsfoss.com/linen/"
-[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Linen is a Google-Searchable Open-Source Alternative to Slack and Discord
-======
-
-An interesting open-source alternative to Slack and Discord.
-
-![Linen is a Google-Searchable Open-Source Alternative to Slack and Discord][1]
-
-Linen is an interesting open-source project brewing up.
-
-It aims to be an **open alternative to Slack and Discord**, focusing on making communities more accessible and helping reduce the support burden.
-
-It could be worth adding it as an open-source Slack alternative, but it is in its **early stages of development** when publishing this.
-
-**_What's different with Linen, exactly?_**
-
-- **Open Source**
-- **Unlimited history retention**
-- **Communities are Google searchable**
-- **Supports sync from Slack and Discord**
-- **Eliminate the need to join Slack/Discord for information**
-
-### Community-Focused Slack Alternative
-
-[Linen][2] pitches itself as an open-source app for communities rather than primarily targeting teams for collaboration/communication.
-
-![linen ui][3]
-
-In contrast, Slack is primarily for team discussions and collaboration. You cannot share the conversation through a URL or find the discussions indexed on search engines like Google.
-
-But with Linen, you can **find a URL for every conversation** that can be shared with anyone to view/join the conversation.
-
-![linen message url][4]
-
-Here's something for the test: [https://linen.dev/s/itsfoss/t/5099789/topic][5]
-
-**You can also find this conversation listed on Google** (it may take time to find it exactly).
-
-For example, suppose we are a community of an open-source project where we discuss an issue or a solution; listing it on Google enables more users to find out about it.
-
-Here's an example of a conversation listed on Google that could help me if I was exploring solutions to fix my code issues with Kotlin:
-
-![linen google search][6]
-
-As a developer/user, I could view the conversation, get my answer, and move on without troubling anyone else in the community with a repeat question.
-
-**Sounds lovely, right? Linen helps you enhance community support.**
-
-Sure, you can use it for your team communication as well. But, it is a more appropriate solution to create an open community chat network.
-
-Currently, it does not provide the feature to create a private community for the public. They only use it for internal team discussions, per their [GitHub page][7].
-
-![][8]
-
-### How To Get Started?
-
-Linen does not support self-hosting at the moment. But, their roadmap on [GitHub][9] indicates that it has been planned for the near future.
-
-So, you can [sign up for a free account][10] using the official cloud instance or opt for the business/premium edition to use custom domain/branding benefits for your team.
-
-You can **import your Slack/Discord conversations for free**.
-
-> 💡 The free community edition is hosted under Linen.dev where you rely on community support. Opt for its premium edition to get priority support.
-
-Linen may not be for everyone, but it sounds like a useful idea for many communities and teams.
-
-_💬 What do you think about it? Let me know in the comments below._
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/linen/
-
-作者:[Ankush Das][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/ankush/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/11/linen-slack-discord-alternative.png
-[2]: https://www.linen.dev
-[3]: https://news.itsfoss.com/content/images/2022/11/linen-example.png
-[4]: https://news.itsfoss.com/content/images/2022/11/linen-conversation-url.png
-[5]: https://linen.dev/s/itsfoss/t/5099789/topic
-[6]: https://news.itsfoss.com/content/images/2022/11/linen-google-seo.png
-[7]: https://github.com/linen-dev/linen.dev
-[8]: https://news.itsfoss.com/content/images/2022/11/linen-settings.png
-[9]: https://github.com/Linen-dev/linen.dev
-[10]: https://www.linen.dev/signup
diff --git a/sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md b/sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md
deleted file mode 100644
index 8e115ba0d8..0000000000
--- a/sources/news/20221208.5 ⭐️⭐️ Apple Silicon GPU Driver is Now Available in Asahi Linux.md
+++ /dev/null
@@ -1,91 +0,0 @@
-[#]: subject: "Apple Silicon GPU Driver is Now Available in Asahi Linux"
-[#]: via: "https://news.itsfoss.com/apple-gpu-driver-asahi-linux/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Apple Silicon GPU Driver is Now Available in Asahi Linux
-======
-
-We finally have a GPU driver for Apple M silicon systems on Asahi Linux.
-
-![Apple Silicon GPU Driver is Now Available in Asahi Linux][1]
-
-Asahi Linux aims to be a port of Linux for Apple Silicon Macs; work started on it back in 2020, right after the launch of Apple's M1 chips at the WWDC event.
-
-A small team is behind all the development behind Asahi Linux and reverse engineering stuff; they have been quite busy since the last time we looked at their work.
-
-Previously, they worked on improving support for Apple SoCs such as the M1, M1 Pro, and M1 Max. They provided varying levels of support for devices that used these chips.
-
-It still is a work in progress, but promising results in 2022.
-
-They have now taken it further by providing initial support for Apple Silicon GPUs by releasing drivers (in _alpha_).
-
-That sounds great! 😃
-
-Let me take you through the gist of it.
-
-### Hardware Acceleration With Desktop Environments and Old Games
-
-![asahi linux running quake3][2]
-
-Introduced as an alpha-stage GPU driver, it can run desktop environments and a few games smoothly.
-
-**The implementation:** The driver features a work-in-progress implementation of OpenGL 2.1 and OpenGL ES 2.0 for current Apple M-series systems.
-
-They also mention that:
-
-> These drivers have not yet passed the OpenGL (ES) conformance tests. There will be bugs!
-
-So, you can expect plenty of hiccups along the way should you choose to run applications using these drivers.
-
-**How it works now?:** In its current form, the driver can run desktop environments like GNOME and KDE Plasma with hardware acceleration.
-
-Even older games like [Quake3][3] and [Neverball][4] can run quite well, with these and the desktop environments running at a solid **60 fps at 4k resolution**.
-
-Many users may also notice that quite a few apps don't work with this driver right away. On that, the developers mention:
-
-> Since the driver is still in development, there are lots of known issues and we’re still working hard on improving conformance test results. Please don’t open new bugs for random apps not working! It’s still the early days and we know there’s a lot of work to do.
-
-**What does the future hold?:** The developers have said that while OpenGL (ES) 2 suffices for some applications, newer applications will require new features such as multiple render targets, multisampling, and transform feedback.
-
-All of this can be achieved with OpenGL (ES) 3, and work on that has already started. But, it will need a lot of developmental effort to get ready.
-
-They have also hinted at support for Vulkan in the future, although it is a long time in the making.
-
-Here's what they tell about it:
-
-> We’re working on it! Although we’re only shipping OpenGL right now, we’re designing with Vulkan in mind. Most of the work we’re putting toward OpenGL will be reused for Vulkan. We estimated that we could ship working OpenGL 2 drivers much sooner than a working Vulkan 1.0 driver, and we wanted to get hardware accelerated desktops into your hands as soon as possible.
-
-When a Reddit user [asked][5] about **120 Hz support for MacBook Pro**, one of the maintainers had this to say:
-
-> 120Hz is disabled because it still is capped at 60Hz if we do nothing and was having other weird issues. It's still unclear exactly how VRR works on macOS, we need to figure that out first.
-
-It seems like Asahi Linux has a lot of room to grow, and improvements like this to GPU drivers on a new Silicon system should finally open up new opportunities in terms of performance.
-
-Linux users have been asking for something like this for a long time, and it is now closer to becoming a reality than ever before.
-
-If you are feeling adventurous and want to try the new GPU driver, you can try installing it on your Asahi Linux system. Refer to the [official announcement][6] for instructions to experiment with it.
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/apple-gpu-driver-asahi-linux/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/apple-gpu-asahi-linux.png
-[2]: https://news.itsfoss.com/content/images/2022/12/AsahiLinux_Quake3.jpg
-[3]: https://ioquake3.org
-[4]: https://neverball.org
-[5]: https://www.reddit.com/r/AsahiLinux/comments/zeucpz/comment/iza3wwv/?utm_source=share&utm_medium=web2x&context=3
-[6]: https://asahilinux.org/2022/12/gpu-drivers-now-in-asahi-linux/
diff --git a/sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md b/sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md
deleted file mode 100644
index 63cc15a25f..0000000000
--- a/sources/news/20221208.6 ⭐️⭐️ Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration.md
+++ /dev/null
@@ -1,90 +0,0 @@
-[#]: subject: "Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration"
-[#]: via: "https://news.itsfoss.com/vivaldi-mastodon-integration/"
-[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration
-======
-
-Vivaldi's making an effort to have more users join Mastodon with its new update. That's nice to see!
-
-![Mastodon's Adoption Gets a Boost With Vivaldi Browser Integration][1]
-
-Vivaldi browser is one of the best web browsers for Linux (Windows, macOS, and mobile platforms).
-
-I know it is not an open-source pick, but it gets all the lead with its tab management, customizability, and productivity features. And it treats me better than Firefox nowadays (Mozilla, we still need you to do better)🙄
-
-**Note:**_Vivaldi is **not open-source**. Most of it is based on Chromium, for which you can find the [source code][2]._
-
-If you did not know, Vivaldi recently built a Mastodon instance (**Vivaldi Social**) to encourage people to use open-source and decentralized social media platforms.
-
-It is one of the best Mastodon instances you can join:
-
-To take this further, **Vivaldi 5.6 update** has integrated access to its Mastodon instance from within its web browser.
-
-> 🐘 Hey! We are on [Mastodon][3] for a while; follow **us if you haven't already**! 😄
-
-### Access Mastodon From Web Panels
-
-Web panels on Vivaldi make it a breeze to multitask. You can keep browsing or working on what you want and still access additional services in a single click.
-
-Here's what it looks like:
-
-![mastodon on vivaldi][4]
-
-I can access Vivaldi's Mastodon instance quickly.
-
-Of course, you can add your custom web panel for any Mastodon instance you like.
-
-![vivaldi web panel addition][5]
-
-However, I believe out-of-the-box integration should encourage Vivaldi users to try Mastodon if they haven't yet.
-
-In the official announcement, Vivaldi also explains it properly for its users:
-
-> [Vivaldi Social][6] came into existence as we love the idea of distributed social networks based on open standards. We want to offer better alternatives to people to communicate in an algorithm-free environment with no surveillance capitalism, devoid of tracking or data profiling.The Mastodon server platform communicates through the [Activity Pub][7] standard, a decentralized social networking and messaging protocol recommended by the [World Wide Web Consortium (W3C)][8]. Any platform or application that implements ActivityPub becomes a part of a massive social network. This big social network is also called the [Fediverse][9] (“federated” + “universe”).
-
-Before anyone gets their pitchfork ready, I want Vivaldi to be 100% open-source, but we also want more companies in the mainstream to adopt and encourage the use of open-source tech.
-
-And I think Vivaldi has got an excellent approach to that.
-
-So, this integration should ultimately let every Vivaldi (or Linux user) use Mastodon more than often.
-
-In addition to this change, Vivaldi 5.6 release involves a couple of improvements that include:
-
-- A new search engine (You.com)
-- Panels joining editable toolbars
-- Revamped settings page
-- Pin tab stacks (_this is exciting!_)
-
-You can update the browser to get the latest version or download Vivaldi 5.6 on its official website.
-
-[Download Vivaldi 5.6][10]
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/vivaldi-mastodon-integration/
-
-作者:[Ankush Das][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/ankush/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/mastodon-integration-in-vivaldi-browser-1.png
-[2]: https://vivaldi.com/source/
-[3]: https://mastodon.social/web/@itsfoss
-[4]: https://news.itsfoss.com/content/images/2022/12/mastodon-vivaldi.jpg
-[5]: https://news.itsfoss.com/content/images/2022/12/add-custom-panel.jpg
-[6]: https://vivaldi.com/blog/news/vivaldi-social-a-new-mastodon-instance/
-[7]: https://en.wikipedia.org/wiki/ActivityPub
-[8]: https://www.w3.org/
-[9]: https://en.wikipedia.org/wiki/Fediverse
-[10]: https://vivaldi.com/download/
diff --git a/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md b/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md
deleted file mode 100644
index 85f90890c8..0000000000
--- a/sources/news/20221212.5 ⭐️ FreeBSD 12.4 is out with 100+ improvements and fixes.md
+++ /dev/null
@@ -1,69 +0,0 @@
-[#]: subject: "FreeBSD 12.4 is out with 100+ improvements and fixes"
-[#]: via: "https://debugpointnews.com/freebsd-12-4/"
-[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-FreeBSD 12.4 is out with 100+ improvements and fixes
-======
-
-![][1]
-
-**FreeBSD 12.4 was released a few days back with several updates and improvements. Here’s a release roundup.**
-
-FreeBSD is a UNIX-like operating system based on [U.C. Berkley’s BSD-Lite version][2]. It is primarily used for core infra systems, routers, networking devices, and possibly running in millions of devices. FreeBSD bundles thousands of packages from desktop apps to core modules, making it easier to build your system running this awesome operating system.
-
-### FreeBSD 12.4 Release: Key updates
-
-FreeBSD 12.4 is the 5th release of the current 12 stable series and coming up after a year’s package updates, improvements and bug fixes.
-
-Key changes in the release include the OpenSSL version being updated to 1.1.1q, whereas OpenSSH is bumped up to 9.1p1. The LLVM toolchain suite was also upgraded to 13.0.0. Other key version upgrades include `ena` kernel driver 2.6.1, `file` 5.43, `libarchieve` 3.6.0 and `dma` 2022-01-27.
-
-![FreeBSD 12.4 with Xfce desktop][3]
-
-Furthermore, this release now allows multiple cores to process traffic to improve performance by `if_repair` driver. Also, the `tcpdump` command now allows users to set several rules which will be exposed as part of the `pflog` header.
-
-On top of that, the `telnetd` daemon is deprecated in this version which should be noted for network professionals.
-
-The total number of changes and fixes exceeds 100+, which you can read in detail in the [change log][4].
-
-### Download and Upgrade
-
-If you are running FreeBSD 12.3 version, you can upgrade your system by issuing the following commands:
-
-```
-freebsd-update -r 12.4-RELEASE upgrade
-```
-
-```
-freebsd-update install
-```
-
-For a fresh download, you can get the ISO image from the following page.
-
-[Download FreeBSD 12.4-RELEASE][5]
-
-Via [announcements][6] & [change log][4].
-
---------------------------------------------------------------------------------
-
-via: https://debugpointnews.com/freebsd-12-4/
-
-作者:[arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://debugpointnews.com/author/dpicubegmail-com/
-[b]: https://github.com/lkxed
-[1]: https://debugpointnews.com/wp-content/uploads/2022/12/bsd-generic-head.jpg
-[2]: https://www.debugpoint.com/unix-history/
-[3]: https://debugpointnews.com/wp-content/uploads/2022/12/FreeBSD-12.4-with-Xfce-desktop.jpg
-[4]: https://www.freebsd.org/releases/12.4R/relnotes/
-[5]: https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.4/
-[6]: https://www.freebsd.org/releases/12.4R/announce/
diff --git a/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md b/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md
deleted file mode 100644
index c7477abc73..0000000000
--- a/sources/news/20221213.2 ⭐️ Get ready to upgrade your video creation with Kdenlive 22.12.md
+++ /dev/null
@@ -1,88 +0,0 @@
-[#]: subject: "Get ready to upgrade your video creation with Kdenlive 22.12"
-[#]: via: "https://debugpointnews.com/kdenlive-22-12/"
-[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Get ready to upgrade your video creation with Kdenlive 22.12
-======
-
-![][1]
-
-**Kdenlive 22.12: the free and open-source video editor scores another sizable update.**
-
-The best free and [open-source video editor][2] – Kdenlive 22.12, released with new filters, UI improvements, user-requested features and bug fixes. This release improves Kdenlive on top of its [already existing features][3] and gives you a platform to create professional-quality videos.
-
-Here’s what’s new.
-
-![Kdenlive 22.12 Running in Linux Mint][4]
-
-### Kdenlive 22.12: New Features
-
-A new “Timelines Guides” dock now lists all the timeline markers in your video project. Click on the timeline video clip to view the markers in this new dock. This is an imp[rovement in the marker features introduced in the past release.
-
-In addition to that, three new audio graph filters were introduced. They are audio level visualization filter, spectrum filter and waveform filter. These can be used in keyframe animations for more granular controls. Talking about keyframes, you can now use the standard CTRL+C and CTRL+V to copy/paste keyframes.
-
-Furthermore, if you are working in a complex timeline, you can now remove all the spaces between clips with two new options – remove spaces after playhead and all after playhead.
-
-![Two new UI improvements on timeline][5]
-
-Kdenlive also started work to move to Qt6 from Qt5 build for the upcoming releases. A continuous integration build pipeline is added for Qt6 to check the current build. However, the current version is not yet complete per the transition timeline. However, it is expected that Kdenline will be built with Qt6 as stable by mid of 2023.
-
-On top of the above changes, here are some key updates on this release:
-
-- More custom colour codes for categories
-- Improved marker management with edit, add/remove multiple markers and import/export.
-- Kdenlive now sends the content of the timeline to Glaxnimate (version >= 0.5.1), which then shows it as background.
-- Set maximum cache with custom data storage size
-- Option to hide the menu bar, replacing it with a hamburger menu
-- The settings panel is cleaned up with better visibility and removed obsolete entries
-- Work underway for Qt6 and KDE Frameworks 6 migration
-- Improved Track composition
-
-### Download and upgrade
-
-If you are already running Kdenlive via the official distro repo, you should get this update within a couple of days. Simply update your system to get this version.
-
-Those of you running the Flatpak version, run the following command to get the update.
-
-```
-flatpak update org.kde.kdenlive
-```
-
-For fresh download and installation, visit the following page.
-
-[Download Kdenlive][6]
-
-If you prefer Flatpak, you can install this version from Flathub using the following command, after [setting up your system as Flatpak][7].
-
-```
-flatpak install flathub org.kde.kdenlive
-```
-
-Via [release announcement][8]
-
---------------------------------------------------------------------------------
-
-via: https://debugpointnews.com/kdenlive-22-12/
-
-作者:[arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://debugpointnews.com/author/dpicubegmail-com/
-[b]: https://github.com/lkxed
-[1]: https://debugpointnews.com/wp-content/uploads/2022/12/kdenlive-head.jpg
-[2]: https://www.debugpoint.com/best-free-video-editors-linux-ubuntu/
-[3]: https://www.debugpoint.com/kdenlive-features/
-[4]: https://debugpointnews.com/wp-content/uploads/2022/12/Kdenlive-22.12-Running-in-Linux-Mint.jpg
-[5]: https://debugpointnews.com/wp-content/uploads/2022/12/Two-new-UI-improvements-on-timeline.jpg
-[6]: https://kdenlive.org/en/download/
-[7]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[8]: https://kdenlive.org/en/2022/12/kdenlive-22-12-released/
diff --git a/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md b/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md
deleted file mode 100644
index b099cd8b00..0000000000
--- a/sources/news/20221213.7 ⭐️ Firefox 108 unlocks the power of music on the web with new WebMIDI API support.md
+++ /dev/null
@@ -1,73 +0,0 @@
-[#]: subject: "Firefox 108 unlocks the power of music on the web with new WebMIDI API support"
-[#]: via: "https://debugpointnews.com/firefox-108/"
-[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Firefox 108 unlocks the power of music on the web with new WebMIDI API support
-======
-
-![][1]
-
-**Firefox 108 is now available to download, bringing the following new features.**
-
-The final Firefox release of this year is here – Firefox 108, closing an eventful year of this free and open-source web browser from Mozilla.
-
-![Firefox 108 Running in Ubuntu][2]
-
-### Firefox 108: Best new features
-
-If you are a music enthusiast, then some good news for you. Firefox now supports the [WebMIDI API][3] inside your browser with proper access controls. When you try to access MIDI devices via Firefox, then you get a prompt for installing a “[site permission add-on][4]” to enable this API.
-
-In addition, Firefox 108 enabled import maps by default, which means web pages can now control the behaviour of JavaScript imports more easily. And if you use Firefox, you’ll be happy to hear that it now supports proper colour correction for images tagged with ICCv4 profiles.
-
-Furthermore, developers added a handy keyboard shortcut – press SHIFT+ESC to open the Process Manager and quickly identify any processes using too many resources. And on Windows 11, Firefox added efficiency mode for processes used in background tabs to help save on resources.
-
-Elsewhere, your browser’s bookmark toolbar gets an option “Only show on New Tab” state, which now works correctly for blank new tabs. Also improved in this release is the handling of non-ASCII characters while exporting PDF forms from web pages.
-
-If you are a web developer, Firefox 108 also arrives with a handful of Math function updates which are summarised alongside other vital changes:
-
-- The `source` element supports `height` & `width` attributes when it is a child of a `picture` element.
-- Trigonometric functions are now enabled with the `layout.css.trig.enabled` preference set to true by default. This allows the use of sin(), cos(), tan(), asin(), acos(), atan(), and atan2() functions
-- CSS `calc-constant`type is implemented to allow for well-known constants such as pi and e within math functions
-- Container query length units are now supported via the the `layout.css.container-queries.enabled` preference, which is set to false by default
-
-### Download and update
-
-For Linux distributions, if you used Firefox via your distribution’s official repository, then you should get this update within a couple of days from today.
-
-However, you can also download the compressed version of this release from the below page. For other download options, do visit our [Firefox download guide][5].
-
-[Download Firefox 108][6]
-
-Happy browsing!
-
-- [Official release notes][7]
-- [Beta108 release notes][8]
-- [Developer release notes][9]
-
---------------------------------------------------------------------------------
-
-via: https://debugpointnews.com/firefox-108/
-
-作者:[arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://debugpointnews.com/author/dpicubegmail-com/
-[b]: https://github.com/lkxed
-[1]: https://debugpointnews.com/wp-content/uploads/2022/04/firefox-head.jpg
-[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Firefox-108-Running-in-Ubuntu.jpg
-[3]: https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API
-[4]: https://support.mozilla.org/en-US/kb/site-permission-addons
-[5]: https://www.debugpoint.com/download-firefox/
-[6]: https://ftp.mozilla.org/pub/firefox/releases/108.0/
-[7]: https://www.mozilla.org/en-US/firefox/108.0/releasenotes/
-[8]: https://www.mozilla.org/en-US/firefox/108.0beta/releasenotes/
-[9]: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/108
diff --git a/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md b/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md
deleted file mode 100644
index 7954cc1ae8..0000000000
--- a/sources/news/20221213.8 ⭐️ Kdenlive 22.12 Release Adds Useful New Features.md
+++ /dev/null
@@ -1,106 +0,0 @@
-[#]: subject: "Kdenlive 22.12 Release Adds Useful New Features"
-[#]: via: "https://news.itsfoss.com/kdenlive-22-12-released/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Kdenlive 22.12 Release Adds Useful New Features
-======
-
-Kdenlive 22.12 upgrade is here with nice enhancements across the board.
-
-![Kdenlive 22.12 Release Adds Useful New Features][1]
-
-Kdenlive is an open-source cross-platform video editing software built by the KDE community, which has been around since 2003.
-
-Built using Qt and KDE Frameworks, it has been the editor of choice for many users out there.
-
-Recently, the latest upgrade to it i.e Kdenlive 22.12 has been made available, let me take you through the release.
-
-### 🆕 Kdenlive 22.12: What's New?
-
-![kdenlive 22.12][2]
-
-Kdenlive 22.12 features numerous improvements, with over 350 commits made. It brings in many new features, bug fixes, and prepares the code base for future releases.
-
-Let me take you through some of the notable improvements with this release.
-
-#### Revamped Guide and Marker System
-
-![kdenlive 22.12 guides dock][3]
-
-The guide and marker system on Kdenlive has received a major overhaul, with the key changes being:
-
-- All marker and guide features are now made available in the new 'Guides' dock.
-- The 'Guides' dock also lets you easily seek, search, sort, and filter through the various markers and guides. It also allows for navigation with keyboard.
-- You can now create many categories to suit your needs, compared to the nine categories limit previously.
-- It is now also possible to edit, add, or remove multiple markers at a time, and the import/export of markers has been improved.
-
-#### Improved Glaxnimate Integration
-
-![kdenlive 22.12 glaxnimate integration][4]
-
-Kdenlive already had support for Glaxnimate with its previous release, but now the developers have taken it a step further.
-
-The editor now lets you send the content of your Kdenlive timeline to [Glaxnimate][5] (version >= 0.5.1), which will then show up in the background.
-
-> 💡 Glaxnimate is an open-source 2D vector drawing and animation program.
-
-This allows you to create animations that play together with your videos in a much easier fashion than was possible before.
-
-#### Various UX Improvements
-
-Kdenlive includes a variety of usability improvements, such as:
-
-- A new hamburger menu in the toolbar that can be used instead of the menu bar.
-- 'What's This?' Text has been added in several places to show what a specific element does.
-- You can now define a maximum size for the cached data stored by Kdenlive in the environment settings.
-- The 'Settings' page has received a cleanup, and now features a reordered list of all the important options.
-
-#### Keyframeable Audio Graph Filters
-
-Existing audio graph filters like the audio level visualization filter, audio spectrum filter and audio wave form filter are now keyframeable with Kdenlive 22.12.
-
-They also fixed several effects that were affected due to syntax errors in the XML code and added automated tests to the build system to avoid such an issue in the future.
-
-#### 🛠️ Other Changes
-
-Besides the changes listed above, here are some of the other notable ones:
-
-- Improved track composition.
-- PipeWire as SDL output.
-- The Color Picker has been fixed on Wayland.
-- Pixabay as the new video provider.
-- Improved search performance.
-
-If you want to dive deep into the release notes, refer to the [official announcement][6].
-
-### 📥 Download Kdenlive 22.12
-
-For Linux, the latest release is available as an AppImage, on Flathub, and as an Ubuntu PPA.
-
-Head over to the [official website][7] to download those.
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/kdenlive-22-12-released/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/kdenlive-22-12-release.png
-[2]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12.png
-[3]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12_Guides_Dock.png
-[4]: https://news.itsfoss.com/content/images/2022/12/Kdenlive_22.12_Glaxnimate.png
-[5]: https://glaxnimate.mattbas.org
-[6]: https://kdenlive.org/en/2022/12/kdenlive-22-12-released/
-[7]: https://kdenlive.org/en/download/
From b4a28c12d84908820e70611782d0a8450ac52e69 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 17 Dec 2022 11:24:46 +0800
Subject: [PATCH 072/266] ALL
@wxy
https://linux.cn/article-15356-1.html
---
... Code Editor to Continue the Legacy of Atom.md | 85 +++++++++++++++++++
... Code Editor to Continue the Legacy of Atom.md | 82 ------------------
2 files changed, 85 insertions(+), 82 deletions(-)
create mode 100644 published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
delete mode 100644 sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
diff --git a/published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md b/published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
new file mode 100644
index 0000000000..008fd59109
--- /dev/null
+++ b/published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
@@ -0,0 +1,85 @@
+[#]: subject: "Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom"
+[#]: via: "https://news.itsfoss.com/pulsar-editor/"
+[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15356-1.html"
+
+Pulsar:一个由社区主导的以继承 Atom 的开源代码编辑器
+======
+
+> Pulsar 的目标是成为 Atom 的替代品,随着其开发的进一步深入,将挑战 Visual Studio Code。
+
+![Pulsar:一个由社区领导的开源代码编辑器,以延续 Atom 遗志][1]
+
+微软决定杀死 Atom 文本编辑器,以支持 Visual Studio Code,这并不奇怪。
+
+如果你不知道,你可以看一下我们以前的报道:
+
+> [为了支持微软 VS Code,微软的 GitHub 正在扼杀 GitHub 的 Atom 编辑器][5]
+
+虽然你可能有了更好的选择,但曾经流行的 Atom 是一个令人印象深刻的工具。
+
+**它有一个可用的社区构建版**;然而,还有一个新的版本(**Pulsar**),旨在实现与原始 Atom 对等的功能,并引入现代功能和更新架构。
+
+根据它的文档,原来开发 Atom 社区版的团队现在参与创建了 Pulsar。他们之所以做一个独立的复刻版本,是因为项目的目标不同。
+
+**Pulsar** 希望将一切现代化,以成为 Atom 的继承者。
+
+> 💡 Pulsar 是一个新项目,作为 Atom 的新复刻,有开发/测试版本可供测试。
+
+### Pulsar 编辑器看起来怎么样?
+
+![Pulsar 编辑器][2]
+
+当然,用户界面也是大同小异。考虑到 Pulsar 还没有一个稳定的版本,看起来有时会显得有些混淆。
+
+然而,文档、软件包以及从 Git 仓库安装软件包的能力等基本要素看起来都已具备。
+
+根据官方网站的介绍,Pulsar 的主要功能亮点包括:
+
+- 跨平台支持(Linux、macOS 和 Windows)
+- 内置的软件包管理器
+- 智能自动补全
+- 文件系统浏览器
+- 多窗格的用户界面
+- 查找和替换功能
+
+在写这篇文章时,Pulsar 还不能自动更新。你可以通过官方网站安装较新的版本。
+
+![Pulsar 编辑器设置][3]
+
+你可以自定义编辑器、改变键盘绑定、管理软件包、应用主题,并通过所有可用选项配置你的体验。
+
+到目前为止,要说 Pulsar 是否会比 Atom 社区版更好还为时过早。然而,这是我们可以关注的事情。
+
+### 下载并试用 Pulsar
+
+如前所述,Pulsar 正处于早期开发阶段。因此,你可以找到用于 Linux 发行版的二进制文件和 AppImage 文件,你可以在任何发行版上试用。
+
+在我的测试中,它 **在 Linux Mint 不能正常运行**,但在 **Ubuntu 22.04 LTS** 上工作良好。
+
+你可以到它的 [官方下载页面][4] 去获取你的系统所需的软件包,并进行测试。
+
+> **[Pulsar 编辑器][4]**
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/pulsar-editor/
+
+作者:[Ankush Das][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/ankush/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/pulsar-hackable-text-editor.png
+[2]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor.png
+[3]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor-settings.png
+[4]: https://pulsar-edit.dev/download.html#releases
+[5]: https://news.itsfoss.com/atom-being-discontinued/
\ No newline at end of file
diff --git a/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md b/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
deleted file mode 100644
index cfbb33c029..0000000000
--- a/sources/news/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
+++ /dev/null
@@ -1,82 +0,0 @@
-[#]: subject: "Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom"
-[#]: via: "https://news.itsfoss.com/pulsar-editor/"
-[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom
-======
-
-Pulsar aims to be a replacement for Atom users, and could challenge Visual Studio code as its development progresses further.
-
-![Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom][1]
-
-It is no surprise that Microsoft decided to kill the Atom text editor to favor Visual Studio Code.
-
-If you did not know, you could take a glance through our older coverage:
-
-While you may have had better options, Atom was an impressive tool when it was popular.
-
-**A community build for it is already available**; however, there seems to be a new version (**Pulsar**) that aims to bring feature parity with the original Atom and introduce modern features and updated architecture.
-
-As per its documentation, the original team that worked on Atom-Community is now involved with creating Pulsar. The reason why they made a separate fork is because of different goals for the projects.
-
-**Pulsar** wants to modernize everything to present a successor to Atom.
-
-> 💡 Pulsar is a new project, as a new fork to Atom, with dev/beta releases available to test.
-
-### Pulsar Editor: What's to see here?
-
-![pulsar editor][2]
-
-Of course, the user interface is much of the same. Considering Pulsar hasn't had a stable release yet, the branding could sometimes seem all over the place.
-
-However, the essentials seem to be there with the documentation, packages, and features like the ability to install packages from Git repositories.
-
-The key feature highlights for Pulsar, as per the official website, include:
-
-- **Cross-platform support (Linux, macOS, and Windows)**
-- **Built-in package manager**
-- **Smart autocompletion**
-- **File system browser**
-- **Multiple pane user interfaces**
-- **Find and replace feature**
-
-At the time of writing this, automatic updates for Pulsar are not available. You will be able to install newer versions through the official website.
-
-![pulsar editor settings][3]
-
-You can customize the editor, change keybindings, manage packages, apply themes, and configure your experience with all the available options.
-
-As of now, it is too soon to say if Pulsar will become something better than what the Atom community version offers. However, it is something that we can keep an eye on.
-
-### Download and Try Pulsar
-
-As mentioned earlier, Pulsar is in its early development stage. So, you can find binaries for Linux distributions and AppImage file that you can try on any distro.
-
-In my test, it **did not work for Linux Mint**, but it worked fine with **Ubuntu 22.04 LTS**.
-
-You can head to its [official download page][4] to get the package required for your system and test it out.
-
-[Pulsar Editor][4]
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/pulsar-editor/
-
-作者:[Ankush Das][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/ankush/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/pulsar-hackable-text-editor.png
-[2]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor.png
-[3]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor-settings.png
-[4]: https://pulsar-edit.dev/download.html#releases
From 6e1abf151841a223f1effad44635e40002943387 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 17 Dec 2022 12:18:52 +0800
Subject: [PATCH 073/266] RP
@geekpi
https://linux.cn/article-15357-1.html
---
...️⭐️ Try this Java file manager on Linux.md | 68 +++++++++++++++++++
...️⭐️ Try this Java file manager on Linux.md | 64 -----------------
2 files changed, 68 insertions(+), 64 deletions(-)
create mode 100644 published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md
delete mode 100644 translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md
diff --git a/published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md b/published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md
new file mode 100644
index 0000000000..c32fe8144e
--- /dev/null
+++ b/published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md
@@ -0,0 +1,68 @@
+[#]: subject: "Try this Java file manager on Linux"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-jfileprocessor"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15357-1.html"
+
+在 Linux 上试试这个 Java 文件管理器
+======
+
+![][0]
+
+> JFileProcessor 作为一个 Linux 文件管理器,在设计和功能上都采取了极简理念。
+
+计算机是一个奇特的文件柜,里面装满了虚拟文件夹和文件,等待着被引用、交叉引用、编辑、更新、保存、复制、移动、重命名和归类。在本文中,我将介绍一下 Linux 系统的文件管理器。
+
+在 昇阳微系统Sun Microsystem 时代的末期,出现了一种叫做 Java 桌面系统Java Desktop System 的东西,奇怪的是它 _不是_ 用 Java 编写的。相反,它是(根据当时的 sun.com 上的描述)“对集成和优化的桌面软件的明智选择,大部分基于开源代码和开放标准”。它基于 GNOME,带有办公套件、电子邮件和日历应用、即时消息和“Java 技术”。我发现自己在思考用 Java 创建桌面需要什么。客观地说,桌面实际上并不包括那么多东西。一般的共识似乎是桌面由面板、系统托盘、应用菜单和文件管理器组成。
+
+想象一个实际的 Java 桌面是一个有趣的思维练习。虽然不足以以此为目标启动一个开源项目,但足以在网络上快速搜索必要的组件。事实证明,有人用 Java 编写并维护了一个文件管理器。
+
+### JFileProcessor
+
+我找到的 Java 文件管理器叫做 JFileProcessor,简称 JFP。它不仅是用 Java 编写的,更具体是说是用 [Groovy][1](一种流行的 Java 脚本语言)进行的一项迷人的实践。
+
+![Image of the JfileProcessor folders.][2]
+
+作为文件管理器,JFileProcessor 在设计和功能上都采用了极简方式。它允许你查看、打开、移动、复制、剪切或删除本地系统和远程系统上的文件。它不是特别定制化的,它没有如拆分面板或可移动面板等额外功能。除了管理文件外,它没什么别的中心主题。JFileProcessor 在某种程度上令人耳目一新,因为它很简单。这是一个文件管理器,仅此而已。有时这就是你在文件管理器中想要的全部。
+
+我之前写过关于 [设置 Java Swing 主题][3] 的方式,从技术上讲,该技术可以应用于这个开源应用。但是,我认为这个应用的部分魅力在于 OpenSolaris 称之为 “Blueprint” 的主题。这是 Java 的怀旧外观,我喜欢以其原生 GUI 外观运行它,作为对我的 OpenSolaris(现为 OpenIndiana)笔记本电脑的回忆。
+
+### 用户体验
+
+除了设计,真正重要的是用户体验。JFileProcessor 只有三个你日常使用的按钮:向上、后退和前进。它们未绑定到键盘快捷键,因此你必须单击按钮才能导航(或使用 `Tab` 键选择按钮)。在使用图形应用时,我经常使用键盘快捷键,所以当我尝试浏览我的系统时,这大大减慢了我的速度。但是,有时我实际上只是懒洋洋地浏览文件,因此 JFileProcessor 完全按照我的需要工作。
+
+JFileProcessor 也有一个搜索组件。只要你设置合理的起始文件夹,搜索就会快速而智能,同时允许使用通配符和正则模式搜索。例如,当我搜索特定的电子书或漫画档案或游戏规则手册时,或者当我粗略地知道该目录包含一个项目但懒得一直点击到目的地址。在子目录中快速搜索,必然会得到明显的结果,然后双击打开文件,不管我设置了什么 XDG 偏好(Evince 用于 PDF,Foliate 用于电子书,等等)。
+
+右键单击任何文件或目录会弹出上下文菜单。它具有你期望的大部分常见任务:复制、剪切、粘贴、删除、重命名、新建。它也有一些不错的额外功能。
+
+![Right-click context menu in JFileProcessor][4]
+
+例如,你可以只将文件名复制到剪贴板或保存文件路径。你还可以运行一些脚本,包括用于批量重命名文件的脚本、用于对选定文件运行命令的脚本、用于创建 ZIP 或 TAR 存档的脚本等等。当然,编码器有多种选择,包括在当前位置打开终端和打开新的编码窗口。
+
+### 安装
+
+我是 Java 的忠实粉丝。它是一种清晰的语言,具有合理的分隔符和对跨平台兼容性的坚定立场。我喜欢它作为一种语言,我喜欢看到程序员用它创造的东西。
+
+JFileProcessor 的名字很贴切。这是一种处理文件的有效方法,从某种意义上说,JFileProcessor 为你提供了一个简单的窗口来查看系统上的文件数据,并允许你以图形方式与它们进行交互,就像你可能在终端中与它们交互一样。它不是我用过的最高效的文件管理器,也不是功能最多的一个。然而,这是一个令人愉快的应用,为你提供了文件管理所需的基本工具,其相对较小的代码库使你可以在下午阅读一些精彩的内容。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-jfileprocessor
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/20/12/groovy
+[2]: https://opensource.com/sites/default/files/2022-09/jfileprocessor.webp
+[3]: https://opensource.com/article/22/3/beautify-java-applications
+[4]: https://opensource.com/sites/default/files/2022-09/jfileprocessor-menu.webp
+[0]: https://img.linux.net.cn/data/attachment/album/202212/17/121727uuepuz1q3qhgippd.jpg
\ No newline at end of file
diff --git a/translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md b/translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md
deleted file mode 100644
index 8ef1bb47c1..0000000000
--- a/translated/tech/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md
+++ /dev/null
@@ -1,64 +0,0 @@
-[#]: subject: "Try this Java file manager on Linux"
-[#]: via: "https://opensource.com/article/22/12/linux-file-manager-jfileprocessor"
-[#]: author: "Seth Kenlon https://opensource.com/users/seth"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-在 Linux 上试试这个 Java 文件管理器
-======
-
-计算机是奇特的文件柜,里面装满了等待引用、交叉引用、编辑、更新、保存、复制、移动、重命名和组织的虚拟文件夹和文件。在本文中,我将介绍一下 Linux 系统的文件管理器。
-
-在 Sun Microsystem 时代的末期,出现了一种叫做 Java 桌面系统的东西,奇怪的是它_不是_用 Java 编写的。相反,它是(根据当时的 sun.com 上的描述)“对集成和优化的桌面软件的明智选择,大部分基于开源代码和开放标准”。它基于 GNOME,带有办公套件、电子邮件和日历应用、即时消息和“Java 技术”。我发现自己在思考用 Java 创建桌面需要什么。客观地说,桌面实际上并没有那么多。一般的共识似乎是桌面由面板、系统托盘、应用菜单和文件管理器组成。
-
-想象一个实际的 Java 桌面是一个有趣的思维练习。不足以以此为目标启动一个开源项目,但足以在网络上快速搜索必要的组件。事实证明,有人用 Java 编写并维护了一个文件管理器。
-
-### JFileProcessor
-
-我找到的 Java 文件管理器叫做 JFileProcessor,简称 JFP。这不仅在 Java 中,而且在 [Groovy][1](一种流行的 Java 脚本语言)中都是一项迷人的练习。
-
-![Image of the JfileProcessor folders.][2]
-
-作为文件管理器,JFileProcessor 在设计和功能上都采用了最小化的方法。它允许你查看、打开、移动、复制、剪切或删除本地系统和远程系统上的文件。它不是特别定制化的,它没有额外的功能,如拆分面板或可移动面板。除了管理文件外,它不围绕任何中心主题构建。JFileProcessor 在某种程度上令人耳目一新,因为它很简单。这是一个文件管理器,仅此而已。有时这就是你在文件管理器中想要的全部。
-
-我之前写过关于[设置 Java Swing 主题][3]的方式,从技术上讲,该技术是这个开源应用的一个选项。但是,我认为这个应用的部分魅力在于 OpenSolaris 称之为 “Blueprint” 的主题。这是 Java 的怀旧外观,我喜欢以其原生 GUI 外观运行它,作为对我的 OpenSolaris(现为 OpenIndiana)笔记本电脑的回忆。
-
-
-### 用户体验
-
-除了设计,真正重要的是用户体验。JFileProcessor 只有三个你日常使用的按钮:向上、后退和前进。它们未绑定到键盘快捷键,因此你必须单击按钮才能导航(或使用 **Tab** 键选择按钮)。在使用图形应用时,我经常使用键盘快捷键,所以当我尝试浏览我的系统时,这大大减慢了我的速度。但是,有时我实际上只是懒洋洋地浏览文件,因此 JFileProcessor 完全按照我的需要工作。
-
-JFileProcessor 也有一个搜索组件。只要你设置合理的起始文件夹,搜索就会快速而智能,同时允许适用 glob 和正则模式搜索。例如,当我搜索特定的电子书或漫画档案或游戏规则手册时,或者任何时候我粗略地知道该目录包含一个项目但懒得一直点击到目的地址。在子目录中快速搜索,必然会得到明显的结果,然后双击打开文件,不管我设置了什么XDG偏好(Evince用于PDF,Foliate用于电子书,等等)。
-
-右键单击任何文件或目录会弹出上下文菜单。它具有你期望的大部分常见任务:复制、剪切、粘贴、删除、重命名、新建。它也有一些不错的额外功能。
-
-![Right-click context menu in JFileProcessor][4]
-
-例如,你可以只将文件名复制到剪贴板或保存文件路径。你还可以运行一些脚本,包括用于批量重命名文件的脚本、用于对选定文件运行命令的脚本、用于创建 ZIP 或 TAR 存档的脚本等等。当然,编码器有多种选择,包括在当前位置打开终端和打开新的编码窗口。
-
-### 安装
-
-我是 Java 的忠实粉丝。它是一种清晰的语言,具有合理的分隔符和对跨平台兼容性的坚定立场。我喜欢它作为一种语言,我喜欢看到程序员用它创造的东西。
-
-JFileProcessor 的名字很贴切。这是一种处理文件的有效方法,从某种意义上说,JFileProcessor 为你提供了一个简单的窗口来查看系统上的文件数据,并允许你以图形方式与它们进行交互,就像你可能在终端中与它们交互一样。它不是我用过的最高效的文件管理器,也不是功能最多的一个。然而,这是一个令人愉快的应用,为你提供了文件管理所需的基本工具,其相对较小的代码库使你可以在下午阅读一些精彩的内容。
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/linux-file-manager-jfileprocessor
-
-作者:[Seth Kenlon][a]
-选题:[lkxed][b]
-译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/seth
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/20/12/groovy
-[2]: https://opensource.com/sites/default/files/2022-09/jfileprocessor.webp
-[3]: https://opensource.com/article/22/3/beautify-java-applications
-[4]: https://opensource.com/sites/default/files/2022-09/jfileprocessor-menu.webp
From 93a0adef15e184330263dc30dea7345b9e3e1cf6 Mon Sep 17 00:00:00 2001
From: CanYellow
Date: Sat, 17 Dec 2022 16:35:05 +0800
Subject: [PATCH 074/266] Third Translation
---
...️ Write documentation like you develop code.md | 53 ++++++++++---------
1 file changed, 27 insertions(+), 26 deletions(-)
diff --git a/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
index 1aea7321f7..9c373f96bd 100644
--- a/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
+++ b/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
@@ -7,51 +7,52 @@
[#]: publisher: " "
[#]: url: " "
-Write documentation like you develop code
+像代码开发一样撰写文档
======
-Don't want documentation to be an afterthought? Try a new approach.
+不想让书写滞后于你的思考?或许你该尝试一下全新的写作方式。
-Many engineers and craftspeople are particular about their tools. To do a job well, you need the best tools and the skills to use them. The best tools in software development can be very powerful when applied to other kinds of digital creation. The [Docs as Code][1] approach is a great example. Docs as Code entails writing documentation using the same tools and workflows used for developing code. Proponents of Docs as Code report that this method leads to better documentation while easing the workload of the people who write it.
+很多工程师与手工艺者都对他们使用的工具有特别的要求。为了顺利的完成工作,你需要最好的工具和使用它们的技巧。软件开发中最好的工具在应用到其他的数字创作领域中也可以是很强大的。[Docs as Code][1] (译注:代码化文档)的方式就是很好的例子。Doc as Code 意味者使用与代码开发相同的工具与工作流来撰写文档。Doc as Code 的支持者认为这样的方式可以在降低作者的工作符负荷的同时保证更好的文档结构。
-### Text formats and source control
+### 文本格式与源文件控制
-The most significant adjustment when moving from a more traditional documentation platform to the Docs as Code approach is that the content is stored in a text-based markup format. This change makes all the tools for text-based materials available for generating documentation. Whether you choose [DocBook][2], [Markdown][3], or another markup language, the transition from using just one tool to using a standard format and a variety of tools is a big change.
+从传统的写作平台切换到 Docs as Code 方式时,最主要的调整是写作内容保存在基于文本的标记格式中。这一转变使得基于纯文本材料的工具都适用于文档写作。当你选择 [DocBook][2], [Markdown][3] 或者其他的标记语言时,从只使用一种工具到使用一种标准格式配合多种工具是一种巨大的转变。
-Finding tools that support your workflow is really important. Many developers use their [coding editors][4] when working on Docs as Code projects. Since they are already advanced-level users with that tool, it works well for them. Finding tooling that fits the other professionals on the team, such as technical writers, editors, information architects, and documentation product owners, may take more effort. A few options to consider:
+找到支持你的工作流程的工具是非常重要的。在 Docs as Code 项目中,很多开发者使用他们的 [代码编辑器][4]。考虑到他们已经是这些工具的高阶用户,一切都很顺利。而找到适合团队里适合其他专业从业者,比如技术撰稿、编辑、信息架构师和文档产品责任人,的工具可能需要一番努力。这里有一些选项可兹参考:
-- One of the many [good markdown editors][5] available
-- Coding editors with good preview tools, which make them approachable for non-coders
-- The web interfaces of popular Git hosting services, especially for occasional contributors
+- 各种[优秀的 Markdown 编辑器][5]之一是可行的
+- 附带良好的预览工具的代码编辑器可能更适合非程序员
+- 流行的 Git 托管服务的网页界面尤其适用于偶尔有需要的贡献者
-Once content is safely in a markup format, the project can use source control such as [Git][6], an open source tool with many more features than most documentation platforms can claim:
+一旦内容以标记语言的格式安全保存就可以使用版本控制进行管理,比如 [Git][6]。Git 相比大多数文档平台具有更多的功能:
-- A clear and detailed version history of who changed what and when. If you have good commit message culture, you may even be able to learn why the change was made.
-- Easy parallel change processes. Working in branches in Git means everyone can make all the changes they want to and combine them at the end.
-- Advanced collaboration and review tooling. All the source-control platforms are designed to review each change in detail and have as much discussion as needed until everyone is confident that the change can go ahead.
-- Automated quality checks such as spellchecking and link checking. This saves time and catches errors that might otherwise be missed.
+- 清晰详细的文档版本历史:谁在什么时候改变了什么。
+- 简明的并行修改过程支持。在 Git 中使用分支工作意味着任何人可以做出他们想要的任何改变并在最后合并所做的更改。
+- 高级的协作与审查工具。所有的源代码管理平台都设计支持评审每一条细节变更并在足够的讨论后使每个人都确信改变可以继续的流程。
+- 自动质量检查,比如拼写检查和链接检查。这不仅节省了时间,而且可以发现以前无法发现的错误。
-Source control has many benefits. Just keep in mind that if you're new to source control, it has a learning curve. There are some excellent [learning resources][7] and [articles for writers][8] that can help. You can also let your curious documentarians find the learning materials that work for them rather than asking your engineers to teach them. (Ask me how I learned this—the hard way of course!)
+源代码管理有很多优点。但要记住,如果你准备入门源代码管理,它有一定的学习曲线。这是一些有助于入门的优秀的[学习资源][7]和[作者文章][8]。你也可以让具有好奇心的文档作者自行寻找对他们有用的学习材料,而不是请你的工程师来培训他们。(探寻他人的学习历程是最困难的学习方式)
-### Pull requests and review cycles
+### 拉取请求和评审循环
-All source-control platforms are designed around the concept of pull requests, sometimes also called merge requests. Someone, or some team, puts together a set of changes and then requests that the changes are pulled into the main project. In many ways, working with many changes at once is easier in documentation than in code. Changing one article in one place in documentation has fewer side effects than when you change code and find that there were several other sections depending on it.
-The most powerful collaboration tool is the [diff][9], which shows the difference between old and new versions in a way that's easy to follow. There are many versions of this tool available to make the comparison view easier to look at: side-by-side, inline, or even as rendered markdown rather than just text. Each team member can use the tool or tools that work best for them. For example, the web view is commonly used to look at a small change, but for something bigger I would want to look at it locally using `vimdiff` or [Meld][10].
+所有的源代码管理平台都围绕拉取请求这一概念设计,这有时也称为合并请求。有时候,某些团队先将一系列改变整合到一起然后向主项目发起要求修改被拉取的请求。不过从许多方面来说,在文档中一次处理多个变更比在代码中更容易。改变文档中某处的一篇文章比之更改代码并找出有哪些地方依赖它具有更小的副作用。
-Review comments can be added to the change as a whole or to individual lines in the proposed change. Some projects adopt a maximum line length, called a hard wrap, or start each sentence on a new line to make it easier to attach comments to specific parts of a block of text. Further changes and comments can be added until the review process is complete and the change is accepted. Since the pull requests are shown in a queue on the repository for the project, this is a good way to show what's in progress and what needs review attention. The tools make it easy for reviewers to add their thoughts. In particular, if you are working with technical audiences it can be easier to get reviews from these folks via the tools they use daily.
+最强大的协作工具是 [diff][9],它可以通过一个易于察觉的方式展示旧版本与新版本之间的差异。该工具有多种不同的版本来使得比较视图更易于查看:双栏模式、行内模式,甚至是渲染后的 Markdown 模式。团队中的每一个成员都可以选择最适合他们的版本。举例而言,网页视图通常用于查看细微变更,而对于更大的变更,我习惯于使用 `vimdiff` 或 [Meld][10] 在本地浏览。
-### Continuous integration and deployment
+检查的注释可以整体提交到变更中,也可以提交到指定变更中的个别行中。一些项目限制了行的最大长度,即硬换行,或者一行一句,以使得向文本的特定的部分添加注释更加容易。进一步的变更与注释可以在检查完成接受变更时添加。由于拉取请求在项目仓库以队列形式展示,这是很好的方式来展示目前正在进行的任务以及需要进行检查操作的任务。diff 工具使得评审人员更方便地加入他们的思考。尤其是你在与技术受众工作时,你可以通过他们日常使用的工具获得来自他们的评论。
-Having the source of your documentation available in plain text has many benefits, such as making it easy to find every occurrence of something that needs changing and using existing tools such as [wc][11], [grep][12], or `tree` to work with potentially large document sets. When you combine this with a source-control platform, even more existing tools become available, and they're all open source.
+### 持续集成与部署
-One big workflow improvement is the ability to have continuous deployment in place. This simply means that when a pull request is merged into the main project, the project is immediately and automatically deployed. If the change is good enough to be accepted into the project, it is also good enough to be live on the documentation site, helping your readers. Typically, continuous deployment is set up with either a separate automation server, such as [Jenkins][13], or [Git Hooks][14]. Either way, the text-based markup is combined with the Docs as Code platform (usually a static site generator such as [Hugo][15] or [Sphinx][16]) to produce the documentation website, which is then deployed.
+以纯文本形式拥有你的文档的源代码有很多益处,你可以轻易找到每次需要修改的位置,你可以使用现有的诸如 [wc][11]、[grep][12]或 `tree` 之类的工具在潜在的大型文档集中工作。当你将这些与源代码管理平台结合起来之后,你可能获得更多的可用工具,并且它们都是开源的。
-The same automation can be used before deployment to add some excellent checks to the pull requests before they are merged. On a coding project, it's common to run code linters, tests, and other quality checks that a machine can do itself. Documentation projects can get the same treatment, with tools like [Vale][17] to do prose linting and check for correct heading styles, spellings, and so on. It's also useful to add other tools here, such as a link checker to make sure all the links go somewhere valid.
+另一个工作流程上的巨大提升是持续部署的能力。简单来说,这意味着,每当一个拉取请求被合并到主项目中,项目可以直接自动化部署到位。如果变更好到足以接收进项目中,他同时可以在文档页面中实时更新,从而帮助到你的读者。典型情况下,持续部署是配置在任意一台分离的自动化服务器上的,比如 [Jenkins][13] 或者 [Git Hooks][14]。不论哪种方式,基于文本的标记语言与 Doc as Code 平台(通常是静态网页生成器,比如 [Hugo][15] 或 [Sphinx][16])结合来生成文档网站,然后自动部署。
-### Code tools for docs workflows
+在部署之前,同样的自动化流程可以被用于对将要合并的拉取请求进行检查。在一个编程项目中,通过计算机自行进行代码检查、代码测试和其他的质量检查已经习以为常。通过类似 [Vale][17] 之类的工具进行文本检查、文档项目也可以同样对待,你也可以添加其他的工具,比如添加一个链接检查器来确保文中所有的链接都是有效的。
-The tools known and loved by engineers are very good tools, but they are useful for all sorts of other projects too. For documentation, they contribute valuable efficiency, especially when you need your documentation to be moving at the same speed as your development teams. All the tools discussed here are open source, so you can try them for yourself, deploy them for a huge global team, or anything in between. May your docs process be as smooth as any code process.
+### 用于文档流程的代码工具
+
+被工程师们熟知并喜爱的工具都是非常好的工具,它们同时也可以用于其他类型的项目中。在文档项目中,它们提升了宝贵的效率,尤其是当你希望你的文档与你的团队同步推进的时候。上面讨论到的所有工具都是开源的,你可以亲自尝试,为大型全球团队部署他们,亦或者介于两者之间,最终使你的成文过程和编程过程一样顺畅。
--------------------------------------------------------------------------------
@@ -59,7 +60,7 @@ via: https://opensource.com/article/22/10/docs-as-code
作者:[Lorna Mitchell][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
+译者:[CanYellow](https://github.com/CanYellow)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From dee4803e9dee1a51c3b4c52f9169264b4f66ee76 Mon Sep 17 00:00:00 2001
From: CanYellow
Date: Sat, 17 Dec 2022 16:46:37 +0800
Subject: [PATCH 075/266] move
---
.../20221028.1 ⭐️⭐️ Write documentation like you develop code.md | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename {sources => translated}/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md (100%)
diff --git a/sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
similarity index 100%
rename from sources/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
rename to translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
From 625e73fa8cc8be0a5c5f84bcd506be0d198ef234 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 17 Dec 2022 22:16:56 +0800
Subject: [PATCH 076/266] R
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@CanYellow 总体翻译不错,有些地方你的理解可能有误。
---
....5 ⭐️⭐️ Our open source startup journey.md | 65 +++++++++----------
1 file changed, 29 insertions(+), 36 deletions(-)
diff --git a/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
index c71c2778e3..228d530700 100644
--- a/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
+++ b/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
@@ -3,94 +3,87 @@
[#]: author: "Navaneeth PK https://opensource.com/users/navaneeth"
[#]: collector: "lkxed"
[#]: translator: "CanYellow"
-[#]: reviewer: " "
+[#]: reviewer: "wxy"
[#]: publisher: " "
[#]: url: " "
-开始我们的开源之旅
+我们的开源创业之旅
======
-[ToolJet][1] 是一款开源的低代码量的用于快速构建和部署内部工具的框架。它的基础代码完全基于 JavaScript 和 TypeScript 。
+![][0]
-ToolJet于2021年由一名开发者启动开发,并于2021年6月推出公测版本,一炮而红。此后, ToolJet 成立了基金会。目前,已经有一个20人的开发团队。
+> 以下是开源项目 ToolJet 是如何在一年的时间里取得 13000 颗星标和 200 个贡献者的故事。
+
+[ToolJet][1] 是一款开源的低代码框架,用于快速构建和部署内部工具。它的代码库完全由 JavaScript 和 TypeScript 组成。
+
+2021 年 4 月,一名开发者独自开始了 ToolJet 的开发,并于 2021 年 6 月推出公测版本,一炮而红。此后,ToolJet 成立了基金会。目前,我们已经有一个 20 人的开发团队。
### 为什么选择开源
-在开发 ToolJet 之前,我曾担任一些企业客户端的顾问。许多客户端都庞大到在其中维护构建了大量的内部工具,更不用说来自销售人员、支持人员以及运营人员的对于内部工具的持续的漏洞修复与添加更多功能的要求了。开发团队一直在寻找能够用于内部应用开发的工具。
+在开发 ToolJet 之前,我曾担任一些企业客户的顾问。这些客户中的许多都庞大到足以维护构建几十个内部工具。尽管来自销售人员、支持人员以及运营人员不断要求对内部工具添加更多功能和修复错误,但开发团队却很难有精力来开发内部工具。
-我尝试过多个平台来构建和维护内部工具。大部分平台都是昂贵的,而且有时候并不能满足我们的需求,我们不得不修改平台工具的代码,而且大多数的平台工具都不支持本地托管。
+我尝试使用过多个平台来构建和维护内部工具。这些工具大多非常昂贵,而且经常不符合要求。我们需要进行修改,而且大多数工具不支持内部托管。
-作为一名 Ruby 开发者,我最初使用 ActiveAdmin 和 RailsAdmin 来构建内部工具。这两款工具都是极好的,只是将它们应用在超出一个数据源的任务上的工作比较困难。于是我意识到市场上需要一种可以构建用户界面并能够连接多个数据源的框架。我相信任何为开发者制作的工具都应当是开源的。开发者日常使用的大部分工具与框架都源自世界各地人们的公开协作。
+作为一名 Ruby 开发者,我最初使用 ActiveAdmin 和 RailsAdmin 来构建内部工具。这两款工具都是极好的,只是将它们应用在使用多个数据源的任务上比较困难。于是我意识到市场上需要一种可以构建用户界面,并能够连接多个数据源的框架。我相信任何为开发者制作的工具都应当是开源的。开发者日常使用的大部分工具与框架都源自世界各地人们的公开协作。
### 第一次提交
-制作像 ToolJet 这样的工具需要全身心的投入,通过出售我的一个业余项目,我获得了5-6个月的空闲,于是我立即着手将在我脑海里酝酿了两年的想法付诸现实。
+制作像 ToolJet 这样的工具需要全身心的投入,通过出售我的一个业余项目,我获得了五六个月的空闲,于是我立即着手将在我脑海里酝酿了两年的想法付诸现实。
-2021年4月1日,我完成了 ToolJet 的第一次提交(使用 rails new 命令)。
+2021 年 4 月 1 日,我完成了 ToolJet 的第一次提交(使用 `rails new` 命令)。
稍等!我刚刚说 ToolJet 的代码是完全基于 JavaScript 的?请接着往下看。
-TD
### 构建完成并推销给投资者
-4、5月间,我一直坐在电脑屏幕前编写代码和向种子轮的投资者推销我的工具。
+4、5 月间,我一直坐在电脑屏幕前编写代码和向种子轮的投资者推销我的工具。
-我的工作还包括创建拖放式应用程序构建器,撰写所有的文档以保证有在主流平台上设置 ToolJet 的文档,创建项目网站,制作发布时所需的海报以及博客文章等等。这一过程进展顺利,没有遇到大的挑战。当时, ToolJet 的前端使用的是 React ,而后端则用的是 Ruby on Rails 。
+我的工作还包括创建拖放式应用程序构建器,撰写所有的文档以保证有在主流平台上设置 ToolJet 的文档,创建项目网站,制作发布时所需的海报以及博客文章等等。这一过程进展顺利,没有遇到大的挑战。当时,ToolJet 的前端使用的是 React ,而后端则用的是 Ruby on Rails 。
-编程工作进行得很顺利,然而投资者推广工作进行得并不顺利。我向专注于初创时期投资的风投和天使投资人发送了大约40封电子邮件,都石沉大海。大部分邮件都被忽略了,不过也有一些公司向我说明了拒绝的原因,另外一些则给我回了电话。
+编程工作进行得很顺利,然而向投资者推广的工作进行得并不顺利。我向专注于初创时期投资的风投和天使投资人发送了大约 40 封电子邮件,都石沉大海。大部分邮件都被忽略了,不过也有一些公司向我说明了拒绝的原因,另外一些则给我回了电话。
大部分的电话内容都是一样的:我无法说服他们接受开源商业模式。
### 工具发布
-6月7日是发布日。我们首先在 ProductHunt (译者注: [ProductHunt][11] 是一个新品发布平台)上发布.六个小时后,只有70名用户注册。但是我们有成为当天第一名产品的趋势(最终在那一周的产品中排名第三)。这里是原始的[发布帖][2]。
+6 月 7 日是发布日。我们首先在 ProductHunt(LCTT 译注:[ProductHunt][11] 是一个新品发布平台)上发布。六个小时后,只有 70 名用户注册。但是我们有成为当天第一名产品的趋势(最终在那一周的产品中排名第三)。这里是原始的 [发布帖][2]。
-下午6点左右,我又在 [HackerNews][3]上发帖,一个小时内,这个帖子便升至榜首。大量的访问者注册并给我的版本库点亮星标,我对此很高兴。大量的访问者和用户报告了软件和文档中的漏洞。距离在 HackNews 上发帖八个小时之后,超过1000名 GitHub 用户给 ToolJet 的 GitHub 版本库点亮星标,并且有了数百个 ToolJet 云端的注册请求。上升趋势一直持续到三天后,ToolJet 版本库总计得到了2400个星标。
+下午 6 点左右,我又在 [HackerNews][3] 上发帖,一个小时内,这个帖子便升至榜首。大量的访问者注册并给我的版本库点亮星标,我对此很高兴。许多访问者和用户报告了软件和文档中的错误。距离在 HackNews 上发帖八个小时之后,超过 1000 名 GitHub 用户给 ToolJet 的 GitHub 版本库点亮了星标,并且有数百人注册了 ToolJet 云。上升趋势一直持续到三天后,ToolJet 版本库总计得到了 2400 个星标。
![ToolJet repo stats on GitHub][4]
-图片来源:
-
-ToolJet GitHub StarTrack (Navaneeth PK, CC BY-SA 4.0)
-
### 获得资助
-ToolJet 项目在 GitHub 上的吸引力足以被风投(VC)世界注意到。发布之后的日子被各种来电挤满了。我们也有其他的选择,但从没有认真考虑过这些它们。这些选择包括:
+ToolJet 项目在 GitHub 上的吸引力足以被风投(VC)世界注意到。发布之后的日子被各种来电挤满了。我们也有其他的选择,但从没有认真考虑过这些它们。这些选择包括:
-- Bootstrapping:在项目初期,难以获得付费用户,而我此前也没有足够的存款来支撑整个项目。
+- 引导性融资:在项目初期,难以获得付费用户,而我此前也没有足够的储蓄来支撑整个项目。
+- 作为业余项目:在开发小型项目上这是可以的,但我不认为这在 ToolJet 的开发上行得通,毕竟在 ToolJet 平台能够为客户所用之前,我们需要创建大量的集成和 UI 控件。作为一个业余项目,要实现这些可能需要花费数月甚至数年时间。
-- 作为业余项目构建:在开发小型项目上这是可以的,但我不认为这在 ToolJet 的开发上行得通,毕竟在 ToolJet 平台能够为客户所用之前我们需要创建大量的集成和 UI 控件。作为一个业余项目,要实现这些可能需要花费数月甚至数年时间。
+我知道如果将 ToolJet 作为一个业余项目来开发,我可能需要花几个月的时间才能达到我期望的程度。而我希望通过扩大团队加速项目的成熟。鉴于该项目的吸引力,引入风险投资(VC)的资助是显而易见的选择。
-我知道如果将 ToolJet 作为一个业余项目来开发,我可能需要花几个月的时间才能达到我期望的程度。而我希望通过扩大团队加速项目的成熟。鉴于该项目的吸引力,引入风险投资(VC)的资助是显而易见的选择。
-
-好消息是在 HackNews 上发布之后的两周内我们成功募集了[155万美元的资金][5]。
+好消息是在 HackNews 上发布之后的两周内我们成功募集了 [155 万美元的资金][5]。
### 在开源中积累很重要
-发布后不久,我们发现许多人希望为 ToolJet 项目做贡献,但是他们几乎都是 JavaScript 开发者。我们也意识到像 ToolJet 这样的项目在未来会有成百上千的数据接口,只有基于插件的架构才行得通。我们于2021年8月决定从 Ruby 迁移到 TypeScript 上来。即使这花费了一个月的时间和巨大的努力,这仍然是我们在 ToolJet 项目上作出的最正确的决定。今天,我们有一个由我们的[插件开发套件][6]支持的可扩展的基于插件的架构。我们获得了来自超过200名开发者的贡献。关于这次迁移的文章参见[这篇博客][7]和[另一篇博客][8]
+发布后不久,我们发现许多人希望为 ToolJet 项目做贡献,但是他们几乎都是 JavaScript 开发者。我们也意识到像 ToolJet 这样的项目在未来会有成百上千的数据接口,只有基于插件的架构才行得通。我们于 2021 年 8 月决定从 Ruby 迁移到 TypeScript 上来。即使这花费了一个月的时间和巨大的努力,这仍然是我们在 ToolJet 项目上作出的最正确的决定。今天,我们有一个由我们的 [插件开发套件][6] 支持的可扩展的基于插件的架构。我们获得了来自超过 200 名开发者的贡献。关于这次迁移的文章参见 [这篇博客][7] 和 [另一篇博客][8]。
### 发布 v1.0 版本
-自8月份以后,很多用户已经在生产环境中使用 ToolJet ,该平台并没有出现过任何稳定性或扩展性的问题。我们准备在发布 v1.0 版本之前完成开发人员平台的功能。开发人员平台允许任何 JavaScript 开发者构建和发布 ToolJet 插件。这样开发人员就可以为 ToolJet 开发数据接口。把集成测试的时间算上,创建一个 ToolJet 接口的时间也只需要30分钟。
+自 8 月份以后,很多用户已经在生产环境中使用 ToolJet ,该平台并没有出现过任何稳定性或扩展性的问题。我们准备在发布 v1.0 版本之前完成开发人员平台的功能。开发人员平台允许任何 JavaScript 开发者构建和发布 ToolJet 插件。这样开发人员就可以为 ToolJet 开发数据接口。把集成测试的时间算上,创建一个 ToolJet 接口的时间也只需要30分钟。
### 创建持续成长的社区
![ToolJet star history][9]
-图片来源:
-
-ToolJet Star History (Navaneeth PK, CC BY-SA 4.0)
-
我们没有在销售上投入资金,我们的大部分精力都放在了传播 ToolJet 的消息、撰写我们的经验教训以及维持开发社区的活跃上。我们有一个关注社区里问题的三人团队。
-
### 商业模式
-如果没有[商业产品][10]来支付账单 ToolJet 无法成为一项可持续的业务。我们构建了 ToolJet 的客户必须付费的企业版本。ToolJet 的免费的社区版本没有任何使用限制,企业版中的额外功能都只与大型团队有关。我们现在的客户已经有超大型公司。我们有足够的银行存款来打造更好的 ToolJet ,因此我们目前正聚焦于产品提升上。
+如果没有 [商业产品][10] 来支付账单,ToolJet 就无法成为一项可持续的业务。我们构建了 ToolJet 的客户付费的企业版本。ToolJet 的免费的社区版本没有任何使用限制,企业版中的额外功能都只与大型团队有关。我们现在的客户已经有超大型公司。我们有足够的银行存款来打造更好的 ToolJet ,因此我们目前正聚焦于产品提升上。
### 接下来做什么
-我们在消费者反馈的帮助以及开源社区的贡献下经常性发布更好的 ToolJet 版本。很多主要的优化、大量的数据接口以及 UI 组件正在开发进程中。为了实现我们成为能够连接大量数据源并构建更复杂的用户界面的开源框架的初心,我们比以往行动得更加迅速。
+我们在开源社区的不断反馈和贡献的帮助下,我们可以经常性发布更好的 ToolJet 版本。很多主要的优化、大量的数据接口以及 UI 组件正在开发进程中。我们正以前所未有的速度朝着我们的最初目标前进,即成为一个可以连接到数百个数据源和构建最复杂的用户界面的开源框架。
--------------------------------------------------------------------------------
@@ -99,7 +92,7 @@ via: https://opensource.com/article/22/10/tooljet-open-source-journey
作者:[Navaneeth PK][a]
选题:[lkxed][b]
译者:[CanYellow](https://github.com/CanYellow)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -115,5 +108,5 @@ via: https://opensource.com/article/22/10/tooljet-open-source-journey
[8]: https://blog.tooljet.com/how-we-migrated-tooljet-server-from-ruby-to-node-js
[9]: https://opensource.com/sites/default/files/2022-10/tooljet-star-history.png
[10]: https://opensource.com/article/19/11/product-vs-project
-
[11]: https://www.producthunt.com/
+[0]: https://img.linux.net.cn/data/attachment/album/202212/17/221548rbp2t6z8ah3h031s.jpg
\ No newline at end of file
From d45b839c803e8a281ed3e7b23481fd5f26cdd26f Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 17 Dec 2022 22:17:45 +0800
Subject: [PATCH 077/266] P
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@CanYellow
https://linux.cn/article-15359-1.html
恭喜你升级为二星贡献者!
---
.../20221019.5 ⭐️⭐️ Our open source startup journey.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
rename {translated/talk => published}/20221019.5 ⭐️⭐️ Our open source startup journey.md (99%)
diff --git a/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md b/published/20221019.5 ⭐️⭐️ Our open source startup journey.md
similarity index 99%
rename from translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
rename to published/20221019.5 ⭐️⭐️ Our open source startup journey.md
index 228d530700..b8180b32c2 100644
--- a/translated/talk/20221019.5 ⭐️⭐️ Our open source startup journey.md
+++ b/published/20221019.5 ⭐️⭐️ Our open source startup journey.md
@@ -4,8 +4,8 @@
[#]: collector: "lkxed"
[#]: translator: "CanYellow"
[#]: reviewer: "wxy"
-[#]: publisher: " "
-[#]: url: " "
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15359-1.html"
我们的开源创业之旅
======
From 198a5ea3c3f86b0c7a58f47f11a60dad1371009b Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 18 Dec 2022 14:59:55 +0800
Subject: [PATCH 078/266] R
@geekpi
---
...ow to Access UEFI Settings in Linux Systems.md | 24 +++++++++----------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
index 779ee8e4ee..b18ba3bf7f 100644
--- a/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
+++ b/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
@@ -3,30 +3,30 @@
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
+[#]: reviewer: "wxy"
[#]: publisher: " "
[#]: url: " "
如何在 Linux 系统中访问 UEFI 设置
======
-想要在固件级别检查启动顺序或电源设置? **你可以在系统启动时按 F2、F10 或 Del 按键访问 UEFI 设置**。
+想要在固件级别检查启动顺序或电源设置? **你可以在系统启动时按 `F2`、`F10` 或 `Del` 按键访问 UEFI 设置**。
这种方法的问题是你可能不知道确切的键,并且必须警惕在正确的时间按下这些键。
![Mr. Bean][1a]
-如果你不想像上面 Gif 中的憨豆先生,你可以从 Linux 中的 [Grub bootloader][1] 也没访问 UEFI 设置。
+如果你不想像上面 Gif 中的憨豆先生,你可以从 Linux 中的 [Grub 引导加载器][1] 页面访问 UEFI 设置。
![uefi firmware settings grub linux][2]
当你打开 Linux 系统时,你会看到这个页面。Fedora 和 Ubuntu 等大多数 Linux 发行版都使用 Grub,它们允许你像这样从 Grub 页面访问 UEFI 设置。
-如果你没有看到此页面或你的发行版不使用 Grub 怎么办? 仍然有一些方法可以从 Linux 中访问 UEFI 设置。
+如果你没有看到此页面,或你的发行版不使用 Grub 怎么办? 仍然有一些方法可以从 Linux 中访问 UEFI 设置。
-在你了解如何操作之前,请[确保你的系统使用 UEFI][3]。
+在你了解如何操作之前,请 [确保你的系统使用的是 UEFI][3]。
-**_另一件重要的事情。你的系统将重启进入 UEFI 设置。_** _你无法从操作系统中访问和修改固件设置。_
+另一件重要的事情。你的系统重启才能进入 UEFI 设置。你无法从操作系统中访问和修改固件设置。
### 从 Linux 启动到 UEFI 设置
@@ -51,13 +51,13 @@ systemctl reboot --firmware-setup
- `reboot`:顾名思义,它将重启你的系统。
- `--firmware-setup`: 当此选项与 `reboot` 一起使用时,它会指示系统固件启动进入固件设置界面。
-就是这样! 一个命令,你将进入 UEFI 设置。我知道 Windows 允许[从 Windows 中启动进入 UEFI 固件设置][6]。很高兴在 Linux 中看到类似的东西。
+就是这样! 一个命令,你将进入 UEFI 设置。我知道 Windows 允许 [从 Windows 中启动进入 UEFI 固件设置][6]。很高兴在 Linux 中看到类似的东西。
#### 创建桌面快捷方式以启动到 UEFI 设置(可选)
-如果你经常发现自己启动进入 UEFI 设置并且不记得所有命令,你可以通过创建桌面快捷方式让你的生活更轻松。这将使你可以通过单击桌面图标启动到 UEFI。
+如果你经常发现自己启动进入 UEFI 设置,并且不记得所有命令,你可以通过创建桌面快捷方式让你的生活更轻松。这将使你可以通过单击桌面图标启动到 UEFI。
-_**现在,对于大多数 Linux 用户来说,这是不必要的,也不是必需的。只有当你觉得有必要时才去做。该方法需要[在命令行中编辑文件][7]。**_
+不过,对于大多数 Linux 用户来说,这是不必要的,也不是必需的。只有当你觉得有必要时才去做。该方法需要 [在命令行中编辑文件][7]。
首先,使用给定的命令为 UEFI 设置创建桌面快捷方式文件:
@@ -86,11 +86,11 @@ Categories=System;Settings;
![boot into uefi firmware from system menu][10]
-完成了! 一种进入 UEFI 设置的巧妙方法。
+完成了!一种进入 UEFI 设置的巧妙方法。
### 总结
-访问启动设置的经典方法对某些人来说可能有点不方便。grub 页面可能不会显示旧版本的 UEFI 选项。
+访问启动设置的经典方法对某些人来说可能有点不方便。Grub 页面可能不会显示旧版本的 UEFI 选项。
这就是 systemd 方法的亮点所在。当我的系统崩溃并且我的功能键没有响应时,我发现这种方法是救命稻草,这是启动到 UEFI 所必需的(我当时就是这么想的!)。
@@ -103,7 +103,7 @@ via: https://itsfoss.com/access-uefi-from-linux/
作者:[Sagar Sharma][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From a38cfd353d98ca35b44de3f11949437587d68e72 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 18 Dec 2022 16:45:58 +0800
Subject: [PATCH 079/266] R
@chai001125
---
...️ 7 pro tips for using the GDB step command.md | 41 ++++++++++---------
1 file changed, 22 insertions(+), 19 deletions(-)
diff --git a/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
index ea398cd4a0..8073fbf1c6 100644
--- a/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
+++ b/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
@@ -7,10 +7,12 @@
[#]: publisher: " "
[#]: url: " "
-GDB 进入函数内部的 7 个命令
+GDB 的 7 个单步调试命令
======
->**调试器**是一个可以运行你的代码并检查问题的软件。[GNU Debugger][1](GBD)是最流行的调试器之一,在这篇文章中,我研究了 **GDB 进入函数内部的几个命令**,包含了 **`step` 命令**和其他几个**常见的 GDB 命令**。`step` 是一个被广泛使用的命令,但它有一些人们不太了解的地方,可能会使得他们十分困惑。此外,还有一些方法可以**在不使用 `step` 命令的情况下进入一个函数**,比如使用不太知名的 `advance` 命令。
+> 即使是复杂的函数,也有几种方法可以单步调试,所以下次在排除代码故障时,可以尝试一下这些 GDB 技术。
+
+**调试器** 是一个可以运行你的代码并检查问题的软件。[GNU Debugger][1](GBD)是最流行的调试器之一,在这篇文章中,我研究了 GDB 的 `step` 命令和其他几种常见情况的相关命令。`step` 是一个被广泛使用的命令,但它有一些人们不太了解的地方,可能会使得他们十分困惑。此外,还有一些方法可以**在不使用 `step` 命令的情况下进入一个函数**,比如使用不太知名的 `advance` 命令。
### 1、无调试符号
@@ -19,6 +21,7 @@ GDB 进入函数内部的 7 个命令
```
#include
+
int num() {
return 2;
}
@@ -27,13 +30,14 @@ void bar(int i) {
printf("i = %d\n", i);
}
+
int main() {
bar(num());
return 0;
}
```
-如果你在没有 调试符号 debugging sysbols 的情况下进行编译(即在使用 `gcc` 编译程序时上,没有写 `-g` 选项),然后在 `bar` 上设置一个断点,然后尝试在这个函数内使用 `step`,来单步执行语句。GDB 会给出一个 没有行号信息 no line number information 的错误信息。
+如果你在没有 调试符号 debugging sysbols 的情况下进行编译(LCTT 译注:即在使用 `gcc` 编译程序时没有写 `-g` 选项),然后在 `bar` 上设置一个断点,然后尝试在这个函数内使用 `step` 来单步执行语句。GDB 会给出一个 没有行号信息 no line number information 的错误信息。
```
gcc exmp.c -o exmp
@@ -50,9 +54,9 @@ i = 2
0x0000000000401168 in main ()
```
-### 2、`stepi` 命令
+### 2、stepi 命令
-但是你仍然可以在没有行号信息的函数内部单步执行语句,但要使用 `stepi` 命令来代替 `step`。`stepi` 一次只执行一条指令。当使用 GDB 的 `stepi` 命令时,先做 `display/i $pc` 通常很有用,这会在每一步之后**显示** **程序计数器的值** program counter value 和**相应的** **机器指令** machine instruction :
+但是你仍然可以在没有行号信息的函数内部单步执行语句,但要使用 `stepi` 命令来代替 `step`。`stepi` 一次只执行一条指令。当使用 GDB 的 `stepi` 命令时,先做 `display/i $pc` 通常很有用,这会在每一步之后**显示** 程序计数器 program counter 的值和**相应的** 机器指令 machine instruction :
```
(gdb) b bar
@@ -84,7 +88,7 @@ $1 = 2
### 3、复杂的函数调用
-在带调试符号的 `-g` 选项,重新编译示例程序后,你可以用 `main` 中的行号,在 `bar` 上设置断点,然后再单步执行 `bar` 函数的语句:
+在带调试符号的 `-g` 选项,重新编译示例程序后,你可以使用行号在 `main` 中 `bar` 调用上设置断点,然后再单步执行 `bar` 函数的语句:
```
gcc -g exmp.c -o exmp
@@ -105,7 +109,7 @@ num () at exmp.c:4
4 return 2;
```
-函数调用的参数需要在实际的函数调用之前进行处理,`bar()` 函数调用了 `num()` 函数,所以 `num()` 会在 `bar()` 被调用之前执行。但是,通过 GDB 调试,你怎么才能如愿以偿地进入 `bar()` 函数呢?你可以使用 `finish` 命令,并再次使用 `step` 命令。
+函数调用的参数需要在实际的函数调用之前进行处理,`bar()` 函数的参数是 `num()` 函数,所以 `num()` 会在 `bar()` 被调用之前执行。但是,通过 GDB 调试,你怎么才能如愿以偿地进入 `bar()` 函数呢?你可以使用 `finish` 命令,并再次使用 `step` 命令。
```
(gdb) finish
@@ -118,11 +122,10 @@ bar (i=2) at exmp.c:9
9 printf("i = %d\n", i);
```
-### 4、`Tbreak` 命令
+### 4、tbreak 命令
`tbreak` 命令会设置一个**临时断点**。如果你不想设置永久断点,那么这个命令是很有用的。举个例子🌰,你想进入一个复杂的函数调用,例如 `f(g(h()), i(j()), ...)`,在这种情况下,你需要一个很长的 `step/finish/step` 序列,才能到达 `f` 函数。如果你设置一个临时断点,然后再使用 `continue` 命令,这样就不需要以上的序列了。为了证明这一点,你需要像以前一样将断点设置在 `main` 的 `bar` 调用上。然后在 `bar` 上设置临时断点。当到达该临时断点后,临时断点会被自动删除。
-
```
(gdb) r
Starting program: /home/ahajkova/exmp
@@ -132,7 +135,7 @@ Breakpoint 1, main () at exmp.c:14
Temporary breakpoint 2 at 0x40113c: file exmp.c, line 9.
```
-在调用 `bar` 的时候遇到断点,并在 `bar` 上设置临时断点后,你只需要使用`continue` 继续运行直到 `bar` 结束。
+在调用 `bar` 的时候遇到断点,并在 `bar` 上设置临时断点后,你只需要使用 `continue` 继续运行直到 `bar` 结束。
```
(gdb) continue
@@ -141,9 +144,9 @@ Temporary breakpoint 2, bar (i=2) at exmp.c:9
9 printf("i = %d\n", i);
```
-### 5、`disable` 命令
+### 5、disable 命令
-类似地,你也可以在 `bar` 上设置一个正常的断点,然后执行 `continue`,然后在不再需要第二个断点时,使用`disable` 命令禁用这个断点,这样也能达到与 `tbreak` 相同的效果。
+类似地,你也可以在 `bar` 上设置一个正常的断点,然后执行 `continue`,然后在不再需要第二个断点时,使用 `disable` 命令禁用这个断点,这样也能达到与 `tbreak` 相同的效果。
```
(gdb) b exmp.c:14
@@ -161,7 +164,7 @@ Breakpoint 2, bar (i=2) at exmp.c:9
(gdb) disable 2
```
-正如你所看到的,`info breakpoints` 命令在 `Enb` 下显示为 `n`,这意味着这个断点已被禁用。但你也能在再次需要这个断点时,再启用它。
+正如你所看到的,`info breakpoints` 命令在 `Enb` 列下显示为 `n`,这意味着这个断点已被禁用。但你也能在再次需要这个断点时,再启用它。
```
(gdb) info breakpoints
@@ -179,7 +182,7 @@ breakpoint already hit 1 time
breakpoint already hit 1 time
```
-### 6、`Advance` 命令运行程序到指定的位置
+### 6、advance 命令运行程序到指定的位置
另一个进入函数内部的方法是 `advance` 命令。你可以简单地用 `advance bar`,来代替 `tbreak bar ; continue`。这一命令会将程序继续运行到指定的位置。
@@ -196,7 +199,7 @@ bar (i=2) at exmp.c:9
9 printf("i = %d\n", i);
```
-### 7、`skip` 命令
+### 7、skip 命令
进入 `bar` 函数的另一种方式是使用 `skip num` 命令:
@@ -222,7 +225,7 @@ Num Enb Glob File RE Function
1 y n n num
```
-如果不再需要 `skip`,可以禁用(稍后重新启用)或完全删除它。你可以添加另一个 `skip`,并禁用第一个 `skip`,然后全部删除。要禁用某个 `skip`,必须指定其编号(例如,`skip disable 1`),如果没有指定,则会禁用所有的 `skip`。启用或删除 `skip` 的工作原理相同:
+如果不再需要 `skip`,可以禁用(并稍后重新启用)或完全删除它。你可以添加另一个 `skip`,并禁用第一个 `skip`,然后全部删除。要禁用某个 `skip`,必须指定其编号(例如,`skip disable 1`),如果没有指定,则会禁用所有的 `skip`。启用或删除 `skip` 的工作原理相同:
```
(gdb) skip bar
@@ -236,9 +239,9 @@ Num Enb Glob File RE Function
Not skipping any files or functions.
```
-### GDB 的 `step` 命令
+### GDB 的 step 命令
-使用 GDB 的 `step` 命令是调试程序的一个有用工具。即使是复杂的函数,也有几种方法可以进入这些函数,所以下次你在排除代码问题的时候,可以尝试一下这些 GDB 技术。
+使用 GDB 的 `step` 命令是调试程序的一个有用工具。即使是复杂的函数,也有几种方法可以单步调试这些函数,所以下次你在排除代码问题的时候,可以尝试一下这些 GDB 技术。
--------------------------------------------------------------------------------
@@ -247,7 +250,7 @@ via: https://opensource.com/article/22/12/gdb-step-command
作者:[Alexandra][a]
选题:[lkxed][b]
译者:[chai001125](https://github.com/chai001125)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From 29941767a1fe0a75c04cea1ca3438225c00b533c Mon Sep 17 00:00:00 2001
From: cool-summer-021
Date: Sun, 18 Dec 2022 17:06:04 +0800
Subject: [PATCH 080/266] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87=20?=
=?UTF-8?q?(#28261)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...6 Promises Much More than Faster Speeds.md | 95 -------------------
...6 Promises Much More than Faster Speeds.md | 95 +++++++++++++++++++
2 files changed, 95 insertions(+), 95 deletions(-)
delete mode 100644 sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
create mode 100644 translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
diff --git a/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
deleted file mode 100644
index fd7b08a93e..0000000000
--- a/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
+++ /dev/null
@@ -1,95 +0,0 @@
-[#]: subject: "WiFi 6 Promises Much More than Faster Speeds"
-[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/"
-[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/"
-[#]: collector: "lkxed"
-[#]: translator: "cool-summer-021"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-WiFi 6 Promises Much More than Faster Speeds
-======
-WiFi 6 increases the network connectivity, and has been developed to ensure the trillions of devices connected in the near future continue to work seamlessly and efficiently. Though it was certified in 2019, it faced a few challenges in testing due to the pandemic. This article gives an overview of this technology.
-
-![WiFi-6][1]
-
-The next-generation standard in WiFi technology, termed ‘WiFi 6’, is also known as ‘AX WiFi’ or ‘802.11ax’. Developed to meet the exponential increase in demand for devices in the world, it can be used for virtual reality (VR) and smart home devices as well. It is an improvement on the current 802.11ac WiFi standard and meets current challenges in terms of capacity, efficiency, coverage and performance.
-
-![Figure 1: WiFi 6][2]
-
-Researched in 2014, this standard was invented in 2018 and launched by the IEEE High Efficiency WLAN Study Group (HEW SG). It began certifications in late 2019, with Samsung’s Galaxy Note 10 and Ruckus R750 employing this technology. Specified to operate between the 1GHz and 6GHz bands, WiFi 6 focuses mainly between the 2.4GHz and 5GHz frequencies.
-
-In an average household today, nine devices are connected to WiFi. WiFi 6 aims at improving the network rather than boosting the speed for individual devices.
-
-### Features of WiFi 6
-
-**Multi-user, multi-input, multi-output (MU-MIMO):** This communication between routers and multiple devices concurrently. It supports four simultaneous data streams, added to which one user can have a considerable bandwidth of incoming data from a smart router, both on the 2.4GHz and 5GHz frequencies.
-**1024-QAM:** This helps WiFi 6 encode more bits per packet. There is a 25 per cent increase in throughput. Not only does it improve efficiency in high-traffic situations, it also maximises data rates. This is a huge advantage for modern enterprise applications.
-**Orthogonal frequency-division multiplexing (OFDM):** This allows four times as many subcarriers and increases speed by 11 per cent. The expanded signal allows for greater simultaneous packet delivery across users. Hence, the wait time between packets and latency is reduced.
-*Increased channel width:* The 160MHz channel communication is added to the 80MHz band, thus doubling the channel width. This allows routers to handle more users and provide larger streams per user.
-*Target wake time (TWT):* This feature is unique to WiFi 6. It allows each device to independently negotiate wake time for transmission and reception. This helps to increase total sleep time and maximise battery life. TWT enables many additional networking options, especially for IoT devices.
-*Improved security:* All WiFi 6 devices will need to include Wi-Fi Protected Access 3 (WPA3). This will lead to encryption of unauthenticated traffic, robust password protection against brute-force dictionary attacks, and superior data reliability for sensitive information with 192-bit encryption.
-*Beamforming:* With eight support antennas, beamforming helps to improve data rates, and the range is extended by directing signals towards specific clients at once. It offers a backup for rapidly moving devices that may face issues with MU-MIMO. Beamforming also helps to control transmissions from antennas that cause signals to interfere on purpose. The signal can then be redirected to a new direction.
-
-### Devices that support WiFi 6
-
-Until recently, WiFi 5 was the standard used for routers, repeaters, mesh networks and many WiFi clients. WiFi 6 was launched in 2019. There will be some compatibility issues for the earlier devices that supported WiFi 5 — they will be able to utilise the WiFi 6 network but not be able to receive support for the same.
-
-WiFi 6 routers are backward-compatible, and it is better to make sure that the network is ready for that.
-
-WiFi 6 enables lower battery consumption, making it a great choice for any environment, including the Internet of Things (IoT). It reduces unnecessary data activity, and tells devices when to put their data to sleep and when to be active. As a result, unnecessary data activity is reduced, and performance and battery life are maximised.
-
-The Samsung Galaxy Note 10 and Ruckus R750 were the world’s first smartphone and access point certified to support Wi-Fi 6, with the latest generation of the Apple iPhone following suit. The Wi-Fi Alliance has set up its certification programme, and new wireless products hitting the market are expected to start applying for compliance certification. The devices listed below are already WiFi 6 enabled:
-
-* iPhone 11 and after
-* Samsung Galaxy S10, S20, Note 10, and Note 20
-* Apple computers with M1 processors
-* Smart TVs
-
-> To take advantage of the improvements in the 802.11ax standard fully, both hardware and software functionalities have to be built on this WiFi technology.
-
-### Hardware testing
-
-To unlock the full potential of the latest devices, a WiFi 6 router is needed to run the network. This was an expensive affair a few years ago, but now we have a number of options even for mesh systems, gaming routers, range extenders, and more. The best purchase can be made only when hands-on testing is done. Beating all its competitors, the current king in terms of speed for WiFi 6 routers is TP-Link Archer AX6000. This router was able to transmit data wirelessly at a rate of 1523 Mbps up to a distance of 1.5 metres (5 feet).
-
-One important thing to remember here is that these routers do not magically increase speeds. The theoretical maximum of achieving 9.6 Gbps is unlikely. This high theoretical speed can be split up across a whole network of devices.
-
-WiFi 6 emphasises quality connectivity in areas where connected devices are densely populated. It does not increase the speed of each device exponentially but ensures these operate at an optimum level.
-
-Only the combination of a faster plan from the Internet service providers (ISPs) along with the WiFi 6 router, can fulfil its true potential. The real challenge is for the ISPs, as they need new fibre rollouts to capitalise on this next-gen technology. An important question is: when faster ISP speeds come, will the existing hardware become redundant?
-
-### Applications of WiFi 6
-
-**Large public venues (LPVs):** Stadiums and convention centres are a few of the common areas where thousands of devices connect to WiFi at the same time. WiFi 6 can help to improve attendee experiences, increase customer interactions, and create value-added services like viewing instant replays or ordering food from one’s seat at an event. WiFi 6 allows LPV owners to create new business opportunities.
-**Transport hubs:** Public transport stations are also an area where people attempt to connect to the network simultaneously. OFDMA and BSS colouring in WiFi 6 provide the necessary tools needed to overcome this challenge.
-**IoT and smart city deployments:** Power efficiencies in WiFi 6 enable IoT devices to go into sleep mode and turn on their transmitters at predefined intervals to prolong field time without much maintenance.
-**Education:** Libraries, auditoriums, and lecture halls at college and university campuses have the highest density of WiFi users during the day, and almost no one at night. WiFi 6 is a perfect choice in this situation.
-
-### The challenges
-
-WiFi 6 does not promise an increase in speed, but is an upgrade designed to make sure the speeds of our devices within a given range/area doesn’t slow down a few years down the road. There are three major challenges it faces though, which are often overlooked.
-Improving the functionality of unsupported devices: Even though WiFi 6 is backward- compatible, justice to it can only be done when this technology is used to the maximum. This means devices need to be upgraded each time.
-
-Speed and performance outside the internal network: WiFi 6 can provide excellent connectivity for services like cloud file shares. However, the assets and resources of ISPs can affect speed and performance.
-
-*Coverage issues:* Transmission and bandwidths are capped according to the regulations prevalent in each country. Hence, the coverage of WiFi 6 may be restricted to ensure this cap is met.
-
-In spite of these challenges, companies like Aruba, Asus, AT&T, Boingo, Broadcom, Cisco, Comcast, CommScope, Cypress, Extreme Networks, Intel, Netgear, Orange, Qualcomm, TP-Link and Xiaomi are all focusing on the potential WiFi 6 has.
-
-(LCTT 译注:选题删除了原文中的相关产品推荐部分。)
-
---------------------------------------------------------------------------------
-
-via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/
-
-作者:[Sharon Katta][a]
-选题:[lkxed][b]
-译者:[cool-summer-021](https://github.com/cool-summer-021)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.opensourceforu.com/author/sharon-katta/
-[b]: https://github.com/lkxed
-[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6.jpg
-[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6-1.jpg
diff --git a/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
new file mode 100644
index 0000000000..210c958523
--- /dev/null
+++ b/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
@@ -0,0 +1,95 @@
+[#]: subject: "WiFi 6 Promises Much More than Faster Speeds"
+[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/"
+[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/"
+[#]: collector: "lkxed"
+[#]: translator: "cool-summer-021"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+WiFi 6 带来的不仅是高速
+======
+WiFi 6 提高了网络连通性,它在不久的将来有望为数万亿台设备组网,并且能够不间断而高效地工作。它虽然在2019年就取得了官方认证,但由于疫情原因,它的测试工作面临不少挑战。本文旨在对这项技术进行概述。
+
+![WiFi-6][1]
+
+WiFi 技术的下一代标准,称为 ‘WiFi 6’,也可以称为 ‘AX WiFi’ 或 ‘802.11ax’。它是为满足指数级增长的设备组网需求而产生的,因此也可以用于 VR 和智能家居。它是现有的 802.11ac WiFi 标准的升级版,可以应对现有技术在容量、效率、覆盖范围和性能方面遇到的挑战。
+
+![Figure 1: WiFi 6][2]
+
+这项技术是在 2014 年进行研发,完成于2018年,由 IEEE 高性能无线网络研究组发布。产品认证于 2019 年后期进行,此时 Samsung Galaxy Note 10 和 Ruckus R750 使用了这种技术。WiFi 6 运行于 1GHz 和 6GHz 波段,主要的频率为 2.4GHz-5GHz。
+
+如今,每个家庭平均有九台设备需要连接 Wifi。WiFi 6 主要致力于改善网络质量,而不是提升某些设备的速度。
+
+### WiFi 6的特点
+
+**多用户、多输入、多输出(MU-MIMO):** 路由器和多台设备可以同时通信。支持即时数据流,用户可以从智能路由器接收的输入数据的带宽很大,在频率为 2.4GHz-5GHz 时都是可行的。
+**1024-QAM:** 这令 WiFi 6 的每个数据包能编码的字节数更多,吞吐量增加了 25%。它不仅提高了大业务量情况下的通信效率,也最大限度增加了传输速率。这在现代企业应用系统领域有很大的优势。
+**正交频分复用(OFDM):** 支持四倍的负载波,速度也提高了 11%。扩展的信号支持用户进行更大的即时数据包传输。所以数据包之间的等待时间和延迟就减少了。
+*增加的信道宽度:* 80MHz的波段加入了160MHz的信道通信,信道宽度增加了一倍。因此,路由器可以容纳更多用户,为每个用户提供更大的数据流。
+*目标唤醒时间(TWT):* 这是 WiFi 6 特有的。它支持每台设备协商发送和接收的唤醒时间。它可以增加总体处于睡眠状态的时间,令电池寿命最大化。它还支持许多额外的网络选项,特别是对 IoT 设备的支持。
+*提升安全性:* 一切支持 WiFi 6 的设备都需要包含 WPA3 协议。它可以对未经验证的通信进行加密,针对暴力字典攻击提供强大的密码保护,以及对敏感信息进行 192 位的加密,提升数据的可靠性。
+*波束赋形:* 借助八根天线,波束赋形能提高传输速率,通信范围也因直接定向到某个客户端而扩大。它对快速移动的、可能面临多用户、多输入、多输出的设备起到了支撑作用。波束赋形也有利于控制那些蓄意发出干扰信号的天线的传输。然后信号会被重新定向到新的目标。
+
+### 支持 WiFi 6的设备
+
+到目前为止,路由器、中继器、网状网络和多数 WiFi 使用者还是以 WiFi 5 为标准。WiFi 6 是 2019 年推出的。一些支持 WiFi 5 的早期设备存在一些兼容性问题——它们可以使用 WiFi 6 的网络,但得不到相应的支持服务。
+
+WiFi 6 的路由器是向后兼容的。应该确保网络已经为此做好了准备。
+
+WiFi 6 实现了较低的电量消耗,在任何场景(包括 IoT)下,都是个不错的选择。它减少了不必要的数据流动,还会通知设备何时将数据激活或令其睡眠。所以不必要的数据流动减少了,性能和电池寿命也提高了。
+
+Samsung Galaxy Note 10 和 Ruckus R750 是全球第一款经认证支持 WiFi 6 的智能手机和接入设备,Apple iPhone 最新款也紧随其后。WiFi 联盟建、确立了认证方案,正如人们预期的那样,等待入市的那些新款无线产品也开始申请认证了。下列设备已支持 WiFi 6:
+
+* iPhone 11 和之后的型号
+* Samsung Galaxy S10, S20, Note 10 和 Note 20
+* 配置 M1 处理器的苹果电脑
+* 智能电视
+
+> 为了全面享受到 802.11ax 标准带来的改进,硬件和软件的功能都需要基于这种 WiFi 技术进行升级。
+
+### 硬件测试
+
+为了充分挖掘最新款设备的潜力,需要一台 WiFi 6 路由器来运行网络。几年前,这么做的成本很高,但现在我们有多种选项,甚至可以使用网格系统,游戏路由器,范围扩展器等等。只有在进行实际测试时,才可以购买最划算的设备。如今,在速度方面,TP-Link Archer AX6000 是最快的,它击败了所有的竞争者。这款路由器可以以 1523 Mbps 的速率无线传输数据,有效传输距离为 1.5米(5英尺)。
+
+很重要的一点,请务必记住,这些路由器提速,并不是在变魔术。理论上的最大速率9.6 Gbps是实现不了的。这种理论上的最大速率,实际上也会被多台设备分摊掉。
+
+WiFi 6 侧重于在连接设备密集的地方提供高质量的连接。它不会令单台设备的速率指数级增长,但会使相关的操作处于理想水平。
+
+只有各大互联网服务提供商(ISP)的加速计划组合起来,加上 WiFi 6 路由器,才能体现它的真正潜力。真正的挑战是那些 ISP 承受的,因为它们需要铺设新型的光纤来利用这种下一代技术。存在一个重要的问题:当ISP 的通信速率变得更快,现有的硬件会变得多余吗?
+
+### WiFi 6 的应用
+
+**大型公共场所(LPVs):** 体育馆和会议室是上千台设备同时联网的公共场所。WiFi 6 能改善参会者体验,增强消费者互动,还能提供附加服务,比如即时回放,订购餐食等。它还支持 LPV 业主开拓新的商业机会。
+**交通枢纽:** 公共交通站点也是人们需要同时联网的场所。OFDMA 和 BSS 这类明显具有 WiFi 6 色彩的技术为解决这种问题提供了必要的工具。
+**物联网和智慧城市建设:** WiFi 6 的效率令物联网设备可以进入休眠模式,并且可以以预定的间隔信号开启信号传送器,以便在无需过多维护的情况下增加现场作业时间。
+**教育机构:** 大学校园内的图书馆、礼堂和报告厅内的日间 WiFi 使用密度也是最高的,夜晚几乎没有人。WiFi 6 是这类场景的完美选项。
+
+### 面临的挑战
+
+WiFi 6 不一定使速度更快,但它能确保在一定范围内的设备速率不会在未来几年变慢。虽然它面临三重挑战,但这些问题常常被忽视。
+需要对不支持的设备进行升级:即使 Wifi 6 向后兼容,但只能在最大限度使用这种技术时才能做得合理。这意味着每次都要更新设备。
+
+内部网络以外的速度和性能:WiFi 6 能为诸如云文件共享之类服务提供极好的连接性。然而,ISP 的相关资源也会影响速度和性能。
+
+*覆盖范围问题:* 在各个国家,传输信号和带宽都是由法律规定上限的。因此,为了符合法律规定的上限,WiFi 6 的覆盖范围也是受限的。
+
+尽管存在这些挑战,一些企业,像Aruba, Asus, AT&T, Boingo, Broadcom, 思科, Comcast, CommScope, Cypress, Extreme Networks, 英特尔, Netgear, Orange, Qualcomm, TP-Link 和小米,都在关注 WiFi 6 更多的可能性。
+
+(LCTT 译注:选题删除了原文中的相关产品推荐部分。)
+
+--------------------------------------------------------------------------------
+
+via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/
+
+作者:[Sharon Katta][a]
+选题:[lkxed][b]
+译者:[cool-summer-021](https://github.com/cool-summer-021)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.opensourceforu.com/author/sharon-katta/
+[b]: https://github.com/lkxed
+[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6.jpg
+[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6-1.jpg
From 122ae9951b963a70e2b6c3a6b36c4baa1485f501 Mon Sep 17 00:00:00 2001
From: MjSeven
Date: Sun, 18 Dec 2022 19:52:18 +0800
Subject: [PATCH 081/266] Translating
---
...6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
index 2858b33b75..29e1dbb48d 100644
--- a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
+++ b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
@@ -2,7 +2,7 @@
[#]: via: "https://ostechnix.com/securely-transfer-files-with-scp-in-linux/"
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "MjSeven"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 3ab08c034f1c55d53016e2354ad2137e027f1a76 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sun, 18 Dec 2022 23:18:12 +0800
Subject: [PATCH 082/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221218.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Us?=
=?UTF-8?q?e=20my=20Groovy=20color=20wheel=20calculator.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️⭐️ Use my Groovy color wheel calculator.md | 384 ++++++++++++++++++
1 file changed, 384 insertions(+)
create mode 100644 sources/tech/20221218.0 ⭐️⭐️ Use my Groovy color wheel calculator.md
diff --git a/sources/tech/20221218.0 ⭐️⭐️ Use my Groovy color wheel calculator.md b/sources/tech/20221218.0 ⭐️⭐️ Use my Groovy color wheel calculator.md
new file mode 100644
index 0000000000..8b00c4240f
--- /dev/null
+++ b/sources/tech/20221218.0 ⭐️⭐️ Use my Groovy color wheel calculator.md
@@ -0,0 +1,384 @@
+[#]: subject: "Use my Groovy color wheel calculator"
+[#]: via: "https://opensource.com/article/22/12/groovy-color-wheel"
+[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Use my Groovy color wheel calculator
+======
+
+Every so often, I find myself needing to calculate complementary colors. For example, I might be making a line graph in a web app or bar graphs for a report. When this happens, I want to use complementary colors to have the maximum "visual difference" between the lines or bars.
+
+Online calculators can be useful in calculating two or maybe three complementary colors, but sometimes I need a lot more–for instance, maybe 10 or 15.
+
+Many online resources explain how to do this and offer formulas, but I think it's high time for a Groovy color calculator. So please follow along. First, you might need to install Java and Groovy.
+
+### Install Java and Groovy
+
+Groovy is based on Java and requires a Java installation as well. Both a recent/decent version of Java and Groovy might be in your Linux distribution's repositories. Or you can install Groovy by following the instructions on the above link.
+
+A nice alternative for Linux users is [SDKMan][1], which can get multiple versions of Java, Groovy, and many other related tools. For this article, I'm using SDK's releases of:
+
+- Java: version 11.0.12-open of OpenJDK 11
+- Groovy: version 3.0.8
+
+### Using a color wheel
+
+Before you start coding, look at a real color wheel. If you open [GIMP (the GNU Image Manipulation Program)][2] and look on the upper left-hand part of the screen, you'll see the controls to set the foreground and background colors, circled in red on the image below:
+
+![Controls to set foreground and background colors][3]
+
+If you click on the upper left square (the foreground color), a window will open that looks like this:
+
+![Set foreground color][4]
+
+If it doesn't quite look like that, click on the fourth from the left button on the top left row, which looks like a circle with a triangle inscribed in it.
+
+The ring around the triangle represents a nearly continuous range of colors. In the image above, starting from the triangle pointer (the black line that interrupts the circle on the left), the colors shade from blue into cyan into green, yellow, orange, red, magenta, violet, and back to blue. This is the color wheel. If you pick two colors opposite each other on that wheel, you will have two complementary colors. If you choose 17 colors evenly spaced around that wheel, you'll have 17 colors that are as distinct as possible.
+
+Make sure you have selected the **HSV** button in the top right of the window, then look at the sliders marked H, S, and V, respectively. These are **h**ue, **s**aturation, and **v**alue. When choosing contrasting colors, the hue is the interesting parameter.
+
+Its value runs from zero to 360 degrees; in the image above, it's 192.9 degrees.
+
+You can use this color wheel to calculate the complementary color to another manually–just add 180 to your color's value, giving you 372.9. Next, subtract 360, leaving 17.9 degrees. Type that 17.9 into the **H** box, replacing the 192.9, and poof, you have its complementary color:
+
+![Change foreground color][5]
+
+If you inspect the text box labeled **HTML notation** you'll see that the color you started with was **#0080a3,** and its complement is **#a33100**. Look at the fields marked **Current** and **Old** to see the two colors complementing each other.
+
+There is a most excellent and detailed [article on Wikipedia explaining HSL (hue, saturation, and lightness) and HSV (hue, saturation, and value) color models][6] and how to convert between them and the RGB standard most of us know.
+
+I'll automate this in Groovy. Because you might want to use this in various ways, create a **Color** class that provides constructors to create an instance of Color and then several methods to query the color of the instance in HSV and RGB.
+
+Here's the **Color** class, with an explanation following:
+
+```
+ 1 /**
+ 2 * This class based on the color transformation calculations
+ 3 * in https://en.wikipedia.org/wiki/HSL_and_HSV
+ 4 *
+ 5 * Once an instance of Color is created, it can be transformed
+ 6 * between RGB triplets and HSV triplets and converted to and
+ 7 * from hex codes.
+ 8 */
+
+ 9 public class Color {
+
+ 10 /**
+ 11 * May as well keep the color as both RGB and HSL triplets
+ 12 * Keep each component as double to avoid as many rounding
+ 13 * errors as possible.
+ 14 */
+
+ 15 private final Map rgb // keys 'r','g','b'; values 0-1,0-1,0-1 double
+ 16 private final Map hsv // keys 'h','s','v'; values 0-360,0-1,0-1 double
+
+ 17 /**
+ 18 * If constructor provided a single int, treat it as a 24-bit RGB representation
+ 19 * Throw exception if not a reasonable unsigned 24 bit value
+ 20 */
+
+ 21 public Color(int color) {
+ 22 if (color < 0 || color > 0xffffff) {
+ 23 throw new IllegalArgumentException('color value must be between 0x000000 and 0xffffff')
+ 24 } else {
+ 25 this.rgb = [r: ((color & 0xff0000) >> 16) / 255d, g: ((color & 0x00ff00) >> 8) / 255d, b: (color & 0x0000ff) / 255d]
+ 26 this.hsv = rgb2hsv(this.rgb)
+ 27 }
+ 28 }
+
+ 29 /**
+ 30 * If constructor provided a Map, treat it as:
+ 31 * - RGB if map keys are 'r','g','b'
+ 32 * - Integer and in range 0-255 ⇒ scale
+ 33 * - Double and in range 0-1 ⇒ use as is
+ 34 * - HSV if map keys are 'h','s','v'
+ 35 * - Integer and in range 0-360,0-100,0-100 ⇒ scale
+ 36 * - Double and in range 0-360,0-1,0-1 ⇒ use as is
+ 37 * Throw exception if not according to above
+ 38 */
+
+ 39 public Color(Map triplet) {
+ 40 def keySet = triplet.keySet()
+ 41 def types = triplet.values().collect { it.class }
+ 42 if (keySet == ['r','g','b'] as Set) {
+ 43 def minV = triplet.min { it.value }.value
+ 44 def maxV = triplet.max { it.value }.value
+ 45 if (types == [Integer,Integer,Integer] && 0 <= minV && maxV <= 255) {
+ 46 this.rgb = [r: triplet.r / 255d, g: triplet.g / 255d, b: triplet.b / 255d]
+ 47 this.hsv = rgb2hsv(this.rgb)
+ 48 } else if (types == [Double,Double,Double] && 0d <= minV && maxV <= 1d) {
+ 49 this.rgb = triplet
+ 50 this.hsv = rgb2hsv(this.rgb)
+ 51 } else {
+ 52 throw new IllegalArgumentException('rgb triplet must have integer values between (0,0,0) and (255,255,255) or double values between (0,0,0) and (1,1,1)')
+ 53 }
+ 54 } else if (keySet == ['h','s','v'] as Set) {
+ 55 if (types == [Integer,Integer,Integer] && 0 <= triplet.h && triplet.h <= 360
+ 56 && 0 <= triplet.s && triplet.s <= 100 && 0 <= triplet.v && triplet.v <= 100) {
+ 57 this.hsv = [h: triplet.h as Double, s: triplet.s / 100d, v: triplet.v / 100d]
+ 58 this.rgb = hsv2rgb(this.hsv)
+ 59 } else if (types == [Double,Double,Double] && 0d <= triplet.h && triplet.h <= 360d
+ 60 && 0d <= triplet.s && triplet.s <= 1d && 0d <= triplet.v && triplet.v <= 1d) {
+ 61 this.hsv = triplet
+ 62 this.rgb = hsv2rgb(this.hsv)
+ 63 } else {
+ 64 throw new IllegalArgumentException('hsv triplet must have integer values between (0,0,0) and (360,100,100) or double values between (0,0,0) and (360,1,1)')
+ 65 }
+ 66 } else {
+ 67 throw new IllegalArgumentException('triplet must be a map with keys r,g,b or h,s,v')
+ 68 }
+ 69 }
+
+ 70 /**
+ 71 * Get the color representation as a 24 bit integer which can be
+ 72 * rendered in hex in the familiar HTML form.
+ 73 */
+
+ 74 public int getHex() {
+ 75 (Math.round(this.rgb.r * 255d) << 16) +
+ 76 (Math.round(this.rgb.g * 255d) << 8) +
+ 77 Math.round(this.rgb.b * 255d)
+ 78 }
+
+ 79 /**
+ 80 * Get the color representation as a map with keys r,g,b
+ 81 * and the corresponding double values in the range 0-1
+ 82 */
+
+ 83 public Map getRgb() {
+ 84 this.rgb
+ 85 }
+
+ 86 /**
+ 87 * Get the color representation as a map with keys r,g,b
+ 88 * and the corresponding int values in the range 0-255
+ 89 */
+
+ 90 public Map getRgbI() {
+ 91 this.rgb.collectEntries {k, v -> [(k): Math.round(v*255d)]}
+ 92 }
+
+ 93 /**
+ 94 * Get the color representation as a map with keys h,s,v
+ 95 * and the corresponding double values in the ranges 0-360,0-1,0-1
+ 96 */
+
+ 97 public Map getHsv() {
+ 98 this.hsv
+ 99 }
+
+ 100 /**
+ 101 * Get the color representation as a map with keys h,s,v
+ 102 * and the corresponding int values in the ranges 0-360,0-100,0-100
+ 103 */
+
+ 104 public Map getHsvI() {
+ 105 [h: Math.round(this.hsv.h), s: Math.round(this.hsv.s*100d), v: Math.round(this.hsv.v*100d)]
+ 106 }
+
+ 107 /**
+ 108 * Internal routine to convert an RGB triple to an HSV triple
+ 109 * Follows the Wikipedia section https://en.wikipedia.org/wiki/HSL_and_HSV#Hue_and_chroma
+ 110 * (almost) - note that the algorithm given there does not adjust H for G < B
+ 111 */
+
+ 112 private static def rgb2hsv(Map rgbTriplet) {
+ 113 def max = rgbTriplet.max { it.value }
+ 114 def min = rgbTriplet.min { it.value }
+ 115 double c = max.value - min.value
+ 116 if (c) {
+ 117 double h
+ 118 switch (max.key) {
+ 119 case 'r': h = ((60d * (rgbTriplet.g - rgbTriplet.b) / c) + 360d) % 360d; break
+ 120 case 'g': h = ((60d * (rgbTriplet.b - rgbTriplet.r) / c) + 120d) % 360d; break
+ 121 case 'b': h = ((60d * (rgbTriplet.r - rgbTriplet.g) / c) + 240d) % 360d; break
+ 122 }
+ 123 double v = max.value // hexcone model
+ 124 double s = max.value ? c / max.value : 0d
+ 125 [h: h, s: s, v: v]
+ 126 } else {
+ 127 [h: 0d, s: 0d, v: 0d]
+ 128 }
+ 129 }
+
+ 130 /**
+ 131 * Internal routine to convert an HSV triple to an RGB triple
+ 132 * Follows the Wikipedia section https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB
+ 133 */
+
+ 134 private static def hsv2rgb(Map hsvTriplet) {
+ 135 double c = hsvTriplet.v * hsvTriplet.s
+ 136 double hp = hsvTriplet.h / 60d
+ 137 double x = c * (1d - Math.abs(hp % 2d - 1d))
+ 138 double m = hsvTriplet.v - c
+ 139 if (hp < 1d) [r: c + m, g: x + m, b: 0d + m]
+ 140 else if (hp < 2d) [r: x + m, g: c + m, b: 0d + m]
+ 141 else if (hp < 3d) [r: 0d + m, g: c + m, b: x + m]
+ 142 else if (hp < 4d) [r: 0d + m, g: x + m, b: c + m]
+ 143 else if (hp < 5d) [r: x + m, g: 0d + m, b: c + m]
+ 144 else if (hp < 6d) [r: c + m, g: 0d + m, b: x + m]
+ 145 }
+
+ 146 }
+```
+
+The **Color** class definition, which begins on line 9 and ends on line 146, looks a lot like a Java class definition (at first glance, anyway) that would do the same thing. But this is Groovy, so you have no imports up at the beginning, just comments. Plus, the details illustrate some more Groovyness.
+
+Line 15 creates the private final variable **rgb** that contains the color value supplied to the class constructor. You'll keep this value as **Map** with keys `r`, `g`, and `b` to access the RGB values. Keep the values as double values between 0 and 1 so that 0 would indicate a hexadecimal value of **#00** or an integer value of 0 and 1 would mean a hexadecimal value of **#ff** or an integer value of 255. Use double to avoid accumulating rounding errors when converting inside the class.
+
+Similarly, line 16 creates the private final variable **hsv** that contains the same color value but in HSV format–also a **Map**, but with keys `h`, `s`, and `v` to access the HSV values, which will be kept as double values between 0 and 360 (hue) and 0 and 1 (saturation and value).
+
+Lines 21-28 define a **Color** constructor to be called when passing in an int argument. For example, you might use this as:
+
+```
+def blue = new Color(0x0000ff)
+```
+
+- On lines 22-23, check to make sure the argument passed to the constructor is in the allowable range for a 24-bit integer RGB constructor, and throw an exception if not.
+- On line 25, initialize the **rgb** private variable as the desired RGB Map, using bit shifts and dividing each by a double value 255 to scale the numbers between 0 and 1.
+- On line 26, convert the RGB triplet to HSV and assign it to the **hsv** private variable.
+
+Lines 39-69 define another **Color** constructor to be called when passing in either an RGB or HSV triple as a **Map**. You might use this as:
+
+```
+def green = new Color([r: 0, g: 255, b: 0])
+```
+
+or
+
+```
+def cyan = new Color([h: 180, s: 100, v: 100])
+```
+
+Or similarly with double values scaled between 0 and 1 instead of integers between 0 and 255 in the RGB case and between 0 and 360, 0 and 1, and 0 and 1 for hue, saturation, and value, respectively.
+
+This constructor looks complicated, and in a way, it is. It checks the **keySet()** of the map argument to decide whether it denotes an RGB or HSV tuple. It checks the class of the values passed in to determine whether the values are to be interpreted as integers or double values and, therefore, whether they are scaled into 0-1 (or 0-360 for hue).
+
+Arguments that can't be sorted out using this checking are deemed incorrect, and an exception is thrown.
+
+Worth noting is the handy streamlining provided by Groovy:
+
+```
+def types = triplet.values().collect { it.class }
+```
+
+This uses the **values()** method on the map to get the values as a **List** and then the **collect()** method on that **List** to get the class of each value so that they can later be checked against **[Integer,Integer,Integer]** or **[Double,Double,Double]** to ensure that arguments meet expectations.
+
+Here is another useful streamlining provided by Groovy:
+
+```
+def minV = triplet.min { it.value }.value
+```
+
+The **min()** method is defined on **Map**; it iterates over the **Map** and returns the **MapEntry**—a (key, value) pair—having the minimum value encountered. The **.value** on the end selects the value field from that **MapEntry**, which gives something to check against later to determine whether the values need to be normalized.
+
+Both rely on the Groovy Closure, similar to a Java lambda–a kind of anonymous procedure defined where it is called. For example, **collect()** takes a single **Closure** argument and passes it to each **MapEntry** encountered, known as the parameter within the closure body. Also, the various implementations of the Groovy Collection interface, including here **Map**, define the **collect()** and **min()** methods that iterate over the elements of the **Collection** and call the **Closure** argument. Finally, the syntax of Groovy supports compact and low-ceremony invocations of these various features.
+
+Lines 70-106 define five "getters" that return the color used to create the instance in one of five formats:
+
+- **getHex()** returns an int corresponding to a 24-bit HTML RGB color.
+- **getRgb()** returns a **Map** with keys `r`, `g`, `b` and corresponding double values in the range 0-1.
+- **getRgbI()** returns a **Map** with keys `r`, `g`, `b` and corresponding int values in the range 0-255.
+- **getHsv()** returns a **Map** with keys `h`, `s`, `v` and corresponding double values in the range 0-360, 0-1 and 0-1, respectively.
+- **getHsvI()** returns a **Map** with keys `h`, `s`, `v` and corresponding int values in the range 0-360, 0-100 and 0-100, respectively.
+
+Lines 112-129 define a static private (internal) method **rgb2hsv()** that converts an RGB triplet to an HSV triplet. This follows the algorithm described in the Wikipedia article [section on Hue and chroma][7], except that the algorithm there yields negative hue values when the green value is less than the blue value, so the version is modified slightly. This code isn't particularly Groovy other than using the **max()** and **min()****Map** methods and returning a **Map** instance declaratively without a return statement.
+
+This method is used by the two getter methods to return the **Color** instance value in the correct form. Since it doesn't refer to any instance fields, it is static.
+
+Similarly, lines 134-145 define another private (internal) method **hsv2rgb()**, that converts an HSV triplet to an RGB triplet, following the algorithm described in the Wikipedia article [section on HSV to RGB conversion][8]. The constructor uses this method to convert HSV triple arguments into RGB triples. Since it doesn't refer to any instance fields, it is static.
+
+That's it. Here's an example of how to use this class:
+
+```
+ 1 def favBlue = new Color(0x0080a3)
+
+ 2 def favBlueRgb = favBlue.rgb
+ 3 def favBlueHsv = favBlue.hsv
+
+ 4 println "favBlue hex = ${sprintf('0x%06x',favBlue.hex)}"
+ 5 println "favBlue rgbt = ${favBlue.rgb}"
+ 6 println "favBlue hsvt = ${favBlue.hsv}"
+
+ 7 int spokeCount = 8
+ 8 double dd = 360d / spokeCount
+ 9 double d = favBlue.hsv.h
+ 10 for (int spoke = 0; spoke < spokeCount; spoke++) {
+ 11 def color = new Color(h: d, s: favBlue.hsv.s, v: favBlue.hsv.v)
+ 12 println "spoke $spoke $d° hsv ${color.hsv}"
+ 13 println " hex ${sprintf('0x%06x',color.hex)} hsvI ${color.hsvI} rgbI ${color.rgbI}"
+ 14 d = (d + dd) % 360d
+ 15 }
+```
+
+As my starting value, I've chosen the lighter blue from the [opensource.com][9] header **#0080a3**, and I'm printing a set of seven more colors that give maximum separation from the original blue. I call each position going around the color wheel a spoke and compute its position in degrees in the variable **d**, which is incremented each time through the loop by the number of degrees **dd** between each spoke.
+
+As long as `Color.groovy` and this test script are in the same directory, you can compile and run them as follows:
+
+```
+$ groovy test1Color.groovy
+favBlue hex = 0x0080a3
+favBlue rgbt = [r:0.0, g:0.5019607843137255, b:0.6392156862745098]
+favBlue hsvt = [h:192.88343558282207, s:1.0, v:0.6392156862745098]
+spoke 0 192.88343558282207° hsv [h:192.88343558282207, s:1.0, v:0.6392156862745098]
+ hex 0x0080a3 hsvI [h:193, s:100, v:64] rgbI [r:0, g:128, b:163]
+spoke 1 237.88343558282207° hsv [h:237.88343558282207, s:1.0, v:0.6392156862745098]
+ hex 0x0006a3 hsvI [h:238, s:100, v:64] rgbI [r:0, g:6, b:163]
+spoke 2 282.8834355828221° hsv [h:282.8834355828221, s:1.0, v:0.6392156862745098]
+ hex 0x7500a3 hsvI [h:283, s:100, v:64] rgbI [r:117, g:0, b:163]
+spoke 3 327.8834355828221° hsv [h:327.8834355828221, s:1.0, v:0.6392156862745098]
+ hex 0xa30057 hsvI [h:328, s:100, v:64] rgbI [r:163, g:0, b:87]
+spoke 4 12.883435582822074° hsv [h:12.883435582822074, s:1.0, v:0.6392156862745098]
+ hex 0xa32300 hsvI [h:13, s:100, v:64] rgbI [r:163, g:35, b:0]
+spoke 5 57.883435582822074° hsv [h:57.883435582822074, s:1.0, v:0.6392156862745098]
+ hex 0xa39d00 hsvI [h:58, s:100, v:64] rgbI [r:163, g:157, b:0]
+spoke 6 102.88343558282207° hsv [h:102.88343558282207, s:1.0, v:0.6392156862745098]
+ hex 0x2fa300 hsvI [h:103, s:100, v:64] rgbI [r:47, g:163, b:0]
+spoke 7 147.88343558282207° hsv [h:147.88343558282207, s:1.0, v:0.6392156862745098]
+ hex 0x00a34c hsvI [h:148, s:100, v:64] rgbI [r:0, g:163, b:76]
+```
+
+You can see the degree position of the spokes reflected in the HSV triple. I've also printed the hex RGB value and the int version of the RGB and HSV triples.
+
+I could have built this in Java. Had I done so, I probably would have created separate **RgbTriple** and **HsvTriple** helper classes because Java doesn't provide the declarative syntax for **Map**. That would have made finding the min and max values more verbose. So, as usual, the Java would have been more lengthy without improving readability. There would have been three constructors, though, which might be a more straightforward proposition.
+
+I could have used 0-1 for the hue as I did for saturation and value, but somehow I like 0-360 better.
+
+Finally, I could have added–and I may still do so one day–other conversions, such as HSL.
+
+### Wrap up
+
+Color wheels are useful in many situations and building one in Groovy is a great exercise to learn both how the wheel works and the, well, grooviness of Groovy. Take your time; the code above is long. However, you can build your own practical color calculator and learn a lot along the way.
+
+#### Groovy resources
+
+The Apache Groovy language site provides [a good tutorial-level overview][10] of working with Collection, particularly Map classes. This documentation is quite concise and easy to follow, at least partly because the facility it is documenting has been designed to be itself concise and easy to use!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/groovy-color-wheel
+
+作者:[Chris Hermansen][a]
+选题:[lkxed][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/clhermansen
+[b]: https://github.com/lkxed
+[1]: https://sdkman.io/
+[2]: https://www.gimp.org/
+[3]: https://opensource.com/sites/default/files/2022-12/1controls.png
+[4]: https://opensource.com/sites/default/files/2022-12/2foregroundcolor.png
+[5]: https://opensource.com/sites/default/files/2022-12/3changeforegroundcolor_0.png
+[6]: https://en.wikipedia.org/wiki/HSL_and_HSV
+[7]: https://en.wikipedia.org/wiki/HSL_and_HSV#Hue_and_chroma
+[8]: https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB
+[9]: https://opensource.com/
+[10]: https://groovy-lang.org/databases.html
+
From 919954f94f57c00b5c3f98ceae4af2e6a776ba33 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sun, 18 Dec 2022 23:18:44 +0800
Subject: [PATCH 083/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221218.1=20=E2=AD=90=EF=B8=8F=20Try=20this=20Python-?=
=?UTF-8?q?based=20file=20manager=20on=20Linux.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...Try this Python-based file manager on Linux.md | 108 ++++++++++++++++++
1 file changed, 108 insertions(+)
create mode 100644 sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
diff --git a/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
new file mode 100644
index 0000000000..e68b102a96
--- /dev/null
+++ b/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
@@ -0,0 +1,108 @@
+[#]: subject: "Try this Python-based file manager on Linux"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Try this Python-based file manager on Linux
+======
+
+Dragonfly Navigator is a general-purpose file manager written in Python and Qt. It's easy to install, easy to use, and a great example of what Python can do.
+
+Python is a popular language for several reasons, but I think one of its primary strengths is that it's equally useful to beginner-level programmers and to experienced coders. There's something exciting about a language you can take from [drawing basic geometric shapes][1] to [scraping the web][2] to programming a zombie apocalypse [video game][3], or writing desktop applications you can use every day. And that's what Dragonfly Navigator is: a desktop utility that everyone can use.
+
+### Installing Dragonfly Navigator
+
+To install Dragonfly Navigator, first download the source code from its [Git repository][4]. If you're on Debian Linux or similar, download the `.deb` file. If you're using Fedora, CentOS, Mageia, OpenMandriva, or similar, then download the `.tar.gz` file.
+
+Dragonfly Navigator has a few dependencies. Because you aren't installing it through your package manager, it's up to you to resolve those. There are just two, so use your package manager (`dnf` or `apt`) to find and install them:
+
+- PyQt5, also called `python-qt5`
+- Python PIL, also called `pillow`
+
+### Launching Dragonfly Navigator
+
+To launch Dragonfly Navigator, either install the `.deb` file (on Debian-based systems) or unarchive the `.tar.gz` file:
+
+```
+$ tar xvf dragonfly*gz
+```
+
+On Debian-based systems, Dragonfly Navigator appears in your application menu. ON other systems, you must launch it manually unless you [manually install it][5].
+
+For now, I'm not installing it, so I launch it manually:
+
+```
+$ cd dragonfly
+$ ./dragonfly
+```
+
+![Dragonfly Navigator is a two-panel file manager][6]
+
+### Dual pane
+
+Dragonfly Navigator is a two-panel file manager, meaning that it's always showing you two directories. At launch, both directories happen to be your home directory. You can browse through files and folders in either panel. They function exactly the same, and it only matters which panel you're "in" when you start copying or moving files.
+
+### Open a directory
+
+To open a directory, double-click it. By default, the directory opens in that same pane. If you want to utilize the two-panel layout, though, hold down the **Ctrl** key as you double-click to display its contents in the other panel.
+
+### Open a file
+
+To open a file, double-click or right-click on it.
+
+Yes, you can right-click a file to open it. That takes some getting used to, if you're used to a right-click bringing up a contextual menu. There is no contextual menu in Dragonfly Navigator, though, and you might be surprised at how much time you feel like you're saving yourself when you reduce the very common action of opening a file to just one click. It may seem silly now, but trust me you'll grow to cherish it.
+
+### Quick preview
+
+Some files are available for a quick preview so you don't have to open them in any particular application. To preview a file, hover your mouse over it and press the **Alt** key on your keyboard. A preview appears in the opposite panel.
+
+![The second panel of Dragonfly Navigator can be used as a preview pane.][7]
+
+### Copying and moving files
+
+To copy or move a file from one directory to another (or a directory to a directory), there are a few steps.
+
+- In one panel, navigate to the destination directory. This is the location you want to copy a file _to_.
+- In the other panel, select the file you want to copy.
+- Click the **Copy** button in the middle strip of Dragonfly Navigator.
+
+For moving a file, follow the same steps but click the **Move** button instead.
+
+If you're not used to a dual-panel file manager, this feels unfamiliar at first. But if you think about it, there are several steps required to copy a file in your usual file manager (find the file, open another window, drag-and-drop, and so on.) After you do it a few times, it becomes second nature.
+
+### Selecting files
+
+Normally, you click a file or folder to make it your active selection. That's probably no different than your current file manager, or at least to some file manager you've used in the past.
+
+To select multiple items in a range, click one file, and then hold the **Shift** key and click another file. All items between the two files you clicked are also selected.
+
+To select multiple arbitrary files, hold the **Ctrl** key and click on the files you want selected.
+
+### The power of Qt and Python
+
+The Qt toolkit is a powerful programming utility, and Python is capable of creating great applications with it. I've only covered the basics of Dragonfly Navigator in this article, so download it, read the docs, click around, explore it, and maybe you'll have found a fun new file manager.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/17/10/python-101#turtle
+[2]: https://opensource.com/article/20/5/web-scraping-python
+[3]: https://opensource.com/downloads/python-gaming-ebook
+[4]: https://github.com/suncore/dflynav/releases
+[5]: https://opensource.com/article/18/1/how-install-apps-linux
+[6]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator.webp
+[7]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator-preview.webp
From 2b4955e3253e1270c369be6543c7e614418fd59a Mon Sep 17 00:00:00 2001
From: CanYellow
Date: Mon, 19 Dec 2022 08:24:21 +0800
Subject: [PATCH 084/266] Forth Translation Request
---
...210103 How open principles will impact the future of work.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20210103 How open principles will impact the future of work.md b/sources/tech/20210103 How open principles will impact the future of work.md
index 9217b08384..c7ecf68511 100644
--- a/sources/tech/20210103 How open principles will impact the future of work.md
+++ b/sources/tech/20210103 How open principles will impact the future of work.md
@@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
-[#]: translator: ( )
+[#]: translator: (CanYellow)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
From f6b365089bc9028a7a59978662951463673d4328 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Mon, 19 Dec 2022 08:36:23 +0800
Subject: [PATCH 085/266] translated
---
...your Linux PC with the PCManFM file manager.md | 78 -------------------
...your Linux PC with the PCManFM file manager.md | 78 +++++++++++++++++++
2 files changed, 78 insertions(+), 78 deletions(-)
delete mode 100644 sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
create mode 100644 translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
diff --git a/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md b/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
deleted file mode 100644
index f97b3107bb..0000000000
--- a/sources/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
+++ /dev/null
@@ -1,78 +0,0 @@
-[#]: subject: "Simplify your Linux PC with the PCManFM file manager"
-[#]: via: "https://opensource.com/article/22/12/linux-file-manager-pcmanfm"
-[#]: author: "Seth Kenlon https://opensource.com/users/seth"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Simplify your Linux PC with the PCManFM file manager
-======
-
-The PCMan File Manager, or PCManFM for short, is a fast and lightweight file manager that's full of features. It was developed for the [LXDE][1] desktop environment, but is a stand-alone application and can be used with the desktop or window manager of your choice.
-
-### Install PCManFM
-
-On Linux, you can probably find PCManFM in your software repository. For instance, on Fedora, Mageia, and similar:
-
-```
-$ sudo dnf install pcmanfm
-```
-
-On Debian, Elementary, and similar:
-
-```
-$ sudo apt install pcmanfm
-```
-
-![Image of the PCMan file manager.][2]
-
-PCManFM doesn't have to replace your desktop's file manager, but some distributions assume that when you install a "third party" file manager, you want it to take precedence over the default. Depending on the desktop you're using, there are different ways of setting your default file manager. Usually, it's in **System Settings** under **Default Applications**.
-
-If your desktop environment or window manager has no interface to select your default applications, you can set your preference in the `~/.local/share/applications/mimeapps.list` file. To designate a file manager as default, place it at the top of the `[Default Applications]` section, first specifying the file type and then the name of the application file (as it appears in `/usr/share/applications`) you want to use to open it:
-
-```
-inode/directory=myfilemanager.desktop;
-```
-
-### PCManFM
-
-If you're a fan of GNOME 2 or the Mate project's [Caja file manager][3], then PCManFM is a great alternative to consider. PCManFM is a lot like Caja in design, but it's not bound to the desktop in the way Caja is, so it's available even on the latest GNOME desktop.
-
-The default layout of PCManFM has a helpful toolbar near the top of the window, a side panel providing quick access to common directories and drives, and a status bar with details about your current selection. You can hide or show any of these elements using the **View** menu.
-
-### Tabs and panels
-
-PCManFM also uses tabs. If you've never used a tabbed file manager before, then think of a web browser and how it uses tabs to let you open multiple web pages in just one window. PCManFM can similarly open several directories in the same window.
-
-To transfer a file or folder from one tab to another, just drag the file's icon to the tab and hover. After a nominal delay, PCManFM brings the target tab to the front so you can continue your drag-and-drop operation. It takes some getting used to if you're not used to interacting with tabs in a file manager, but it doesn't take long, and it's a very powerful feature for decluttering your workspace.
-
-Another nice feature of the PCManFM interface is its ability to split a window into two panels. Each panel is effectively a tab, but each one only takes up half of the window.
-
-![Image of dual panels in PCMan.png][4]
-
-This makes dragging from one to the other just as easy and natural as dragging a file into a folder. I find it useful for comparing the contents of folders, too.
-
-### File management with PCMan
-
-PCManFM is a great little file manager with all the basic features you need on an everyday basis. It's a natural replacement for a file manager you might find too complicated, as well as a great option on [old computers][5] that might struggle with a file manager that's constantly drawing thumbnails and refreshing and generating animations. PCMan focuses on the core task of a file manager: managing files. Try it out on your Linux PC.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/linux-file-manager-pcmanfm
-
-作者:[Seth Kenlon][a]
-选题:[lkxed][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/seth
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/19/12/lxqt-lxde-linux-desktop
-[2]: https://opensource.com/sites/default/files/2022-10/pcmanfilemanager.png
-[3]: https://opensource.com/article/22/12/linux-file-manager-caja
-[4]: https://opensource.com/sites/default/files/2022-10/%E2%80%8BDual.panel_.in%20PCManFM.png
-[5]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity
diff --git a/translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md b/translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
new file mode 100644
index 0000000000..760c9511e0
--- /dev/null
+++ b/translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
@@ -0,0 +1,78 @@
+[#]: subject: "Simplify your Linux PC with the PCManFM file manager"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-pcmanfm"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+使用 PCManFM 文件管理器简化你的 Linux PC
+======
+
+PCMan 文件管理器,或简称 PCManFM,是一个功能齐全的快速轻量级文件管理器。它是为 [LXDE][1] 桌面环境开发的,但它是一个独立的应用,可以与你选择的桌面或窗口管理器一起使用。
+
+### 安装 PCManFM
+
+在 Linux 上,你可能可以在软件仓库中找到 PCManFM。例如,在 Fedora、Mageia 和类似软件上:
+
+```
+$ sudo dnf install pcmanfm
+```
+
+在 Debian、Elementary 和类似系统上:
+
+```
+$ sudo apt install pcmanfm
+```
+
+![Image of the PCMan file manager.][2]
+
+PCManFM 不必替换你的桌面文件管理器,但某些发行版假定当你安装“第三方”文件管理器时,你希望它优先于默认设置。根据你使用的桌面,有不同的方法来设置默认文件管理器。通常,它位于**默认应用**下的**系统设置**中。
+
+如果你的桌面环境或窗口管理器没有选择默认应用的界面,你可以在 `~/.local/share/applications/mimeapps.list` 文件中设置你的首选项。要将文件管理器指定为默认,请将其放在 `[Default Applications]` 部分的顶部,首先指定文件类型,然后指定你像用于打开的应用文件的名称(在 `/usr/share/applications` 下):
+
+```
+inode/directory=myfilemanager.desktop;
+```
+
+### PCManFM
+
+如果您是 GNOME 2 或 Mate 项目的 [Caja 文件管理器][3]的粉丝,那么 PCManFM 是一个不错的选择。PCManFM 在设计上很像 Caja,但它不像 Caja 那样绑定到桌面,所以它甚至可以在最新的 GNOME 桌面上使用。
+
+PCManFM 的默认布局在窗口顶部附近有一个有用的工具栏,一个提供对常用目录和驱动器的快速访问的侧面板,以及一个包含有关你当前选择的详细信息的状态栏。你可以使用**视图**菜单隐藏或显示这些元素中的任何一个。
+
+### 选项卡和面板
+
+PCManFM 也使用选项卡。如果你以前从未使用过选项卡式文件管理器,那么想想 Web 浏览器以及它如何使用选项卡让你在一个窗口中打开多个网页。PCManFM 可以类似地在同一窗口中打开多个目录。
+
+要将文件或文件夹从一个选项卡传输到另一个选项卡,只需将文件的图标拖动到选项卡并悬停即可。少许延迟后,PCManFM 将目标选项卡置于最前面,以便你可以继续进行拖放操作。如果你不习惯与文件管理器中的选项卡进行交互,则需要一些时间来适应,但这不会花很长时间,而且它是整理工作区的一项非常强大的功能。
+
+PCManFM 界面的另一个不错的功能是它能够将一个窗口分成两个面板。每个面板实际上都是一个选项卡,但每个面板只占窗口的一半。
+
+![Image of dual panels in PCMan.png][4]
+
+这使得从一个面板拖到另一个面板就像将文件拖到文件夹中一样简单自然。我发现它对于比较文件夹的内容也很有用。
+
+### 使用 PCMan 进行文件管理
+
+PCManFM 是一款很棒的小型文件管理器,具有你日常所需的所有基本功能。它是你可能会觉得过于复杂的文件管理器的自然替代品,也是[旧计算机][5]上的一个很好的选择,这些电脑可能对不断绘制缩略图、刷新和生成动画的文件管理器感到挣扎。PCMan 专注于文件管理器的核心任务:管理文件。在你的 Linux 电脑上试试吧。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-pcmanfm
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/19/12/lxqt-lxde-linux-desktop
+[2]: https://opensource.com/sites/default/files/2022-10/pcmanfilemanager.png
+[3]: https://opensource.com/article/22/12/linux-file-manager-caja
+[4]: https://opensource.com/sites/default/files/2022-10/%E2%80%8BDual.panel_.in%20PCManFM.png
+[5]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity
From 2fb704182e0dfce1a9c823f1d37ec3599600981f Mon Sep 17 00:00:00 2001
From: geekpi
Date: Mon, 19 Dec 2022 08:42:04 +0800
Subject: [PATCH 086/266] translating
---
...Beautiful Cross-Platform Music Player With Essential Features.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
index 9b02d56dcc..ddb9a321c0 100644
--- a/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
+++ b/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
@@ -2,7 +2,7 @@
[#]: via: "https://itsfoss.com/harmonoid/"
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From ea1ff36bc791891e2ea4cdcccd195bb2940ad049 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 19 Dec 2022 09:26:13 +0800
Subject: [PATCH 087/266] P
@geekpi
https://linux.cn/article-15361-1.html
---
....2 ⭐️ How to Access UEFI Settings in Linux Systems.md | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
rename {translated/tech => published}/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md (95%)
diff --git a/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/published/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
similarity index 95%
rename from translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
rename to published/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
index b18ba3bf7f..e1dadbc783 100644
--- a/translated/tech/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
+++ b/published/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
@@ -4,12 +4,14 @@
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
-[#]: publisher: " "
-[#]: url: " "
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15361-1.html"
如何在 Linux 系统中访问 UEFI 设置
======
+![][0]
+
想要在固件级别检查启动顺序或电源设置? **你可以在系统启动时按 `F2`、`F10` 或 `Del` 按键访问 UEFI 设置**。
这种方法的问题是你可能不知道确切的键,并且必须警惕在正确的时间按下这些键。
@@ -109,7 +111,7 @@ via: https://itsfoss.com/access-uefi-from-linux/
[a]: https://itsfoss.com/author/sagar/
[b]: https://github.com/lkxed
-[1a]: https://external-preview.redd.it/dxmsKYDmzgfb1thu3EFI8Ni-DNfprNX8W8xDtff4QWU.gif?format=mp4&s=c31204644ac6a2a348133986714ff97cf3c4a48a
+[1a]: https://img.linux.net.cn/data/attachment/album/202212/19/092256nkeoyuou6h3ykud6.gif
[1]: https://itsfoss.com/what-is-grub/
[2]: https://itsfoss.com/wp-content/uploads/2022/12/uefi-firmware-settings-grub-linux.webp
[3]: https://itsfoss.com/check-uefi-or-bios/
@@ -120,3 +122,4 @@ via: https://itsfoss.com/access-uefi-from-linux/
[8]: https://itsfoss.com/wp-content/uploads/2022/12/create-a-desktop-shortcut-to-boot-into-uefi-settings.png
[9]: https://linuxhandbook.com/nano-save-exit/
[10]: https://itsfoss.com/wp-content/uploads/2022/12/boot-into-uefi-firmware-from-system-menu.png
+[0]: https://img.linux.net.cn/data/attachment/album/202212/19/092450oi0c0c7cp4ng2nem.jpg
\ No newline at end of file
From e550733f7b923ed02b2d491dbe24dfe70697e940 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 19 Dec 2022 09:39:23 +0800
Subject: [PATCH 088/266] P
@chai001125
https://linux.cn/article-15362-1.html
---
...8.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
rename {translated/tech => published}/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md (97%)
diff --git a/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/published/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
similarity index 97%
rename from translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
rename to published/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
index 8073fbf1c6..d864f7db50 100644
--- a/translated/tech/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
+++ b/published/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
@@ -3,13 +3,15 @@
[#]: author: "Alexandra https://opensource.com/users/ahajkova"
[#]: collector: "lkxed"
[#]: translator: "chai001125"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15362-1.html"
GDB 的 7 个单步调试命令
======
+![][0]
+
> 即使是复杂的函数,也有几种方法可以单步调试,所以下次在排除代码故障时,可以尝试一下这些 GDB 技术。
**调试器** 是一个可以运行你的代码并检查问题的软件。[GNU Debugger][1](GBD)是最流行的调试器之一,在这篇文章中,我研究了 GDB 的 `step` 命令和其他几种常见情况的相关命令。`step` 是一个被广泛使用的命令,但它有一些人们不太了解的地方,可能会使得他们十分困惑。此外,还有一些方法可以**在不使用 `step` 命令的情况下进入一个函数**,比如使用不太知名的 `advance` 命令。
@@ -257,3 +259,4 @@ via: https://opensource.com/article/22/12/gdb-step-command
[a]: https://opensource.com/users/ahajkova
[b]: https://github.com/lkxed
[1]: https://opensource.com/article/21/3/debug-code-gdb
+[0]: https://img.linux.net.cn/data/attachment/album/202212/19/093831nrjrmozx1mixmgii.jpg
\ No newline at end of file
From 5cd21731c167c06dc4ef4617a2c495bf1487aeb4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Mon, 19 Dec 2022 18:31:14 +0800
Subject: [PATCH 089/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221219.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Us?=
=?UTF-8?q?e=20Rexx=20for=20scripting=20in=202023.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...9.0 ⭐️⭐️ Use Rexx for scripting in 2023.md | 169 ++++++++++++++++++
1 file changed, 169 insertions(+)
create mode 100644 sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md
diff --git a/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md b/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md
new file mode 100644
index 0000000000..6ede79a4bf
--- /dev/null
+++ b/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md
@@ -0,0 +1,169 @@
+[#]: subject: "Use Rexx for scripting in 2023"
+[#]: via: "https://opensource.com/article/22/12/rexx-scripting"
+[#]: author: "Howard Fosdick https://opensource.com/users/howtech"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Use Rexx for scripting in 2023
+======
+
+In a [previous article][1], I showed how the Rexx scripting language is both powerful and easy to use. It uses specific techniques to reconcile these two goals that are often considered in conflict.
+
+This article walks you through two example Rexx scripts so you can get a feel for the language. Rexx purports to be highly capable yet easy to work with.
+
+### An example of a Rexx script
+
+The [LISP programming language][2] is famous for its overuse of parentheses. It can be a real challenge for programmers to ensure they're all matched up correctly.
+
+This short script reads a line of LISP code from the user and determines whether the parentheses in the input are properly matched. If the parentheses aren't properly balanced, the program displays a syntax error.
+
+Below are three sample interactions with the program. In the first, the LISP code I entered was correctly typed. But the next two contain mismatched parentheses that the Rexx script identifies:
+
+```
+Enter a line to analyze:
+(SECOND (LAMBDA (LIS) (FIRST (CDR LIS)) ))
+Parentheses are balanced
+
+Enter a line to analyze:
+((EQSTR (CAR LIS1) (CAR LIS2))
+Syntax error: too many left parens, not balanced
+
+Enter a line to analyze:
+(EQSTR (CAR LIS1) CAR LIS2))
+Syntax error: right paren before or without left paren
+```
+
+Here's the Rexx program:
+
+```
+counter = 0 /* counts parentheses */
+
+say 'Enter a line to analyze:' /* prompts user for input */
+pull input_string /* reads line of user input */
+
+length_of_string = length(input_string)
+
+/* process each character of the input line, one at a time */
+
+do j = 1 to length_of_string while counter >= 0
+
+ character = substr(input_string,j,1)
+ if character = '(' then counter = counter + 1
+ if character = ')' then counter = counter - 1
+
+end
+
+/* display the appropriate message to the user */
+
+if counter = 0 then
+ say 'Parentheses are balanced'
+else if counter < 0 then
+ say 'Syntax error: right paren before or without left paren'
+else
+ say 'Syntax error: too many left parens, not balanced'
+```
+
+First, the program prompts the user to enter a line of input with the `say` instruction. Then it reads it with a `pull` instruction.
+
+`The say` and `pull` instructions are used for conversational input/output, or direct interaction with users. Rexx also supports character-oriented and line- or record- oriented I/O.
+
+Next, the script uses the `length` function to place the length of the input line into the variable `length_of_string`.
+
+The `do` loop processes each character from the input line, one at a time. It increments the `counter` each time it encounters a left parenthesis, and decrements it each time it recognizes a right parenthesis.
+
+If the `counter` ends up as zero after processing the entire input line, the program knows that any parentheses in the input line match up correctly. If the `counter` is not 0 after processing, the input line has mismatched parentheses.
+
+The final `if` statements display the proper message to the user. One could code these `if` statements in any number of styles, as per individual preference. (The main requirement is that whenever multiple statements are coded within a branch, they must be enclosed in a `do...end` group.)
+
+This program shows that Rexx is free-form and case-insensitive. It does not rely on reserved words, so you're free to use common words like `counter` or `character` to represent variables.
+
+The one key requirement Rexx does impose is that any function must immediately be followed by a left parenthesis. Examples in the program are the `length` and `substr` functions. Put a space between a function name and its following parenthesis, and Rexx won't recognize the function.
+
+Outside of a few minimal requirements like these, Rexx requires very little from the programmer in terms of syntax, special characters, or restrictive coding rules.
+
+Rexx programs look and read like pseudo-code. This makes them relatively easy to read and work with.
+
+### A real-world example of a Rexx script
+
+Here's a program from the real world:
+
+Les Koehler, a Rexx user, had a legacy accounting program that matched accounting records on hand against those that a vendor sent to him daily. The legacy program ran for several hours every day to process 25,000 records. It employed a sequential "walk the list" technique to match one set of records against the other.
+
+Les replaced the legacy program with a Rexx script. The Rexx script performs matching by using associative arrays:
+
+```
+/* Create an associative array reflecting */
+/* the values in the first list of names */
+/* by Les Koehler */
+
+flag. = 0 /* Create array, set all items to 0 */
+do a = 1 to list_a.0 /* Process all existing records */
+ aa = strip(list_a.a) /* Strip preceding/trailing blanks */
+ flag.aa = 1 /* Mark each record with a 1 */
+end
+
+/* Try to match names in the second list */
+/* against those in the associative array */
+
+m = 0 /* M counts number of missing names */
+do b = 1 to list_b.0 /* Look for matching name from LIST_B */
+ bb = strip(list_b.b) /* Put LIST_B name into variable BB */
+ if \ flag.bb then do /* If name isn't in FLAG array */
+ m = m+1 /* add 1 to count of missing names */
+ missing.m = bb /* add missing name to MISSING array */
+ end
+end
+
+missing.0 = m /* Save the count of unmatched names */
+```
+
+Les was able to reduce processing time from several hours down to a matter of seconds.
+
+The first line of code (`flag. = 0`) creates a new array called `flag` and initializes every element in that array to `0`.
+
+The array `list_a` contains all the existing accounting records. Its first element (`list_a.0`) by convention contains the number of elements in the array.
+
+So the first `do` loop processes all elements in the array of existing records (`list_a`) and marks each of them as existing in the `flag` array. The statement `flag.aa = 1` marks the content-addressable item in the `flag` array as present.
+
+The second `do` loop peddles through each item in the set of new records, contained in the array called `list_b`.
+
+The `if` statement checks whether an item from the second array of records is marked present in the `flag` array. If not, the program increments the number of items present in the new list of accounting records that do not exist in the old list of records. And it puts the missing item into the `missing` array: `missing.m = bb`.
+
+The final statement (`missing.0 = m`) simply updates the number of items in the `missing` array, by convention stored in array position 0.
+
+### Rexx improvements
+
+Why is this Rexx program so fast compared to the legacy code it replaces? First, the associative arrays allow direct lookup of a new record against the old records. Direct access is much faster than the sequential "walk-the-list" technique it replaced.
+
+Secondly, all the array elements reside in memory. Once the files of the old and new accounting records have been initialized into the Rexx arrays, no further disk I/O is needed. Disk I/O is always orders of magnitude slower than memory access.
+
+A Rexx array expands as much as memory allows. This script takes advantage of modern computers with seemingly endless amounts of RAM, and frees the programmer from managing memory.
+
+### Conclusion
+
+I hope these two simple programs have shown how easy Rexx is to read, write, and maintain. Rexx is designed to put the burden of programming on the machine instead of the programmer. Yet the language still has plenty of power, due to the design techniques I've described in this series of articles.
+
+For free Rexx downloads, tools, tutorials, and more, visit [RexxInfo.org][3]. You can join the [Rexx Language Association][4] for free.
+
+_This article is dedicated to the memory of Les Koehler, who was active with Rexx and the Rexx community since their very earliest days._
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/rexx-scripting
+
+作者:[Howard Fosdick][a]
+选题:[lkxed][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/howtech
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/22/10/rexx-scripting-language
+[2]: https://opensource.com/article/21/5/learn-lisp
+[3]: http://www.RexxInfo.org
+[4]: http://www.RexxLA.org
From 158232818de9b5ad0ec95a65edf6aa31681bb96f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Mon, 19 Dec 2022 18:32:44 +0800
Subject: [PATCH 090/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221219.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Ho?=
=?UTF-8?q?w=20I=20use=20my=20old=20camera=20as=20a=20webcam=20with=20Linu?=
=?UTF-8?q?x.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... How I use my old camera as a webcam with Linux.md | 260 ++++++++++++++++++
1 file changed, 260 insertions(+)
create mode 100644 sources/tech/20221219.1 ⭐️⭐️ How I use my old camera as a webcam with Linux.md
diff --git a/sources/tech/20221219.1 ⭐️⭐️ How I use my old camera as a webcam with Linux.md b/sources/tech/20221219.1 ⭐️⭐️ How I use my old camera as a webcam with Linux.md
new file mode 100644
index 0000000000..51a20186e9
--- /dev/null
+++ b/sources/tech/20221219.1 ⭐️⭐️ How I use my old camera as a webcam with Linux.md
@@ -0,0 +1,260 @@
+[#]: subject: "How I use my old camera as a webcam with Linux"
+[#]: via: "https://opensource.com/article/22/12/old-camera-webcam-linux"
+[#]: author: "Tom Oliver https://opensource.com/users/tomoliver"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How I use my old camera as a webcam with Linux
+======
+
+This year after largely abandoning my MacBook in favor of a NixOS machine, I started getting requests to "turn my camera on" when video calling people. This was a problem because I didn't have a webcam. I thought about buying one, but then I realized I had a perfectly good Canon EOS Rebel XS DSLR from 2008 lying around on my shelf. This camera has a mini-USB port, so naturally, I pondered: Did a DSLR, mini-USB port, and a desktop PC mean I could have a webcam?
+
+There's just one problem. My Canon EOS Rebel XS isn't capable of recording video. It can take some nice pictures, but that's about it. So that's the end of that.
+
+Or is it?
+
+There happens to be some amazing open source software called [gphoto2][1]. Once installed, it allows you to control various supported cameras from your computer and it takes photos and videos.
+
+### Supported cameras
+
+First, find out whether yours is supported:
+
+```
+$ gphoto2 --list-cameras
+```
+
+### Capture an image
+
+You can take a picture with it:
+
+```
+$ gphoto2 --capture-image-and-download
+```
+
+The shutter activates, and the image is saved to your current working directory.
+
+### Capture video
+
+I sensed the potential here, so despite the aforementioned lack of video functionality on my camera, I decided to try `gphoto2 --capture-movie`. Somehow, although my camera does not support video natively, gphoto2 still manages to spit out an MJPEG file!
+
+On my camera, I need to put it in "live-view" mode before gphoto2 records video. This consists of setting the camera to portrait mode and then pressing the **Set** button so that the viewfinder is off and the camera screen displays an image. Unfortunately, though, this isn't enough to be able to use it as a webcam. It still needs to get assigned a video device, such as `/dev/video0`.
+
+### Install ffmpeg and v4l2loopback
+
+Not surprisingly, there's an open source solution to this problem. First, use your package manager to install `gphoto2`, `ffmpeg`, and `mpv`. For example, on Fedora, CentOS, Mageia, and similar:
+
+```
+$ sudo dnf install gphoto2 ffmpeg mpv
+```
+
+On Debian, Linux Mint, and similar:
+
+```
+$ sudo apt install gphoto2 ffmpeg mpv
+```
+
+I use NixOS, so here's my configuration:
+
+```
+# configuration.nix
+...
+environment.systemPackages = with pkgs; [
+ ffmpeg
+ gphoto2
+ mpv
+...
+```
+
+Creating a virtual video device requires the `v4l2loopback` Linux kernel module. At the time of this writing, that capability is not included in the mainline kernel, so you must download and compile it yourself:
+
+```
+$ git clone https://github.com/umlaeute/v4l2loopback
+$ cd v4l2loopback
+$ make
+$ sudo make install
+$ sudo depmod -a
+```
+
+If you're using NixOS like me, you can just add the extra module package in `configuration.nix`:
+
+```
+[...]
+boot.extraModulePackages = with config.boot.kernelPackages;
+[ v4l2loopback.out ];
+boot.kernelModules = [
+ "v4l2loopback"
+];
+boot.extraModprobeConfig = ''
+ options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
+'';
+[...]
+```
+
+On NixOS, run `sudo nixos-rebuild switch` and then reboot.
+
+### Create a video device
+
+Assuming your computer currently has no `/dev/video` device, you can create one on demand thanks to the `v4l2loopback`.
+
+Run this command to send data from `gphoto2` to `ffmpeg`, using a device such as `/dev/video0` device:
+
+```
+$ gphoto2 --stdout --capture-movie |
+ ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0
+```
+
+You get output like this:
+
+```
+ffmpeg version 4.4.1 Copyright (c) 2000-2021 the FFmpeg developers
+ built with gcc 11.3.0 (GCC)
+ configuration: --disable-static ...
+ libavutil 56. 70.100 / 56. 70.100
+ libavcodec 58.134.100 / 58.134.100
+ libavformat 58. 76.100 / 58. 76.100
+ libavdevice 58. 13.100 / 58. 13.100
+ libavfilter 7.110.100 / 7.110.100
+ libavresample 4. 0. 0 / 4. 0. 0
+ libswscale 5. 9.100 / 5. 9.100
+ libswresample 3. 9.100 / 3. 9.100
+ libpostproc 55. 9.100 / 55. 9.100
+Capturing preview frames as movie to 'stdout'. Press Ctrl-C to abort.[mjpeg @ 0x1dd0380] Format mjpeg detected only with low score of 25, misdetection possible!
+Input #0, mjpeg, from 'pipe:':
+ Duration: N/A, bitrate: N/A
+ Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 768x512 ...
+Stream mapping:
+ Stream #0:0 -> #0:0 (mjpeg (native) -> rawvideo (native))[swscaler @ 0x1e27340] deprecated pixel format used, make sure you did set range correctly
+Output #0, video4linux2,v4l2, to '/dev/video0':
+ Metadata:
+ encoder : Lavf58.76.100
+ Stream #0:0: Video: rawvideo (I420 / 0x30323449) ...
+ Metadata:
+ encoder : Lavc58.134.100 rawvideoframe= 289 fps= 23 q=-0.0 size=N/A time=00:00:11.56 bitrate=N/A speed=0.907x
+```
+
+To see the video feed from your webcam, use `mpv`:
+
+```
+$ mpv av://v4l2:/dev/video0 --profile=low-latency --untimed
+```
+
+![Streaming a live feed from the webcam][2]
+
+### Start your webcam automatically
+
+It's a bit annoying to execute a command every time you want to use your webcam. Luckily, you can run this command automatically at startup. I implement it as a `systemd` service:
+
+```
+# configuration.nix
+...
+ systemd.services.webcam = {
+ enable = true;
+ script = ''
+ ${pkgs.gphoto2}/bin/gphoto2 --stdout --capture-movie |
+ ${pkgs.ffmpeg}/bin/ffmpeg -i - \
+ -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0
+ '';
+wantedBy = [ "multi-user.target" ];
+ };
+...
+```
+
+On NixOS, run `sudo nixos-rebuild switch` and then reboot your computer. Your webcam is on and active.
+
+To check for any problems, you can use `systemctl status webcam`. This tells you the last time the service was run and provides a log of its previous output. It's useful for debugging.
+
+### Iterating to make it better
+
+It's tempting to stop here. However, considering the current global crises, it may be pertinent to wonder whether it's necessary to have a webcam on all the time. It strikes me as sub-optimal for two reasons:
+
+- It's a waste of electricity.
+- There are privacy concerns associated with this kind of thing.
+
+My camera has a lens cap, so to be honest, the second point doesn't really bother me. I can always put the lens cap on when I'm not using the webcam. However, leaving a big power-hungry DSLR camera on all day (not to mention the CPU overhead required for decoding the video) isn't doing anything for my electricity bill.
+
+The ideal scenario:
+
+- I leave my camera plugged in to my computer all the time but switched off.
+- When I want to use the webcam, I switch on the camera with its power button.
+- My computer detects the camera and starts the systemd service.
+- After finishing with the webcam, I switch it off again.
+
+To achieve this, you need to use a custom [udev rule][3].
+
+A udev rule tells your computer to perform a certain task when it discovers that a device has become available. This could be an external hard drive or even a non-USB device. In this case, you need it to [recognize the camera through its USB connection][4].
+
+First, specify what command to run when the udev rule is triggered. You can do that as a shell script (`systemctl restart webcam` should work). I run NixOS, so I just create a derivation (a Nix package) that restarts the systemd service:
+
+```
+# start-webcam.nix
+with import { };
+writeShellScriptBin "start-webcam" ''
+ systemctl restart webcam
+ # debugging example
+ # echo "hello" &> /home/tom/myfile.txt
+ # If myfile.txt gets created then we know the udev rule has triggered properly''
+```
+
+Next, actually define the udev rule. Find the device and vendor ID of the camera. Do this by using the `lsusb` command. That command is likely already installed on your distribution, but I don't use it often, so I just install it as needed using `nix-shell`:
+
+```
+$ nix-shell -p usbutils
+```
+
+Whether you already have it on your computer or you've just installed it, run `lsusb`:
+
+```
+$ lsusb
+Bus 002 Device 008: ID 04a9:317b Canon, Inc. Canon Digital Camera[...]
+```
+
+In this output, the vendor ID is 04a9 and the device ID is 317b. That's enough to create the udev rule:
+
+```
+ACTION=="add", SUBSYSTEM=="usb",
+ATTR{idVendor}=="04a9",
+ATTR{idProduct}=="317b",
+RUN+="/usr/local/bin/start-webcam.sh"
+```
+
+Alternatively, if you're using NixOS:
+
+```
+# configuration.nix[...]let
+ startWebcam = import ./start-webcam.nix;[...]
+services.udev.extraRules = ''
+ ACTION=="add", \
+ SUBSYSTEM=="usb", \
+ ATTR{idVendor}=="04a9", \
+ ATTR{idProduct}=="317b", \
+ RUN+="${startWebcam}/bin/start-webcam"'';[...]
+```
+
+Finally, remove the **wantedBy = ["multi-user.target"];** line in your `start-webcam` systemd service. (If you leave it, then the service starts automatically when you next reboot, whether the camera is switched on or not.)
+
+### Reuse old technology
+
+I hope this article has made you think twice before chucking some of your old tech. Linux can breathe life back into technology, whether it's your [computer][5] or something simple like a digital camera or some other peripheral.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/old-camera-webcam-linux
+
+作者:[Tom Oliver][a]
+选题:[lkxed][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/tomoliver
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/20/7/gphoto2-linux
+[2]: https://opensource.com/sites/default/files/2022-12/streaming-webcam.png
+[3]: https://opensource.com/article/18/11/udev
+[4]: https://opensource.com/article/22/1/cameras-usb-ports-obs
+[5]: https://opensource.com/article/22/4/how-linux-saves-earth
+
From 09280994a2ccc586af3854360351c95b1c86fb7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Mon, 19 Dec 2022 18:36:34 +0800
Subject: [PATCH 091/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221219.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Di?=
=?UTF-8?q?scover=20the=20power=20of=20the=20Linux=20SpaceFM=20file=20mana?=
=?UTF-8?q?ger.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ver the power of the Linux SpaceFM file manager.md | 93 +++++++++++++++++++
1 file changed, 93 insertions(+)
create mode 100644 sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md
diff --git a/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md b/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md
new file mode 100644
index 0000000000..d12b5b3c11
--- /dev/null
+++ b/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md
@@ -0,0 +1,93 @@
+[#]: subject: "Discover the power of the Linux SpaceFM file manager"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-spacefm"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Discover the power of the Linux SpaceFM file manager
+======
+
+SpaceFM is a tabbed file manager for Linux using the GTK toolkit, so it fits right in on desktops like [GNOME][1], [Mate][2], [Cinnamon][3], and others. SpaceFM also features a built-in device manager system, so it's particularly good for window managers, like [Fluxbox][4] or [fvwm][5], which typically don't include a graphical device manager. If you're happy with the file managers on Linux, but you want to try one that's a little bit different in design, SpaceFM is worth a look.
+
+### Install SpaceFM
+
+On Linux, you're likely to find **SpaceFM** in your distribution's software repository. On Fedora, Mageia, OpenMandriva, and similar:
+
+```
+$ sudo dnf install spacefm
+```
+
+On Debian and Debian-based systems:
+
+```
+$ sudo apt install spacefm
+```
+
+### Panels
+
+I don't know why SpaceFM is called SpaceFM, but it could be because it makes a concerted effort to let you use every bit of space in its window for something useful. By default, SpaceFM is actually pretty simple, standard-issue file manager. It has a single panel listing your files, a toolbar, and a menu bar.
+
+![SpaceFM is typical in design. At first.][6]
+
+All the "usual" rules apply.
+
+- **Double-click** to open a directory or to open a file in its default application.
+- **Right-click** for a contextual menu providing lots of standard options (copy, paste, rename, view properties, create a new folder, and so on).
+
+The way SpaceFM sets itself apart, though, is its panel system. SpaceFM displays one panel by default. That's the big file window listing your files. But it can have up to four panel views, plus a few bonus panels for some specific tasks.
+
+### Opening a new panel
+
+Instead of seeing one directory in your file manager, you can see two. To bring up another directory in its own pane, press **Ctrl+2** or go to the **View** menu and select **Panel 2**. Alternatively, click the second green dot icon from the left in the menu panel.
+
+With two panels, you can move files from one directory to another without opening a new file manager window, or you can browse two directories to compare their contents.
+
+But why settle for two panels? Maybe you'd rather see _three_ directories at once. To bring up a third directory in a dedicated pane, press **Ctrl+3** or go to the **View** menu and select **Panel 3**. Alternatively, click the third green dot icon from the left in the menu panel. This panel appears at the bottom of the SpaceFM window.
+
+With three panels open, you can move files between several directories, or sort files from a common "dumping ground" (like your Desktop or Downloads folder) into specific directories.
+
+Of course, once you've tried three panels you'll probably find yourself itching for a fourth. To open a fourth directory in its own pane, press **Ctrl+4** or go to the **View** menu and select **Panel 4**. Alternatively, click the fourth green dot icon from the left in the menu panel. This one opens next to Panel 3, splitting your SpaceFM window into even quarters.
+
+![SpaceFM can have up to four panels.][7]
+
+What about a _fifth_ panel? Well, actually SpaceFM stops at four panels. If you really do want a fifth panel, you have to open a new SpaceFM window. However, there are still more panels, used for information other than file listings, to explore.
+
+### Special panels
+
+The **View** menu reveals that in addition to file panels, there are additionally task-specific panels you can choose to display. This includes:
+
+- **Task manager**: Lists ongoing file manager processes. This isn't a general-purpose task manager, so to set nice values or detect a zombie apocalypse of undead PIDs, [htop or top][8] is still your utility of choice.
+- **Bookmarks**: Links to common folders, such as Desktop, Documents, Downloads, and any location you want to keep handy.
+- **Devices**: USB thumb drives and remote file systems.
+- **File tree**: A view of your file system in order of directory inheritance.
+
+These panels open on the left side of SpaceFM, but they do stack. You can have bookmarks, devices, tasks, and a file tree open at once, although it helps to have a very tall SpaceFM window.
+
+### Make space for SpaceFM
+
+SpaceFM is a configurable multi-tasking file manager. It maximizes the information you can build into a single window, and it lets you decide what's important, and when. This article has focused on the panels of SpaceFM because those are, at least in my view, the most unique aspect of the application. However, there's a lot more to SpaceFM, including plugins, preferences, a design mode, keyboard shortcuts, and customization. This isn't a small application, even though it is a lightweight one. Spend some time with SpaceFM, because you never know what you'll discover.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-spacefm
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/19/12/gnome-linux-desktop
+[2]: https://opensource.com/article/19/12/mate-linux-desktop
+[3]: https://opensource.com/article/19/12/cinnamon-linux-desktop
+[4]: https://opensource.com/article/19/12/fluxbox-linux-desktop
+[5]: https://opensource.com/article/19/12/fvwm-linux-desktop
+[6]: https://opensource.com/sites/default/files/2022-10/spacefm.webp
+[7]: https://opensource.com/sites/default/files/2022-10/spacefm-panels.webp
+[8]: https://opensource.com/life/16/2/open-source-tools-system-monitoring
From 6c1b4f6a7cd68d5f86f55c5820bb4831c16a9026 Mon Sep 17 00:00:00 2001
From: MjSeven
Date: Mon, 19 Dec 2022 21:53:45 +0800
Subject: [PATCH 092/266] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... How To Securely Transfer Files With SCP In Linux.md | 537 -----------------
... How To Securely Transfer Files With SCP In Linux.md | 539 ++++++++++++++++++
2 files changed, 539 insertions(+), 537 deletions(-)
delete mode 100644 sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
create mode 100644 translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
diff --git a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
deleted file mode 100644
index 29e1dbb48d..0000000000
--- a/sources/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
+++ /dev/null
@@ -1,537 +0,0 @@
-[#]: subject: "How To Securely Transfer Files With SCP In Linux"
-[#]: via: "https://ostechnix.com/securely-transfer-files-with-scp-in-linux/"
-[#]: author: "sk https://ostechnix.com/author/sk/"
-[#]: collector: "lkxed"
-[#]: translator: "MjSeven"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How To Securely Transfer Files With SCP In Linux
-======
-
-File transfer over a network can be done in various ways and using different protocols. The most commonly used protocols for **copying files remotely** are **Rsync**, **SCP** and **SFTP**. In this guide, we will look at **what is SCP** and how to **securely transfer files between local and remote computers with SCP** in Linux and Unix-like operating systems.
-
-### What is SCP?
-
-SCP, stands for **Secure Copy**, is a command line program to copy files and directories between a local and a remote system or between two remote systems in a secure way in Linux and Unix-like operating systems.
-
-Using `scp` command, you can securely copy a file or a directory,
-
-- from your local system to a remote system,
-- from a remote system to your local system,
-- between remote systems from your local system.
-
-When transferring data with the scp command, the files and directories are both encrypted. So even if your network is compromised, the perpetrators can't get any meaningful data.
-
-SCP is a component of the openSSH program and it uses the SSH protocol to securely transfer files. OpenSSH comes pre-installed with almost all modern Linux and Unix distributions, so don't bother installing it.
-
-#### A word of caution:
-
-According to the **official announcement** from the openSSH developers,
-
-> The **scp protocol is outdated**, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead.
->
-> Link - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1]
-
-However, the majority of the users still prefer SCP over other protocols. Because, SCP handles remote-to-remote file transfers more efficiently than its counterparts such as SFTP and Rsync.
-
-And also, SCP works exactly like `cp` command, while `rsync` changes its behavior based on whether the source directory has a **trailing slash** or not. Take a look at the following commands:
-
-- `rsync source destination/` - would copy the source into the destination folder.
-- `rsync source/ destination/` - would copy the contents of the source folder into the destination folder.
-
-So you must always double check if you've put the trailing slash in the path.
-
-I personally use **[Rsync][2]** for copying large size files between two hosts and SCP for copying single files over a network.
-
-### SCP Command Syntax
-
-The general syntax for SCP command is given below:
-
-```
-scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target
-```
-
-Depending upon the file transfer path, the syntax will differ. Here I have included some example syntax format.
-
-Copy a file from your local system to a remote system:
-
-```
-scp SourceFile User@RemoteHost:RemotePath
-```
-
-Similarly, to copy a directory from your local system to a remote system, use `-r` flag:
-
-```
-scp -r SourceDirectory User@RemoteHost:RemotePath
-```
-
-Copy multiple files to a remote system:
-
-```
-scp SourceFile1 SourceFile2 User@RemoteHost:RemotePath
-```
-
-Copy a file from remote system to your local system:
-
-```
-scp User@RemoteHost:RemoteFilePath DestinationFile
-```
-
-Copy a directory from remote system to local system:
-
-```
-scp -r User@RemoteHost:RemoteDirectoryPath DestinationDirectory
-```
-
-Copy a file from one remote system to another remote system from your local system:
-
-```
-scp User@RemoteHost1:RemoteFile1 User@RemoteHost2:RemotePath
-```
-
-Please note that when you copy files between two remote systems, the traffic will not pass through the local system. The operation takes place directly between two remote systems. You can, however, pass the traffic from the system on which you run scp command using `-3` option.
-
-Copy a directory from one remote system to another remote system from your local system:
-
-```
-scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath
-```
-
-### SCP Command Options
-
-The most commonly used options of SCP command are:
-
-- **`-C`** : Enable compression. Here, C stands for Compression. When you use this option, the data transfer speed will be faster, because the data is compressed. SCP will automatically enable the compression at the source system and decompression at the destination system.
-- **`-c `** : c stands for cipher. By default, SCP uses **'AES-128'** encryption method for encrypting data. You can change the encryption method using `-c` option.
-- **`-i `** : i stands for Identity file or Private key. As you already know, there are password-based and key-based authentication used in SSH. If you want to use key-based authentication while transferring files, you can use the -i option to specify the Identity file or Private key.
-- **`-l limit`** : l stands for limit bandwidth. Using this option, you can set the maximum bandwidth used for transferring data. The limit should be specified in **`Kbit/s`**.
-- **`-F `** : Some times, you may need to use different networks to connect to your Linux systems. Or you may be behind a proxy server. In such situations, you can use different `ssh_config` file using `-F` option.
-- **`-P port`** - P stands for Port. Please note that it is uppercase P. By default, SSH uses port number 22. You might have changed the port number in the destination host for security reasons. In that case, you should explicitly mention the new port number using `-P` option.
-- **`-p`** : if you want to preserve modification times, access times, and modes from the original file, you need to use -p option while copying files. Please note that it is lowercase p.
-- **`-r`** : Recursively copy entire directories.
-- **`-B`** : B stands for batch mode. It is used for selecting batch mode while transferring files. It prevents asking for passwords or passphrases.
-- **`-S program`** : Name of the program to use for the encrypted connection.
-- **`-v`** : v stands for verbose. When using the `-v` option, the command will print the progress in your Terminal screen. So, you will see the what exactly is going on when the files are being transferred. It is useful in debugging connection, authentication, and configuration problems.
-
-SCP has so many options. You can check the man pages of SCP command to learn about other options. Let us see some **useful scp command examples**.
-
-### Important Notes to Remember before You Begin
-
-- The `scp` command relies on `ssh` for secure file transfer. So you must have either a **ssh key** or **password** to authenticate to the remote systems.
-- To be able to transfer files, you must have **read permission on the source files** and **write permission on the destination** location.
-- The `scp` command will not check the destination location before writing. Any files in the destination with the same name will be **overwritten without notification**.
-- To be able to distinguish between local and remote locations, use a **colon** (**`:`**).
-- When transferring large files, it is recommended to start the task inside a **[Screen][3]** or **[Tmux][4]** session.
-
-### Transfer Files With SCP in Linux
-
-As I already mentioned, we can use `scp` command to copy a file or a directory from a local system to a remote system and vice versa and copy files and folders between one remote computer to another remote computer.
-
-#### 1 Copy Files with SCP from Local System to Remote System
-
-To copy a file from a local system to a remote system using `scp` command, run:
-
-```
-$ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-**Sample Output:**
-
-```
-ostechnix@192.168.1.40's password:
-File1.txt 100% 104 814.0KB/s 00:00
-```
-
-Let us break down the above command and see what each option does.
-
-- `**File1.txt**` - The source file to be copied to the destination.
-- `**ostechnix**` - The username of the remote system.
-- `**192.168.1.40**` - The IP address of the remote system.
-- `**/home/ostechnix/**` - The destination directory in the remote system. This is the absolute path where we want to transfer the source file i.e. `File.txt`.
-
-You can also copy the file and rename it as well. The following command transfers the **`File1.txt`** to the destination and saves the file with different name **`myfile.txt`**.
-
-```
-$ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/myfile.txt
-```
-
-![Copy Files From Local System To Remote System][5]
-
-Copy Files from Local System to Remote System
-
-#### 2. Copy Multiple Files with SCP from Local System to Remote System
-
-To transfer multiple files from a local system to a remote system with `scp` command, run:
-
-```
-$ scp File1.txt File2.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-**Sample Output:**
-
-```
-ostechnix@192.168.1.40's password:
-File1.txt 100% 104 689.4KB/s 00:00
-File2.txt 100% 496 6.3MB/s 00:00
-```
-
-![Copy Multiple Files from Local System to Remote System][6]
-
-Copy Multiple Files from Local System to Remote System
-
-Here,
-
-- `**File1.txt**` and **`File2.txt`** - The name of the sources that will be copied to the specified destination.
-- `**ostechnix@192.168.1.40**` - The username and IP address of the remote system.
-- `**/home/ostechnix**` - The destination path where we want to put the copied files.
-
-If the files have same extension, you can use the following alternative commands to achieve the same goal.
-
-```
-$ scp {File1,File2}.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-Or,
-
-```
-$ scp *.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-#### 3. Recursively Copy Directories with SCP from Local System to Remote System
-
-To recursively copy an entire directory including the sub-directories and its contents from your local system to a remote system, use **`-r`** flag like below.
-
-```
-$ scp -r Documents/ ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-![Copy a Directory from Local System to Remote System][7]
-
-Copy a Directory from Local System to Remote System
-
-The above command will copy the entire directory **'`Documents`'** including its contents to the destination system.
-
-Here,
-
-- **`-r`** : Copy files and directories recursively including the sub-directories and its contents.
-- **`Documents`** : The name of the source directory that we want to copy to the destination.
-- `**ostechnix@192.168.1.40**` : The username and IP address of the remote system.
-- `**/home/ostechnix**` : The destination path where we want to put the copied directory.
-
-#### 4. Transfer Files with SCP from Remote System to Local System
-
-Remember we copied `FIle1.txt` to the remote system from our local system. Let us copy it back to the local system.
-
-To copy a file from a remote system to your local system with `scp`, run:
-
-```
-$ scp ostechnix@192.168.1.40:/home/ostechnix/File1.txt Downloads/
-```
-
-Here,
-
-- `**ostechnix@192.168.1.40**` : The username and IP address of the remote system.
-- **`/home/ostechnix/File.txt`** : The absolute path of file that we want to copy to the local system.
-- **`Downloads`** - The location where to save the copied file.
-
-![Transfer Files from Remote System to Local System][8]
-
-Transfer Files from Remote System to Local System
-
-#### 5. Transfer Multiple Files using SCP from Remote System to Local System
-
-To copy multiple files from a remote system to your local system, mention the absolute path of the files that you want to copy **within the curly braces** as shown below.
-
-```
-$ scp ostechnix@192.168.1.40:/home/ostechnix/\{File1.txt,File2.txt\} Downloads/
-```
-
-![Transfer Multiple Files from Remote System to Local System][9]
-
-Transfer Multiple Files from Remote System to Local System
-
-The above command will copy the `File1.txt` and `File2.txt` from the `/home/ostechnix/` directory of the remote system to the `Downloads` directory of the local system.
-
-Please note that there is **no spaces after the commas within the curly braces**.
-
-#### 6. Recursively Copy Directories from Remote System to Local System
-
-To copy an entire directory including the sub-directories and its contents recursively from a remote computer to your local system using `scp`, use **`-r`** flag.
-
-```
-$ scp -r ostechnix@192.168.1.40:/home/ostechnix/Documents Downloads/
-```
-
-The above command will copy the entire **`Documents`** from the remote system to the **`Downloads`** directory in your local system.
-
-#### 7. Copy Files using SCP between Two Remote Computers
-
-To copy files directly from one remote system to another remote system with `scp`, run:
-
-```
-$ scp senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/
-```
-
-You will be asked to enter the password of the both remote systems.
-
-Here,
-
-- **`senthil@192.168.1.40`** - The username and IP address of the remote system from the file is currently located.
-- **`/home/senthil/File1.txt`** - The name the file1 that is being copied and its location.
-- `**kumar@192.168.1.20**` - The username and IP address of the remote system where we want to copy the file.
-- **`/home/kumar`** - The location where to save the copied file on the remote system.
-
-The above command will copy the `/home/senthil/File1.txt` from the remote host `192.168.1.40` to `/home/kumar/` directory on the remote host `192.168.1.20`.
-
-In this method, the data will be transferred directly from one remote system to another remote system. If you want to route the traffic through the machine on which the command is run, use `**-3**` flag like below.
-
-```
-$ scp -3 senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/
-```
-
-#### 8. Enable Compression while Copying Files with SCP
-
-So far we have transferred files without compressing them. Now we will enable compression while transferring files using **`-C`** flag.
-
-```
-$ scp -C File1.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-The `-C` flag will enable compression of data at the source and automatically decompress the data at destination side.
-
-By enabling compression, you can increase the file copy or transfer speed significantly.
-
-#### 9. Limit Bandwidth while Transferring Files using SCP
-
-We can limit the bandwidth while copying files with SCP using `-l` flag. Please note that the maximum bandwidth is specified in Kbits/s. 1 byte=8 bits. So if you want to limit bandwidth to 200 KB/s, the value for `-l` would be **1600** (200*8).
-
-```
-$ scp -l 1600 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-This is useful when transferring large files to prevent SCP from throttling the bandwidth.
-
-#### 10. Use Different Port while Copying Files using SCP
-
-As a system admin, you might **[have changed the default port of your SSH protocol][10]** on the remote servers for security reasons. In such cases, you can specify the port number with `-P` flag when transferring files. Please note that this is **uppercase P**.
-
-```
-$ scp -P 2022 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-#### 11. Use Different Cipher while Copying Files with SCP
-
-By default, SCP uses **'`AES-128`'** for encrypting files. If you want to use different cipher, use **`-c`** flag followed by the cipher name.
-
-For example, if you want to use **'`3des-cbc`'** cipher, the command would be like below:
-
-```
-$ scp -c 3des-cbc File1.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-To view the list of supported ciphers, run:
-
-```
-$ ssh -Q cipher localhost | paste -d, -s -
-```
-
-**Sample Output:**
-
-```
-3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
-```
-
-#### 12. Copying Files with SCP in Verbose Mode
-
-if you want to know what's going on behind the scenes while copying files with scp, you can use `**-v**` flag. When transferring files with SCP in Verbose mode, the step by step process of the SCP command execution will be displayed in the terminal. This comes in handy when troubleshooting times.
-
-```
-$ scp -v File1.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-You will see a whole lot of output when sending files in Verbose mode as shown in the following output.
-
-![Copying Files with SCP in Verbose Mode][11]
-
-Copying Files with SCP in Verbose Mode
-
-#### 13. Transferring Files with SCP in Quiet Mode
-
-We can transfer files in quiet mode with **`-q`** flag. When sharing files in quiet mode, it will not show the copy progress, warning or diagnostic message in the output.
-
-```
-$ scp -q File1.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-#### 14. Preserve File Attributes when Transferring Files with SCP
-
-To preserve file attributes such as file modification times, access times, and modes when copying files with SCP, use **`-p`** flag. Please note that this is **lowercase p**.
-
-```
-$ scp -p File1.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-#### 15. Use Identity File when Copying Files with SCP
-
-SSH supports both password-based and key-based authentication. Key-based authentication is most widely used authentication method in Linux environments.
-
-If you want to use key-based authentication while transferring files, use the **`-i`** option to specify the Identity file or Private key.
-
-```
-$ scp -i my_private_key.pem File1.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-#### 16. Use Different ssh_config File when Transferring Files with SCP
-
-There are situations where you need to use different networks to connect to your Linux systems. Or you may be behind a proxy server. In such situations, you can use different `ssh_config` file using `**-F**` option.
-
-```
-$ scp -F /home/ostechnix/my_ssh_config File1.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-#### 17. Copy files with SCP using IPv4 or IPv6
-
-We can force SCP to only use IPv4 or IPv6 addresses when copying files. This can be achieved by adding **`-4`** for IPv4 networks and **`-6`** for IPv6 networks.
-
-```
-$ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
-```
-
-### Frequently Asked Questions
-
-#### Question 1: What is SCP?
-
-**Answer:** SCP is a command line program to securely transfer files and directories from a local system to a remote system and vice versa, or between two remote systems directly.
-
-#### Question 2: How to copy a file from the local computer to remote computer using SCP?
-
-To copy a file from your local system to a remote system, the command would be:
-
-```
-scp SourceFile.txt User@RemoteHost:/some/remote/directory
-```
-
-#### Question 3: How to copy recursively copy files and directories?
-
-To recursively copy a directory including the sub-directories, use `-r` flag.
-
-```
-scp -r /some/local/directory User@RemoteHost:/some/remote/directory
-```
-
-#### Question 4: Can I transfer multiple files using SCP?
-
-Yes, you can. Just mention the source file names with space separated.
-
-Copy multiple files from local to remote:
-
-```
-scp file1.txt file2.txt file3.txt User@RemoteHost:/some/remote/directory
-scp {file1,file2,file3}.txt User@RemoteHost:/some/remote/directory
-scp *.txt User@RemoteHost:/some/remote/directory
-```
-
-Copy multiple files from remote to local:
-
-```
-scp User@RemoteHost:/some/remote/directory/\{file1.txt,file2.txt,file3.txt\} /some/local/directory
-```
-
-Copy multiple files from remote to remote:
-
-```
-$ scp User@RemoteHost1:/some/remote/directory/\{file1.txt,file2.txt,file3.txt\} User@RemoteHost2:/some/remote/directory/
-```
-
-#### Question 5: How to transfer all files in a directory?
-
-To transfer all files in a directory, switch to that directory:
-
-```
-cd dir_name
-```
-
-```
-scp *.txt User@RemoteHost:/some/remote/directory
-```
-
-#### Question 6: Can I compress files?
-
-Yes, you can. Use **`-C`** to compress files. The files are compressed at source and decompress at destination automatically.
-
-```
-scp -C /some/large/file User@RemoteHost:/some/remote/directory
-```
-
-#### Question 7: Can I preserve file attributes?
-
-To preserve file attributes such as modification times, access times, and modes from the original file, use `-p` flag.
-
-```
-scp -p file.txt User@RemoteHost:/some/remote/directory
-```
-
-#### Question 8: Can I use different port?
-
-Yes. SCP allows you to use different port with `-P` flag.
-
-```
-scp -P 2022 file.txt User@RemoteHost:/some/remote/directory
-```
-
-#### Question 9: Can I use different cipher?
-
-Yes, you can. Use -c flag to use different cipher.
-
-```
-scp -c 3des-cbc User@RemoteHost:/some/remote/directory
-```
-
-#### Question 10: How do I list the supported ciphers by SSH?
-
-To view the list of supported ciphers by SSH and SCP, use the following command
-
-```
-ssh -Q cipher localhost | paste -d, -s -
-```
-
-#### Question 11: Is SCP really secure?
-
-Yes, it is completely secure to use. SCP uses the same SSH mechanism used by openSSH. The data in transit is encrypted at the source side and decrypted at destination.
-
-#### Question 12: Can I transfer files from a Windows system to a Linux system?
-
-Yes, you can. Use either **PSCP** program to transfer files from windows platform to Linux platform. You can also use **WinSCP**.
-
-### Conclusion
-
-In this comprehensive guide, we learned what is SCP, and how to **securely transfer files with SCP** in Linux. We provided **17 SCP command examples**. We also looked at the commonly asked questions about SCP.
-
-Whether you're a Linux Admin, or a Developer or a Regular user, you will have to copy files to and from a remote system at some point. Knowing how to **use SCP to securely copy files** will be definitely useful.
-
---------------------------------------------------------------------------------
-
-via: https://ostechnix.com/securely-transfer-files-with-scp-in-linux/
-
-作者:[sk][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://ostechnix.com/author/sk/
-[b]: https://github.com/lkxed
-[1]: https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html
-[2]: https://ostechnix.com/linux-rsync-command-examples-for-beginners/
-[3]: https://ostechnix.com/screen-command-examples-to-manage-multiple-terminal-sessions/
-[4]: https://ostechnix.com/tmux-command-examples-to-manage-multiple-terminal-sessions/
-[5]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Files-from-Local-System-to-Remote-System.png
-[6]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Multiple-Files-from-Local-System-to-Remote-System.png
-[7]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Directory-from-Local-System-to-Remote-System.png
-[8]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Files-from-Remote-System-to-Local-System.png
-[9]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Multiple-Files-from-Remote-System-to-Local-System.png
-[10]: https://ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/
-[11]: https://ostechnix.com/wp-content/uploads/2022/11/Copying-Files-with-SCP-in-Verbose-Mode.png
diff --git a/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
new file mode 100644
index 0000000000..b450a31ef7
--- /dev/null
+++ b/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
@@ -0,0 +1,539 @@
+[#]: subject: "How To Securely Transfer Files With SCP In Linux"
+[#]: via: "https://ostechnix.com/securely-transfer-files-with-scp-in-linux/"
+[#]: author: "sk https://ostechnix.com/author/sk/"
+[#]: collector: "lkxed"
+[#]: translator: "MjSeven"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+如何在 Linux 中使用 SCP 安全地传输文件
+======
+
+在网络上文件传输可以通过各种不同的方式和协议来完成。**远程复制文件**最常用的协议是 **Rsync**、**SCP** 和 **SFTP**。在本文中,我们将了解**什么是 SCP** 以及如何在 Linux 和类 Unix 操作系统中**使用 SCP 在本地和远程计算机之间安全地传输文件**。
+
+### 什么是 SCP?
+
+SCP,代表**安全复制**,它是一个命令行程序,在 Linux 和类 Unix 操作系统中以安全的方式在本地和远程系统之间,或在两个远程系统之间复制文件和目录。
+
+使用 `scp` 命令,你可以安全地复制文件或目录:
+
+- 从本地到远程系统
+- 从远程系统到本地
+- 在两个远程系统之间
+
+使用 scp 命令传输数据时,文件和目录都是加密的。因此,即使网络被破坏,犯罪者也无法获得任何有意义的数据。
+
+SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文件。几乎所有现代 Linux 和 Unix 发行版都预装了 OpenSSH,所以不必费心安装它。
+
+#### 提醒一句:
+
+根据 openSSH 开发人员的**官方公告**:
+
+> **scp 协议已经过时了**,它不灵活且不易修复。我们建议使用更现代的协议,如 sftp 和 rsync 来代替。
+>
+> 参考 - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1]
+
+但是,大多数用户仍然更喜欢 SCP 协议。因为,SCP 处理远程文件传输比同行 SFTP 和 Rsync 更快。
+
+另外,SCP 的工作原理与 `cp` 命令完全相同,而 `rsync` 则会判断源目录是否有**结尾斜杠**而出现不同的行为。看一看下面的命令:
+
+- `rsync source destination/` - 将 source 目录复制到 destination 文件夹内。
+- `rsync source/ destination/` - 将 source 目录的内容复制到 destination 文件夹中。
+
+所以,你必须反复检查是否在路径中添加了斜杠。
+
+我个人使用 **[Rsync][2]** 在两台主机之间复制大文件,使用 SCP 在网络上复制单个文件。
+
+### SCP 命令语法
+
+SCP 的通用语法如下:
+
+```bash
+scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target
+```
+
+根据文件传输路径的不同,语法也会有所不同。这里我罗列了一些语法格式示例。
+
+从本地复制一个文件到远程系统:
+
+```
+scp SourceFile User@RemoteHost:RemotePath
+```
+
+类似的,从本地系统复制一个目录到远程系统,使用 `-r` 参数:
+
+```
+scp -r SourceDirectory User@RemoteHost:RemotePath
+```
+
+复制多个文件到远程系统:
+
+```
+scp SourceFile1 SourceFile2 User@RemoteHost:RemotePath
+```
+
+远程系统复制文件到本地:
+
+```
+scp User@RemoteHost:RemoteFilePath DestinationFile
+```
+
+远程系统复制目录到本地:
+
+```
+scp -r User@RemoteHost:RemoteDirectoryPath DestinationDirectory
+```
+
+在本地将文件在两个远程系统之间复制:
+
+```
+scp User@RemoteHost1:RemoteFile1 User@RemoteHost2:RemotePath
+```
+
+注意,当你在两个远程系统之间复制文件时,流量不会通过本地系统。操作直接在两个远程系统之间进行。但是,你可以使用 `-3` 参数传递运行 scp 命令的系统的流量。
+
+本地将目录从一个远程系统复制到另一个远程系统:
+
+```
+scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath
+```
+
+### SCP 命令参数
+
+SCP 命令最常用的参数有:
+
+- **`-C`** : 启用压缩。C 代表压缩。使用此参数时,数据传输速度会更快,因为数据是压缩的。SCP 将自动在源系统上压缩,并在目标系统上解压缩。
+- **`-c `** : c 代表加密。默认情况下,SCP 使用 **AES-128** 加密方法对数据进行加密。你可以使用 `-c` 参数更改加密方法。
+- **`-i `** : i 代表身份文件或私钥。如你所知,SSH 中使用基于密码或密钥的身份验证。如果希望在传输文件时使用基于密钥的身份验证,可以使用 -i 参数指定身份文件或私钥。
+- **`-l limit`** : l 代表极限带宽。通过此参数,可以设置传输数据的最大带宽。它的单位是 **`Kbit/s`**。
+- **`-F `** : 有时你可能需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器,这种情况下,你可以使用 `-F` 参数使用不同的 `ssh_config` 文件。
+- **`-P port`** - P 代表端口。注意,这是大写的 P。默认情况下,SSH 使用端口 22。但出于安全原因,你可能已经更改了目标主机中的端口号。这种情况下,你应该使用 `-P` 参数显示指定新端口号。
+- **`-p`** : 如果希望保留原始文件的修改时间、访问时间和模式,你需要使用 -p 参数。注意是小写 p。
+- **`-r`** : 递归复制整个目录。
+- **`-B`** : B 代表批处理模式。它用于在传输文件时选择批处理模式。可以防止询问密码。
+- **`-S program`** : 用于加密连接的程序名称。
+- **`-v`** : v 代表详细。当使用 `-v` 参数时,命令将会在终端屏幕上打印进度。你会看到文件传输时到底发生了什么。它在调试连接、身份验证和配置问题时非常有用。
+
+SCP 有很多参数,你可以查看它的手册页来了解其他参数。让我们看一些**有用的 scp 命令示例**。
+
+### 开始前要记住的重要事项
+
+- `scp` 命令依赖于 `ssh` 进行安全的文件传输。因此,你必须有一个 **ssh 密钥**或**密码**才能向远程系统进行身份验证。
+- 为了能传输文件,你必须对**源文件有读权限**,对**目标位置有写权限**。
+- `scp` 命令在写入前不会检查目标位置。目标位置中具有相同名称的任何文件都将被**覆盖而不通知**。
+- 为了能够区分本地和远程位置,使用**冒号**(`:`)。
+- 传输大文件时,建议在 **[Screen][3]** 或 **[Tmux][4]** 会话内启动任务。
+
+### 在 Linux 中使用 SCP 传输文件
+
+正如我所说,我们可以使用 `scp` 命令将文件或目录从本地复制到远程系统,反之亦然,或者在两台远程系统之间复制文件或目录。
+
+### 1. 使用 SCP 从本地系统复制文件到远程系统
+
+使用 `scp` 命令将文件从本地复制到远程系统,运行:
+
+```
+$ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+**示例输出:**
+
+```
+ostechnix@192.168.1.40's password:
+File1.txt 100% 104 814.0KB/s 00:00
+```
+
+让我们分析一下上面的命令,看看每个参数都做了什么。
+
+- **`File1.txt`** - 源文件
+- **`ostechnix`** - 远程系统的用户名
+- **`192.168.1.40`** - 远程系统的 IP 地址
+- **`/home/ostechnix/`** - 远程系统中的目标目录。这是我们想要传输源文件的绝对路径,如 `File.txt`。
+
+你还可以修改目标文件的名称。下面的命令将 `File1.txt` 传输到目的地,保存为 `myfile.txt`。
+
+```
+$ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/myfile.txt
+```
+
+![将文件从本地复制到远程系统][5]
+
+将文件从本地复制到远程系统
+
+#### 2. 使用 SCP 从本地系统复制多个文件到远程系统
+
+使用 `scp` 命令将多个文件从本地系统传输到远程系统,运行:
+
+```bash
+$ scp File1.txt File2.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+**示例输出:**
+
+```
+ostechnix@192.168.1.40's password:
+File1.txt 100% 104 689.4KB/s 00:00
+File2.txt 100% 496 6.3MB/s 00:00
+```
+
+![从本地复制多个文件到远程系统][6]
+
+从本地复制多个文件到远程系统
+
+这里:
+
+- **`File1.txt`** 和 **`File2.txt`** - 源文件名
+- **`ostechnix@192.168.1.40`** - 远程系统的用户名和 IP 地址
+- **`/home/ostechnix`** - 目标文件的路径
+
+如果文件具有相同的扩展名,你可以使用以下替代命令来实现相同的目标。
+
+```
+$ scp {File1,File2}.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+或者,
+
+```
+$ scp *.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+#### 3. 使用 SCP 从本地到远程系统递归复制目录
+
+递归地将整个目录(包括子目录及其内容)从本地复制到远程系统,使用 **`-r`** 参数。
+
+```bash
+$ scp -r Documents/ ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+![从本地复制目录到远程系统][7]
+
+从本地复制目录到远程系统
+
+上述命令将整个 **`Documents`** 目录包括其内容复制到目标系统。
+
+其中,
+
+- `-r` : 递归复制文件和目录,包括子目录及其内容
+- `Documents` : 源目录名称
+- **`ostechnix@192.168.1.40`** : 远程系统的用户名和 IP 地址
+- **`/home/ostechnix`** : 目标目录的路径
+
+#### 4. 用 SCP 将文件从远程系统传输到本地
+
+还记得我们从本地系统复制了 `File1.txt` 到远程系统,让我们把它复制回本地。
+
+使用 `scp` 命令从远程系统复制文件到本地,运行:
+
+```
+$ scp ostechnix@192.168.1.40:/home/ostechnix/File1.txt Downloads/
+```
+
+其中
+
+- **`ostechnix@192.168.1.40`** : 远程系统的用户名和 IP 地址
+- `/home/ostechnix/File.txt` : 远程系统文件的绝对路径
+- `Downloads` - 本地保存复制文件的位置
+
+![从远程系统传输文件到本地][8]
+
+从远程系统传输文件到本地
+
+#### 5. 使用 SCP 将多个文件从远程系统传输到本地
+
+将多个文件从远程系统复制到本地,在**花括号内**注明文件的绝对路径,如下所示:
+
+```
+$ scp ostechnix@192.168.1.40:/home/ostechnix/\{File1.txt,File2.txt\} Downloads/
+```
+
+![将多个文件从远程系统传输到本地][9]
+
+将多个文件从远程系统传输到本地
+
+上述命令将从远程系统的 `/home/ostechnix/` 目录中复制 `File1.txt` 和 `File2.txt` 到本地的 `Downloads` 目录中。
+
+注意,**花括号内的逗号后面没有空格**。
+
+#### 6. 从远程系统递归复制目录到本地
+
+使用 `scp` 从远程系统递归复制整个目录(包括子目录及其内容)到本地系统,使用 **`-r`** 参数。
+
+```
+$ scp -r ostechnix@192.168.1.40:/home/ostechnix/Documents Downloads/
+```
+
+上述命令将从远程系统将整个 **`Documents`** 目录复制到本地的 **`Downloads`** 目录。
+
+#### 7. 使用 SCP 在两台远程计算机之间复制文件
+
+使用 `scp` 命令将文件从一个远程系统直接复制到另一个远程系统,运行:
+
+```
+$ scp senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/
+```
+
+它会要求你输入两个远程系统的密码:
+
+其中,
+
+- `senthil@192.168.1.40` - 文件源端远程系统的用户名和 IP 地址
+- `/home/senthil/File1.txt` - 复制的文件名及其位置
+- **`kumar@192.168.1.20`** - 复制文件到目标端的用户名和 IP 地址
+- `/home/kumar` - 在目标端上保存复制文件的位置
+
+上述命令将从远程主机 `192.168.1.40` 复制 `/home/senthil/File1.txt` 到 `192.168.1.20` 上的 `/home/kumar/` 目录。
+
+在这种方法中,数据将直接从一个远程系统传输到另一个远程系统。如果你想通过本地机器路由流量,使用 **`-3`** 参数,如下所示:
+
+```
+$ scp -3 senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/
+```
+
+#### 8. 使用 SCP 复制文件时启用压缩
+
+到目前为止,我们在没有压缩的情况下传输了文件。现在我们将使用 **`-C`** 参数在传输文件时启用压缩。
+
+```
+$ scp -C File1.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+`-C` 参数将在源端启用压缩,并在目标端自动解压数据。
+
+通过启用压缩,可以显著提高文件复制或传输速度。
+
+#### 9. 使用 SCP 传输文件时限制带宽
+
+我们可以使用 `-l` 参数限制带宽。注意,最大带宽单位为 Kbits/s。1 字节 = 8 bit。因此,如果你想将带宽限制在 200KB/s,`-l` 的值将是 **1600**(200*8)。
+
+```
+$ scp -l 1600 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+这在传输大文件时非常有用,可以防止 SCP 限制带宽。
+
+#### 10. 使用 SCP 复制文件时使用不同端口
+
+作为系统管理员,出于安全原因,你可能在远程服务器上[**更改了 SSH 协议的默认端口**][10]。这种情况下,你可以在传输文件时使用 `-P` 参数指定端口号。注意:**大写的 P**。
+
+```
+$ scp -P 2022 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+#### 11. 使用 SCP 复制文件时使用不同的加密方法
+
+默认情况下,SCP 使用 **`AES-128`** 对文件进行加密。如果你想使用不同的加密方法,使用 **`c`** 参数。
+
+例如,如果你想使用 **3des-cbc** 加密方法,命令如下所示:
+
+```
+$ scp -c 3des-cbc File1.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+要查看支持的密码列表,执行:
+
+```
+$ ssh -Q cipher localhost | paste -d, -s -
+```
+
+**示例输出:**
+
+```
+3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
+```
+
+#### 12. 在详细模式下使用 SCP 复制文件
+
+如果你想知道使用 scp 复制文件时幕后发生了什么,你可以使用 **`-v`** 参数。使用详细模式传输文件时,终端上会显示执行 SCP 命令执行的每一步过程。这在故障排除时很方便。
+
+```
+$ scp -v File1.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+在详细模式下发送文件时,你将看到大量输出,如下所示:
+
+![在 Verbose 模式下使用 SCP 复制文件][11]
+
+在详细模式下使用 SCP 复制文件
+
+#### 13. 在安静模式下使用 SCP 传输文件
+
+我们可以使用 **`-q`** 参数在安静模式下传输文件。在安静模式下共享文件时,不会在输出中显示进度、警告或诊断信息。
+
+```
+$ scp -q File1.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+#### 14. 使用 SCP 传输文件时保留文件属性
+
+使用 **`-p`** 参数可以保留文件修改时间、访问时间和模式等文件属性。注意,这是**小写的 p**。
+
+```
+$ scp -p File1.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+#### 15. 使用 SCP 复制文件时使用身份文件
+
+SSH 同时支持基于密码和密钥的身份验证。密钥是 Linux 环境中使用最广泛的身份验证方法。
+
+如果你想在传输文件时使用基于密钥的身份验证,使用 **`-i`** 参数指定身份文件或私钥。
+
+```
+$ scp -i my_private_key.pem File1.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+#### 16. 使用不同的 ssh 配置文件
+
+在某些情况下,你需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器。这在情况下,你可以配合 **`-F`** 参数使用不同的 `ssh_config` 文件。
+
+```
+$ scp -F /home/ostechnix/my_ssh_config File1.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+#### 17. 使用 IPv4 或 IPv6 复制文件
+
+在复制文件时,我们可以强制 SCP 只使用 IPv4 或 IPv6 地址。IPv4 网络添加 **`-4`** 参数,IPv6 网络添加 **`-6`** 参数可以实现这一点。
+
+```
+$ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
+```
+
+### 常见问题
+
+#### 问题 1:什么是 SCP?
+
+**回答:** SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。
+
+#### 问题 2: 如何使用 SCP 将文件从本地复制到远程计算机?
+
+将文件从本地复制到远程系统,命令如下:
+
+```
+scp SourceFile.txt User@RemoteHost:/some/remote/directory
+```
+
+#### 问题 3:如何递归复制文件和目录?
+
+递归复制包含子目录的目录,使用 `-r` 参数:
+
+```
+scp -r /some/local/directory User@RemoteHost:/some/remote/directory
+```
+
+#### 问题 4:使用 SCP 可以传输多个文件吗?
+
+当然,只要用空格分隔源文件名即可。
+
+从本地复制多个文件到远程:
+
+```
+scp file1.txt file2.txt file3.txt User@RemoteHost:/some/remote/directory
+scp {file1,file2,file3}.txt User@RemoteHost:/some/remote/directory
+scp *.txt User@RemoteHost:/some/remote/directory
+```
+
+从远程复制多个文件到本地:
+
+```
+scp User@RemoteHost:/some/remote/directory/\{file1.txt,file2.txt,file3.txt\} /some/local/directory
+```
+
+从一个远程系统复制多个文件到另一个远程系统:
+
+```
+$ scp User@RemoteHost1:/some/remote/directory/\{file1.txt,file2.txt,file3.txt\} User@RemoteHost2:/some/remote/directory/
+```
+
+#### 问题 5:如何传输目录下的所有文件?
+
+传输整个目录,首先进入该目录:
+
+```
+cd dir_name
+```
+
+然后,
+
+```
+scp *.txt User@RemoteHost:/some/remote/directory
+```
+
+#### 问题 6:可以压缩文件吗?
+
+当然。使用 **`-C`** 压缩文件。文件会在源端压缩,在目标端自动解压缩。
+
+```
+scp -C /some/large/file User@RemoteHost:/some/remote/directory
+```
+
+#### 问题 7:可以保留文件属性吗?
+
+保留原始文件的修改时间、访问时间和模式等文件属性,使用 **`-p`** 参数。
+
+```
+scp -p file.txt User@RemoteHost:/some/remote/directory
+```
+
+#### 问题 8: 可以使用其他端口吗?
+
+当然。SCP 配合 **`-P`** 参数允许你使用其他端口。
+
+```
+scp -P 2022 file.txt User@RemoteHost:/some/remote/directory
+```
+
+#### 问题 9: 可以使用不同的加密方法吗?
+
+当然。使用 **`-c`** 参数。
+
+```
+scp -c 3des-cbc User@RemoteHost:/some/remote/directory
+```
+
+#### 问题 10: 如何列出 SSH 支持的加密方法?
+
+使用以下命令查看 SSH 和 SCP 支持的加密方法列表:
+
+```
+ssh -Q cipher localhost | paste -d, -s -
+```
+
+#### 问题 11:SCP 真的安全吗?
+
+当然,它用起来是完全安全的。SCP 和 openSSH 使用相同的 SSH 机制。传输的数据在源端加密,目标端解密。
+
+#### 问题 12:可以从 Windows 系统传输文件到 Linux 吗?
+
+当然。使用 **PSCP** 程序将文件从 windows 传输到 Linux 平台,你也可以使用 **WinSCP**。
+
+### 总结
+
+在这篇全面指南中,我们了解了什么是 SCP,以及如何在 Linux 中使用 **SCP 安全地传输文件**,其中包括 **17 个 SCP 命令示例**,另外还回答了关于 SCP 的常见问题。
+
+无论你是 Linux 管理人员、开发人员还是普通用户,你都会面临某个时候将文件复制到远程系统或从远程系统复制文件的情况,知道如何**使用 SCP 安全地复制文件**将是非常有用的。
+
+--------------------------------------------------------------------------------
+
+via: https://ostechnix.com/securely-transfer-files-with-scp-in-linux/
+
+作者:[sk][a]
+选题:[lkxed][b]
+译者:[MjSeven](https://github.com/MjSeven)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://ostechnix.com/author/sk/
+[b]: https://github.com/lkxed
+[1]: https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html
+[2]: https://ostechnix.com/linux-rsync-command-examples-for-beginners/
+[3]: https://ostechnix.com/screen-command-examples-to-manage-multiple-terminal-sessions/
+[4]: https://ostechnix.com/tmux-command-examples-to-manage-multiple-terminal-sessions/
+[5]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Files-from-Local-System-to-Remote-System.png
+[6]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Multiple-Files-from-Local-System-to-Remote-System.png
+[7]: https://ostechnix.com/wp-content/uploads/2022/11/Copy-Directory-from-Local-System-to-Remote-System.png
+[8]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Files-from-Remote-System-to-Local-System.png
+[9]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Multiple-Files-from-Remote-System-to-Local-System.png
+[10]: https://ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/
+[11]: https://ostechnix.com/wp-content/uploads/2022/11/Copying-Files-with-SCP-in-Verbose-Mode.png
From d87856982277770a41cdb6ebb2e0ab0898aaffda Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 19 Dec 2022 21:59:00 +0800
Subject: [PATCH 093/266] RP
@CanYellow
https://linux.cn/article-15364-1.html
---
...️ Write documentation like you develop code.md | 88 +++++++++++++++++++
...️ Write documentation like you develop code.md | 86 ------------------
2 files changed, 88 insertions(+), 86 deletions(-)
create mode 100644 published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
delete mode 100644 translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
diff --git a/published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
new file mode 100644
index 0000000000..95f0e82e50
--- /dev/null
+++ b/published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
@@ -0,0 +1,88 @@
+[#]: subject: "Write documentation like you develop code"
+[#]: via: "https://opensource.com/article/22/10/docs-as-code"
+[#]: author: "Lorna Mitchell https://opensource.com/users/lornajane"
+[#]: collector: "lkxed"
+[#]: translator: "CanYellow"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15364-1.html"
+
+像书写代码一样撰写文档
+======
+
+![][0]
+
+> 不想让文档成为事后的想法?或许你该尝试一下全新的写作方式。
+
+很多工程师与手工艺者都对他们使用的工具有特别的要求。为了顺利的完成工作,你需要最好的工具和使用它们的技巧。软件开发中最好的工具在应用到其他的数字创作领域中也可以是很强大的。[文档即代码][1]Docs as Code 的方式就是很好的例子。“文档即代码”意味着使用与代码开发相同的工具和工作流来撰写文档。文档即代码的支持者认为,这样的方式可以在降低写作者的工作量的同时,也带来了更好的文档。
+
+### 文本格式与源文件控制
+
+从传统的写作平台切换到文档即代码方式时,最主要的调整是将写作内容保存在基于文本的标记格式中。这一转变使得基于纯文本的工具都适用于文档写作。无论你选择 [DocBook][2]、[Markdown][3] 或者其他的标记语言,从只使用一种工具到使用一种标准格式配合多种工具是一种巨大的转变。
+
+找到支持你的工作流程的工具是非常重要的。很多开发者在文档即代码项目中使用他们的 [代码编辑器][4]。因为他们已经是这些工具的高阶用户,一切都很顺利。而找到适合团队里其他专业人员,比如技术撰稿、编辑、信息架构师和文档产品责任人的工具可能需要一番努力。这里有一些选项可供参考:
+
+- 各种 [优秀的 Markdown 编辑器][5] 之一
+- 附带良好的预览工具的代码编辑器可能更适合非程序员
+- 流行的 Git 托管服务的网页界面尤其适用于偶尔有需要的贡献者
+
+一旦内容以标记语言的格式安全地保存,就可以使用 [Git][6] 这样的版本控制进行管理。Git 相比大多数文档平台具有更多的功能:
+
+- 清晰详细的文档版本历史:谁在什么时候改变了什么。如果你有良好的提交信息惯例,你甚至可以了解到为什么会有这样的变更。
+- 简明的并行修改过程。在 Git 中使用分支工作意味着任何人可以做出他们想要的任何改变,并在最后合并所做的变更。
+- 先进的协作与审查工具。所有的源代码管理平台都被设计成支持详细审查每一个变更,并根据需要进行讨论,使每个人都确信这个变更可以继续进行。
+- 自动质量检查,比如拼写检查和链接检查。这不仅节省了时间,而且可以发现可能遗漏的错误。
+
+源代码管理有很多优点。但要记住,如果你准备入门源代码管理,它有一定的学习曲线。这是一些有助于撰写者入门的优秀的 [学习资源][7] 和 [文章][8]。你也可以让具有好奇心的文档撰写者自行寻找对他们有用的学习材料,而不是请你的工程师来培训他们。(问我是怎么学会的? —— 当然是通过艰苦的方式!)
+
+### 拉取请求和评审循环
+
+所有的源代码管理平台都围绕 拉取请求Pull Request 这一概念设计的,这有时也称为 合并请求Merge Request:有时候,某个人或某个团队先将一系列改变整合到一起,然后请求把这些修改拉到主项目中。不过从许多方面来说,在文档中一次处理多个变更比在代码中更容易。改变一篇文章中的某个地方,比更改代码并发现有其它几个地方依赖它,副作用更小。
+
+最强大的协作工具是 [diff][9],它可以通过一个易于理解的方式展示旧版本与新版本之间的差异。该工具有许多不同的版本,可以使比较视图更易于查看:双栏模式、行内模式,甚至是渲染过的 Markdown 模式。团队中的每一个成员都可以选择最适合他们的工具。举例而言,网页视图通常用于查看细微变更,而对于更大的变更,我习惯于使用 `vimdiff` 或 [Meld][10] 在本地浏览。
+
+评审意见可以被添加到整个修改中,也可以添加到拟议的变更的个别行中。一些项目限制了行的最大长度,即硬换行,或者一行一句,以使得向文本的特定的部分添加注释更加容易。可以添加进一步的修改与评论,直到审查过程结束,修改被接受。由于拉取请求在项目仓库以队列形式展示,这是一种很好的方式,可以展示目前正在进行的任务以及需要进行检查操作的任务。`diff` 工具使得评审人员更方便地添加他们的思考。尤其是你在与技术受众工作时,你可以通过他们日常使用的工具获得来自他们的评论。
+
+### 持续集成与部署
+
+以纯文本形式提供你的文档的源代码有很多益处,你可以轻易找到每一个需要修改的位置,你可以使用现有的诸如 [wc][11]、[grep][12] 或 `tree` 之类的工具,来处理潜在的大型文档集。当你将这些与源代码管理平台结合起来之后,你可能获得更多的可用工具,并且它们都是开源的。
+
+另一个工作流程上的巨大提升是持续部署的能力。简单来说,这意味着,每当一个拉取请求被合并到主项目中,项目可以直接自动化部署到位。如果这个变更足够好,就可以放进项目中,它也足够好到可以在放到文档网站上帮助你的读者。典型情况下,持续部署是配置在一台单独的自动化服务器上的,比如 [Jenkins][13] 或者 [Git 钩子][14]。不论哪种方式,基于文本的标记语言与文档即代码平台(通常是静态网页生成器,比如 [Hugo][15] 或 [Sphinx][16])结合来生成文档网站,然后自动部署。
+
+在部署之前,同样的自动化流程可以被用于对将要合并的拉取请求进行检查。在一个编程项目中,通过计算机自行进行代码检查、代码测试和其他的质量检查已经习以为常。通过类似 [Vale][17] 之类的工具可以对文本进行检查,文档项目也可以同样对待。你也可以添加其他的工具,比如添加一个链接检查器来确保文中所有的链接都是有效的。
+
+### 用于文档流程的代码工具
+
+被工程师们熟知并喜爱的工具都是非常好的工具,它们同时也可以用于其他类型的项目中。对于文档而言,它们提升了宝贵的效率,尤其是当你希望你的文档与你的团队同步推进的时候。上面讨论到的所有工具都是开源的,你可以亲自尝试,也可以为大型全球团队,亦或者介于两者之间的团队,部署它们。愿你的成文过程和编程过程一样顺畅。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/docs-as-code
+
+作者:[Lorna Mitchell][a]
+选题:[lkxed][b]
+译者:[CanYellow](https://github.com/CanYellow)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/lornajane
+[b]: https://github.com/lkxed
+[1]: https://www.writethedocs.org/guide/docs-as-code
+[2]: https://opensource.com/article/17/9/docbook
+[3]: http://commonmark.org
+[4]: https://opensource.com/article/20/12/eclipse
+[5]: https://opensource.com/article/21/10/markdown-editors
+[6]: https://opensource.com/downloads/cheat-sheet-git
+[7]: https://opensource.com/article/18/1/step-step-guide-git
+[8]: https://opensource.com/article/19/4/write-git
+[9]: https://opensource.com/article/21/11/linux-diff-patch
+[10]: https://opensource.com/article/20/3/meld
+[11]: https://www.redhat.com/sysadmin/linux-wc-command?intcmp=7013a000002qLH8AAM
+[12]: https://opensource.com/downloads/grep-cheat-sheet
+[13]: https://www.jenkins.io
+[14]: https://www.redhat.com/sysadmin/git-hooks
+[15]: https://opensource.com/article/18/3/start-blog-30-minutes-hugo
+[16]: https://opensource.com/article/19/11/document-python-sphinx
+[17]: https://vale.sh
+[0]: https://img.linux.net.cn/data/attachment/album/202212/19/215600m3bzhqlu23lskssl.jpg
\ No newline at end of file
diff --git a/translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
deleted file mode 100644
index 9c373f96bd..0000000000
--- a/translated/talk/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
+++ /dev/null
@@ -1,86 +0,0 @@
-[#]: subject: "Write documentation like you develop code"
-[#]: via: "https://opensource.com/article/22/10/docs-as-code"
-[#]: author: "Lorna Mitchell https://opensource.com/users/lornajane"
-[#]: collector: "lkxed"
-[#]: translator: "CanYellow"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-像代码开发一样撰写文档
-======
-
-不想让书写滞后于你的思考?或许你该尝试一下全新的写作方式。
-
-很多工程师与手工艺者都对他们使用的工具有特别的要求。为了顺利的完成工作,你需要最好的工具和使用它们的技巧。软件开发中最好的工具在应用到其他的数字创作领域中也可以是很强大的。[Docs as Code][1] (译注:代码化文档)的方式就是很好的例子。Doc as Code 意味者使用与代码开发相同的工具与工作流来撰写文档。Doc as Code 的支持者认为这样的方式可以在降低作者的工作符负荷的同时保证更好的文档结构。
-
-### 文本格式与源文件控制
-
-从传统的写作平台切换到 Docs as Code 方式时,最主要的调整是写作内容保存在基于文本的标记格式中。这一转变使得基于纯文本材料的工具都适用于文档写作。当你选择 [DocBook][2], [Markdown][3] 或者其他的标记语言时,从只使用一种工具到使用一种标准格式配合多种工具是一种巨大的转变。
-
-找到支持你的工作流程的工具是非常重要的。在 Docs as Code 项目中,很多开发者使用他们的 [代码编辑器][4]。考虑到他们已经是这些工具的高阶用户,一切都很顺利。而找到适合团队里适合其他专业从业者,比如技术撰稿、编辑、信息架构师和文档产品责任人,的工具可能需要一番努力。这里有一些选项可兹参考:
-
-- 各种[优秀的 Markdown 编辑器][5]之一是可行的
-- 附带良好的预览工具的代码编辑器可能更适合非程序员
-- 流行的 Git 托管服务的网页界面尤其适用于偶尔有需要的贡献者
-
-一旦内容以标记语言的格式安全保存就可以使用版本控制进行管理,比如 [Git][6]。Git 相比大多数文档平台具有更多的功能:
-
-- 清晰详细的文档版本历史:谁在什么时候改变了什么。
-- 简明的并行修改过程支持。在 Git 中使用分支工作意味着任何人可以做出他们想要的任何改变并在最后合并所做的更改。
-- 高级的协作与审查工具。所有的源代码管理平台都设计支持评审每一条细节变更并在足够的讨论后使每个人都确信改变可以继续的流程。
-- 自动质量检查,比如拼写检查和链接检查。这不仅节省了时间,而且可以发现以前无法发现的错误。
-
-源代码管理有很多优点。但要记住,如果你准备入门源代码管理,它有一定的学习曲线。这是一些有助于入门的优秀的[学习资源][7]和[作者文章][8]。你也可以让具有好奇心的文档作者自行寻找对他们有用的学习材料,而不是请你的工程师来培训他们。(探寻他人的学习历程是最困难的学习方式)
-
-### 拉取请求和评审循环
-
-
-所有的源代码管理平台都围绕拉取请求这一概念设计,这有时也称为合并请求。有时候,某些团队先将一系列改变整合到一起然后向主项目发起要求修改被拉取的请求。不过从许多方面来说,在文档中一次处理多个变更比在代码中更容易。改变文档中某处的一篇文章比之更改代码并找出有哪些地方依赖它具有更小的副作用。
-
-最强大的协作工具是 [diff][9],它可以通过一个易于察觉的方式展示旧版本与新版本之间的差异。该工具有多种不同的版本来使得比较视图更易于查看:双栏模式、行内模式,甚至是渲染后的 Markdown 模式。团队中的每一个成员都可以选择最适合他们的版本。举例而言,网页视图通常用于查看细微变更,而对于更大的变更,我习惯于使用 `vimdiff` 或 [Meld][10] 在本地浏览。
-
-检查的注释可以整体提交到变更中,也可以提交到指定变更中的个别行中。一些项目限制了行的最大长度,即硬换行,或者一行一句,以使得向文本的特定的部分添加注释更加容易。进一步的变更与注释可以在检查完成接受变更时添加。由于拉取请求在项目仓库以队列形式展示,这是很好的方式来展示目前正在进行的任务以及需要进行检查操作的任务。diff 工具使得评审人员更方便地加入他们的思考。尤其是你在与技术受众工作时,你可以通过他们日常使用的工具获得来自他们的评论。
-
-### 持续集成与部署
-
-以纯文本形式拥有你的文档的源代码有很多益处,你可以轻易找到每次需要修改的位置,你可以使用现有的诸如 [wc][11]、[grep][12]或 `tree` 之类的工具在潜在的大型文档集中工作。当你将这些与源代码管理平台结合起来之后,你可能获得更多的可用工具,并且它们都是开源的。
-
-另一个工作流程上的巨大提升是持续部署的能力。简单来说,这意味着,每当一个拉取请求被合并到主项目中,项目可以直接自动化部署到位。如果变更好到足以接收进项目中,他同时可以在文档页面中实时更新,从而帮助到你的读者。典型情况下,持续部署是配置在任意一台分离的自动化服务器上的,比如 [Jenkins][13] 或者 [Git Hooks][14]。不论哪种方式,基于文本的标记语言与 Doc as Code 平台(通常是静态网页生成器,比如 [Hugo][15] 或 [Sphinx][16])结合来生成文档网站,然后自动部署。
-
-在部署之前,同样的自动化流程可以被用于对将要合并的拉取请求进行检查。在一个编程项目中,通过计算机自行进行代码检查、代码测试和其他的质量检查已经习以为常。通过类似 [Vale][17] 之类的工具进行文本检查、文档项目也可以同样对待,你也可以添加其他的工具,比如添加一个链接检查器来确保文中所有的链接都是有效的。
-
-### 用于文档流程的代码工具
-
-被工程师们熟知并喜爱的工具都是非常好的工具,它们同时也可以用于其他类型的项目中。在文档项目中,它们提升了宝贵的效率,尤其是当你希望你的文档与你的团队同步推进的时候。上面讨论到的所有工具都是开源的,你可以亲自尝试,为大型全球团队部署他们,亦或者介于两者之间,最终使你的成文过程和编程过程一样顺畅。
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/10/docs-as-code
-
-作者:[Lorna Mitchell][a]
-选题:[lkxed][b]
-译者:[CanYellow](https://github.com/CanYellow)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/lornajane
-[b]: https://github.com/lkxed
-[1]: https://www.writethedocs.org/guide/docs-as-code
-[2]: https://opensource.com/article/17/9/docbook
-[3]: http://commonmark.org
-[4]: https://opensource.com/article/20/12/eclipse
-[5]: https://opensource.com/article/21/10/markdown-editors
-[6]: https://opensource.com/downloads/cheat-sheet-git
-[7]: https://opensource.com/article/18/1/step-step-guide-git
-[8]: https://opensource.com/article/19/4/write-git
-[9]: https://opensource.com/article/21/11/linux-diff-patch
-[10]: https://opensource.com/article/20/3/meld
-[11]: https://www.redhat.com/sysadmin/linux-wc-command?intcmp=7013a000002qLH8AAM
-[12]: https://opensource.com/downloads/grep-cheat-sheet
-[13]: https://www.jenkins.io
-[14]: https://www.redhat.com/sysadmin/git-hooks
-[15]: https://opensource.com/article/18/3/start-blog-30-minutes-hugo
-[16]: https://opensource.com/article/19/11/document-python-sphinx
-[17]: https://vale.sh
From 6ace7e47b3d67d2a93d5f7102daf444613e95e23 Mon Sep 17 00:00:00 2001
From: MjSeven
Date: Mon, 19 Dec 2022 22:21:32 +0800
Subject: [PATCH 094/266] Translating
---
...20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md b/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
index 14355235cb..f5b8157ba3 100644
--- a/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
+++ b/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/11/extend-c-python"
[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "MjSeven"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From bae6ed30668b27cf808de729ca8b2aa02107496d Mon Sep 17 00:00:00 2001
From: geekpi
Date: Tue, 20 Dec 2022 08:31:10 +0800
Subject: [PATCH 095/266] translated
---
...Try this Linux web browser as your file manager.md | 96 -------------------
...Try this Linux web browser as your file manager.md | 96 +++++++++++++++++++
2 files changed, 96 insertions(+), 96 deletions(-)
delete mode 100644 sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
create mode 100644 translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
diff --git a/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
deleted file mode 100644
index 0d959b6e95..0000000000
--- a/sources/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
+++ /dev/null
@@ -1,96 +0,0 @@
-[#]: subject: "Try this Linux web browser as your file manager"
-[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror"
-[#]: author: "Seth Kenlon https://opensource.com/users/seth"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Try this Linux web browser as your file manager
-======
-
-Konqueror is a file manager and web browser for the KDE Plasma Desktop. In many ways, Konqueror defined "network transparency," as it applied to a personal desktop. With Konqueror, you can browse remote network files (including the Internet itself, which really is just a collection of remote files viewed through a fancy lens) just as easily as browsing your local files. Sometimes there was some configuration and setup required, depending on what kind of file share you needed to access. But ultimately, the goal of having instant access to all the data you had permission to view was a reality with Konqueror in ways no other file manager had achieved. And at its peak, the open source web engine it developed (KHTML) was adopted by both Apple and Google, and lives on today as the core library of modern web browsing and, technically, Electron app development.
-
-Today, the KDE Plasma Desktop lists Konqueror as a web browser. Officially, file management has shifted over to [Dolphin][1], but Konqueror is still capable of doing the job. For the full and classic Konqueror experience, you should try the Plasma Desktop 3.x fork [TDE][2], but in this article I use Konqueror in KDE Plasma Desktop version 5.
-
-### Install Konqueror
-
-If you're running KDE Plasma Desktop already, you may already have Konqueror installed. If not, you can install it from your distribution's software repository. On Fedora, CentOS, Mageia, OpenMandriva, and similar:
-
-```
-$ sudo dnf install -y konqueror konqueror-plugins
-```
-
-On Debian, Linux Mint, Elementary, and similar:
-
-```
-$ sudo apt install -y konqueror konqueror-plugins
-```
-
-![Image of Konqueror's file manager.][3]
-
-### Configure Konqueror as a file manager
-
-The most convenient feature of Konqueror is that it's a web browser in addition to being a file manager. Or at least, that's theoretically its most convenient feature. If you're not using Konqueror as a web browser, then you may not want the URL field or the search engine field at the top of every file manager window.
-
-As with most KDE applications, Konqueror is highly configurable. You can reposition and add and remove toolbars, add or remove buttons, and so on.
-
-To adjust what toolbars are displayed, launch Konqueror and go to the **Settings** menu and select **Toolbars Shown**. The **Main** toolbar is probably all you really need for file management. It's the toolbar with navigation buttons on it. However, you may not even need that, as long as you're happy to navigate with keyboard shortcuts or using the **Go** menu.
-
-Keyboard navigation in Konqueror is the same as in Dolphin:
-
-- **Alt+Left arrow**: Back one step
-- **Alt+Up arrow**: Move to parent directory
-- **Alt+Home**: Go to home directory
-
-### Side panel
-
-To get a side panel with a listing of common folders, press **F9** or select **Show Sidebar** from the **Settings** menu. This adds a button bar along the left side of the Konqueror window. Click the **Home** icon to display a file tree of your home directory.
-
-![Image of Konqueror with a sidebar.][4]
-
-As the button bar suggests, this side panel can serve many purposes. Instead of your home directory, you can display bookmarked locations, a history of recent locations you've visited, remote filesystems, and more.
-
-### Applications
-
-Some people are used to an application menu. It's efficient and quick, and always in the same place. Other people prefer to launch applications from the terminal.
-
-There's yet another way to view application launchers, though. Konqueror's **Go** menu allows you go to a meta location called **Applications**, which lists application launchers, by category, as files in a file manager.
-
-![Image of applications in Konqueror.][5]
-
-You can see this in Dolphin, too, by manually typing **applications:** in the location field, but of the two it's Konqueror that provides a menu option to go there directly.
-
-### Network folders
-
-Similarly, Konqueror also provides a menu selection to go to network folders. The greatest network folder of them all is the Internet, but **Network Folders** is the meta location for network protocols other than HTTP. Most remote locations require some setup because they usually require authentication to access. Most of them can be configured through **System Settings**, including file systems accessible over Bluetooth, SMB or CIFS, MTP devices, Fish (file system over SSH), and even Google Drive.
-
-### Split view
-
-You can split the Konqueror window into panes, allowing you to see two folders at once without opening two windows. There are two split options: a vertical split with one pane on the left and the other on the right, or a horizontal split with one pane above the other.
-
-To split the Konqueror window, go to the **Window** menu and select either **Split View Left/Right** or **Spit View Top/Bottom**. Each pane is independent of the other, so you can navigate around in one pane, and then drag and drop files from one to the other.
-
-### Conquering your file system
-
-Konqueror isn't _just_ a file manager, and I don't think the developers of the Plasma Desktop expect you to use it as your primary file manager. There's even an option in the **File** menu to open a location in **Dolphin**, which indicates that Konqueror is a web browser with a file manager component. But that file manager component is a nice feature to have when you need it. And if you're not a fan of all the features Dolphin offers, Konqueror could be a suitable alternative.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/linux-file-manager-konqueror
-
-作者:[Seth Kenlon][a]
-选题:[lkxed][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/seth
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/22/12/linux-file-manager-dolphin
-[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde
-[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png
-[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png
-[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png
diff --git a/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
new file mode 100644
index 0000000000..5ff7fe755a
--- /dev/null
+++ b/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
@@ -0,0 +1,96 @@
+[#]: subject: "Try this Linux web browser as your file manager"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+试试这个 Linux 网络浏览器作为你的文件管理器
+======
+
+Konqueror 是 KDE Plasma 桌面的文件管理器和 Web 浏览器。在许多方面,Konqueror 定义了“网络透明度”,因为它适用于个人桌面。使用 Konqueror,你可以像浏览本地文件一样轻松地浏览远程网络文件(包括 Internet 本身,它实际上只是通过花哨的镜头查看的远程文件的集合)。有时需要进行一些配置和设置,具体取决于你需要访问的文件共享类型。但最终,通过 Konqueror 实现了即时访问你有权查看的所有数据的目标,这是其他文件管理器无法实现的。在其巅峰时期,它开发的开源网络引擎 (KHTML) 被苹果和谷歌采用,并作为现代网络浏览和 Electron 应用开发的核心库延续至今。
+
+今天,KDE Plasma 桌面将 Konqueror 作为网络浏览器。文件管理已正式转移到 [Dolphin][1],但 Konqueror 仍然能够完成这项工作。要获得完整和经典的 Konqueror 体验,你应该尝试 Plasma Desktop 3.x fork [TDE][2],但在本文中,我在 KDE Plasma Desktop 版本 5 中使用 Konqueror。
+
+### 安装 Konqueror
+
+如果你已经在运行 KDE Plasma Desktop,你可能已经安装了 Konqueror。如果没有,你可以从发行版软件仓库中安装它。在 Fedora、CentOS、Mageia、OpenMandriva 和类似软件上:
+
+```
+$ sudo dnf install -y konqueror konqueror-plugins
+```
+
+在 Debian、Linux Mint、Elementary 和类似软件上:
+
+```
+$ sudo apt install -y konqueror konqueror-plugins
+```
+
+![Image of Konqueror's file manager.][3]
+
+### 将 Konqueror 配置为文件管理器
+
+Konqueror 最方便的功能是它除了是一个文件管理器之外,还是一个网络浏览器。至少,这在理论上是它最方便的功能。如果那你没有将 Konqueror 用作 Web 浏览器,那么你可能不希望每个文件管理器窗口顶部都有 URL 区域或搜索引擎区域。
+
+与大多数 KDE 应用一样,Konqueror 是高度可配置的。你可以重新定位并添加和删除工具栏、添加或删除按钮等。
+
+要调整显示的工具栏,请启动 Konqueror 并转到**设置** 菜单并选择**显示的工具栏**。**主**工具栏可能是你真正需要的文件管理工具栏。它是带有导航按钮的工具栏。但是,你甚至可能不需要它,只要你乐于使用键盘快捷键或使用 **Go** 菜单进行导航即可。
+
+Konqueror 中的键盘导航与 Dolphin 中的相同:
+
+- **Alt+向左箭头**:后退一步
+- **Alt+向上箭头**:移动到父目录
+- **Alt+Home**:转到主目录
+
+### 侧边栏
+
+要获得包含常用文件夹列表的侧边栏,请按 **F9** 或从**设置**菜单中选择**显示边栏**。这会在 Konqueror 窗口的左侧添加一个按钮栏。单击 **Home** 图标以显示你的主目录的文件树。
+
+![Image of Konqueror with a sidebar.][4]
+
+正如按钮栏所暗示的那样,此侧边栏可用于多种用途。你可以显示书签位置,你最近访问过的位置的历史,远程文件系统等。
+
+### 应用
+
+有些人习惯于应用菜单。它高效快捷,并且始终在同一个地方。其他人更喜欢从终端启动应用。
+
+不过,还有另一种查看应用启动器的方法。Konqueror 的 **Go** 菜单允许你转到名为 **Applications** 的元位置,它按类别列出了应用程序启动器,就像文件管理器中的文件一样。
+
+![Image of applications in Konqueror.][5]
+
+你也可以在 Dolphin 中看到这个,方法是在位置区域中手动输入 **applications:**,但在这两者中,Konqueror 提供了一个菜单选项,可以直接进入该位置。
+
+### 网络文件夹
+
+类似地,Konqueror 还提供了一个菜单选择进入网络文件夹。其中最好的网络文件夹是 Internet,但**网络文件夹**是 HTTP 以外的网络协议的元位置。大多数远程位置需要一些设置,因为它们通常需要身份验证才能访问。它们中的大多数都可以通过**系统设置**进行配置,包括可通过蓝牙、SMB 或 CIFS、MTP 设备、Fish(通过 SSH 的文件系统)访问的文件系统,甚至是 Google Drive。
+
+### 拆分视图
+
+你可以将 Konqueror 窗口拆分为多个窗格,这样你就可以同时查看两个文件夹而无需打开两个窗口。有两种拆分选项:垂直拆分,一个窗格在左侧,另一个窗格在右侧,或者水平拆分,一个窗格在另一个窗格之上。
+
+要分割 Konqueror 窗口,进入**窗口**菜单,选择**分割视图左/右**或**分割视图上/下**。每个窗格都是独立的,所以你可以在一个窗格中浏览,然后把文件从一个窗格拖到另一个窗格。
+
+### 征服你的文件系统
+
+Konqueror 不_仅仅_是一个文件管理器,我认为 Plasma 桌面的开发者并不期望你把它作为你的主要文件管理器。在**文件**菜单中甚至有一个选项可以在 **Dolphin** 中打开一个位置,这表明 Konqueror 是一个带有文件管理器组件的网络浏览器。但是,当你需要时,这个文件管理器组件是一个不错的功能。如果你不喜欢 Dolphin 提供的所有功能,Konqueror 可能是一个合适的替代品。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-konqueror
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/22/12/linux-file-manager-dolphin
+[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde
+[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png
+[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png
+[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png
From 06d450cd8cd6ee34e925157860bcc2d61e716417 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Tue, 20 Dec 2022 08:33:14 +0800
Subject: [PATCH 096/266] translating
---
...20221218.1 ⭐️ Try this Python-based file manager on Linux.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
index e68b102a96..6a349bd658 100644
--- a/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
+++ b/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 7a8163efa147acd5244570ea5737e87550b3e076 Mon Sep 17 00:00:00 2001
From: duoluoxiaosheng <554765662@qq.com>
Date: Tue, 20 Dec 2022 08:52:28 +0800
Subject: [PATCH 097/266] Translate20221216 (#7)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* 12191625
* Update and rename sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md to translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
---
...️ Improve your documentation with JavaScript.md | 43 ++++++++++---------
1 file changed, 22 insertions(+), 21 deletions(-)
rename {sources => translated}/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md (51%)
diff --git a/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md b/translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
similarity index 51%
rename from sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
rename to translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
index 04434f2ebe..66c50a8515 100644
--- a/sources/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
+++ b/translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
@@ -7,32 +7,33 @@
[#]: publisher: " "
[#]: url: " "
-Improve your documentation with JavaScript
+
+使用 JavaScript 增强您的文档
======
-Open source software projects often have a very diverse user group. Some users might be very adept at using the system and need very little documentation. For these power users, documentation might only need to be reminders and hints, and can include more technical information such as commands to run at the shell. But other users may be beginners. These users need more help in setting up the system and learning how to use it.
+开源软件项目通常拥有非常多样化的用户人群。有些用户非常擅长使用该系统,并且只需要很少的文档。对于这些实力派的用户。文档只需要提供必要的提示,并且可以包含更多的技术信息,比如说在 shell 中运行的命令行。有些用户可能只是初学者。这些用户需要更多的帮助来设置系统并学习如何使用它。
-Writing documentation that suits both user groups can be daunting. The website's documentation needs to somehow balance "detailed technical information" with "providing more overview and guidance." This is a difficult balance to find. If your documentation can't meet both user groups, consider a third option — dynamic documentation.
+写一个同时适合这两个用户群体的文档是令人生畏的。网站文档需要在 “提供详细的技术信息” 和 “提供更多的概述和指导” 之间寻求一个平衡。这是一个很难找到的平衡。如果你的文档不能同时满足这两个用户人群,那么考虑一下另外一个选择 —— 动态文档。
-Explore how to add a little [JavaScript][1] to a web page so the user can choose to display just the information they want to see.
+探索在网页中添加一点 [JavaScript][1] 使用户可以选择自己想看的内容。
-### Structure your content
+### 构建您的内容
-You can use the example where documentation needs to suit both expert and novice users. In the simplest case, you can use a made-up music player called AwesomeProject.
+你可以把例程添加的你的文档中需要同时满足 专家expert 和 初学者novice 的地方。在这个例程中,你可以使用一个叫做 AwesmeProject 的虚构的音乐播放器。
-You can write a short installation document in HTML that provides instructions for both experts and novices by using the class feature in HTML. For example, you can define a paragraph intended for experts by using:
+你可以用 HTML 编写一个简短的安装文档,通过 HTML 的 类class 功能同时为专家和初学者提供操作指南。例如,你可以用下面的代码来为专家定义一个段落:
```
```
-This assigns both the expert class and the reader class. You can create a parallel set of instructions for novices using:
+这就同时指派了专家类 和读者类。 你可以用下面的代码来为初学者创建一个相同的段落。
```
```
-The complete HTML file includes both paragraphs for novice readers and experts:
+完整的 HTML 文件同时包含初学者的段落和专家的段落。
```
@@ -65,11 +66,11 @@ most Linux distributions. Check your graphical package manager and search for Aw
```
-This sample HTML document doesn't have a stylesheet associated with it, so viewing this in a web browser shows both paragraphs:
+例子中的 HTML 文档没有与之关联的样式表,所以浏览器中会显示所有的段落。
![Image of html in black text.][2]
-We can apply some basic styling to the document to highlight any element with the reader, expert, or novice classes. To make the different text classes easier to differentiate, let's set the reader class to an off-white background color, expert to a dark red text color, and novice to a dark blue text color:
+我们可在文档中添加一些简单的样式来为 读者reader,专家expert 或者 初学者novice 突出任何元素。为了使不同的文本更容易区分,让我们把读者类的背景颜色设置成米白色,专家类的字体颜色设置为深红色,初学者的字体颜色则设置为深蓝色。
```
@@ -103,13 +104,13 @@ color: darkblue;
How to install the software
```
-These styles help the two sections stand out when you view the page in a web browser. Both paragraphs with the installation instructions have an off-white background color because they both have the reader class. The first paragraph uses dark red text, as defined by the expert class. The second installation paragraph is in dark blue text, from the novice class:
+当你在浏览器中查看这个网页时,这些样式有助于这两个段落的突出。安装指导的所有段落都有一个米白色背景,因为他们都有 读者reader 这个类。第一个段落的字体是深红色的,这是由 专家expert 这个类定义的。第二个段落的字体是深蓝色的,则是由 初学者novice 这个类定义的。
![Image of html in red and black text.][3]
-### Add JavaScript controls
+### 添加 JavaScript 控件
-With these classes applied, you can add a short JavaScript function that shows just one of the content blocks. One way to write this function is to first set `display:none` to all of the elements with the reader class. This hides the content so it won't display on the page. Then the function should set `display:block` to each of the elements with the class you want to display:
+这些类的应用,使你可以添加一些简单的 JavaScript 函数,只显示其中一个内容块。一个方法是,首先给所有的读者类元素设置 `display:none` 。这会将内容隐藏,使其不会在页面上显示。然后,用函数将你想显示的类元素设置为 `display:block` :
```
```
-To use this JavaScript in the HTML document, you can attach the function to a button. Since the `readerview`function takes an audience as its parameter, you can call the function with the audience class that you want to view, either novice or expert:
+要在 HTML 文档中使用这个 JavaScript,你可以吧这个功能附加到一个按钮上。由于 `readerview` 函数需要一个听众audience(这应该是相对那个虚拟音乐播放器来说的)作为参数,你可以使用你想查看的听众类别来调用这个函数,可以是读者reader,专家expert 或者 初学者novice 。
```
@@ -199,21 +200,21 @@ manager and search for AwesomeProject to install it.
```
-With these controls in place, the web page now allows the user to select the text they want to see:
+有了这些设置,用户可以在网页上选择他们想看的文本。
![Image of window that allows you to select between novice and expert text.][4]
-Clicking either button will show just the text the user wants to read. For example, if you click the “view novice text” button, then you'll see just the blue paragraph:
+点击任何一个按钮都将只显示用户想要阅读的文本。例如,如果你点击了 “阅读初学者内容view novice text” 按钮,你就只会看到蓝色段落。
![Image showing blue text when you press the novice button.][5]
-Clicking the “view expert text” button hides the novice text and shows only the expert text in red:
+点击 “阅读专家内容view expert text” 按钮,就会隐藏初学者文本,只显示红色的专家文本。
![Image of red text after the expert button is clicked.][6]
-### Extend this to your documentation
+### 将此扩展到你的文档
-If your project requires you to write multiple how-to documents for different audiences, consider using this method to publish once and read twice. Writing a single document for all your users makes it easy for everyone to find and share the documentation for your project. And you won't have to maintain parallel documentation that varies in just the details.
+如果你的项目需要你为不同的听众编写多个操作文档,你可以考虑使用这种方法,一次发布,多次阅读。为所有的用户编写一个文档,是每个人都能很容易的发现和分享你项目的文档。而你也不必同时维护尽在细节上有所不同的多个文档。
--------------------------------------------------------------------------------
@@ -221,7 +222,7 @@ via: https://opensource.com/article/22/12/dynamic-documentation-javascript
作者:[Jim Hall][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/duoluoxiaosehng)
+译者:[duoluoxiaosheng](https://github.com/duoluoxiaosehng)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From eaa1a96fdf48213a085fc77b76d6f174a036c2b3 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Tue, 20 Dec 2022 10:05:55 +0800
Subject: [PATCH 098/266] RP
@Return7g
https://linux.cn/article-15365-1.html
---
...play with your Raspberry Pi and ping pong balls.md | 44 +++++++++++--------
1 file changed, 25 insertions(+), 19 deletions(-)
rename {translated/tech => published}/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md (64%)
diff --git a/translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md b/published/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
similarity index 64%
rename from translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
rename to published/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
index 303c5388ae..bb08ef8d4b 100644
--- a/translated/tech/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
+++ b/published/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
@@ -3,16 +3,20 @@
[#]: author: "Brian McCafferty https://opensource.com/users/bdm"
[#]: collector: "lkxed"
[#]: translator: "Return7g"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15365-1.html"
利用树莓派和乒乓球制作一个假日彩灯
======
+![][0]
+
+> 这个树莓派教程用于制作一个可编程的 LED 灯光显示器,非常适合各种技能水平的人。
+
我喜欢圣诞装饰品和灯饰,因此很长一段时间以来我一直想做一个可编程的 LED 项目。最近,我制作了一个由 LED 灯、乒乓球和树莓派 Zero 组成的灯阵列。这个项目相对简单并且具有教学价值,因此我认为它非常值得分享。
-整个彩灯由我设计,但其中一些灵感也来自 YouTube。你可以在我的 [Git 存储库][1] 中找到源代码和构建说明。
+整个彩灯由我设计,但其中一些灵感也来自 YouTube。你可以在我的 [Git 存储库][1] 中找到源代码和制作说明。
### 购物清单
@@ -25,15 +29,14 @@
- 烙铁
- 焊锡丝
- 22 AWG 0.35mm 实芯线
-- 10 米 WS2812(B) LED灯带(每米 30 像素)
+- 10 米 WS2812(B) LED 灯带(每米 30 像素)
- 万用表
- 钢丝钳
- 剥线钳
-
### 设计树莓派的灯光效果
-这个设计是由我展框的大小决定的。我在全球速卖通买到了每米 30 像素的灯带,它可以轻松地切成 0.5m 的长度,这样我就有了 15 个 LED。 乒乓球的直径是 40 毫米,所以我测量并放置了 40 毫米的线,每 40 毫米部分的中间都有 LED 灯条,这就产生了 17 行。 因此我的灯光阵列是 15×17。你可以根据实际情况来调整尺寸。
+这个设计是根据我展框的大小决定的。我在全球速卖通买到了每米 30 像素的灯带,它可以轻松地切成 0.5 米的长度,每条有 15 个 LED 灯。乒乓球的直径是 40 毫米,所以我测量并隔开 40 毫米划了线,LED 灯条放在每隔 40 毫米的中间部分,这就产生了 17 条线。因此我的灯光阵列是 15×17。你可以根据实际情况来调整尺寸。
为了给灯带和树莓派供电,我在电路板底部设置了数据线和电源线。我的 LED 灯不需要很多电,所以我使用树莓派 Zero 的 5V 输出 GPIO 为它们供电。当我以 50% 的亮度运行时,这个亮度已经足以在白天和晚上透过我的窗户看到。
@@ -51,21 +54,23 @@
\---------------< # 这里连接树莓派
```
-### 使用树莓派搭建显示屏
+### 使用树莓派制作显示屏
-当设计和布线的工作完成后就可以开始搭建显示屏了。
+当设计和布线的工作完成后就可以开始制作显示屏了。
-我在展板上测量并绘制了线路。我的灯带背面有胶带,所以我只需要取下背衬并将其贴在展板上。我检查了每个灯带的位置和数据线的方向以确保灯带可以按照树莓派的指令正确运作。
+我在展板上测量并绘制了线路。我的灯带背面有胶带,所以我只需要取下背衬并将其贴在展板上。我检查了每个灯带的位置和数据线的方向,以确保灯带可以按照树莓派的指令正确串联起来。
连接好所有灯带后,我剪下三段长度相同的电线,并将每个灯带末端的电源线、数据线和接地线连接到其上方。
![Connect each light strip at the end of each line.][4]
-在线路连接完成后,我检查了每条灯带之间的电源线和地线之间的连续性,以确保其连通性。我还检查了是否存在错误的桥接,所以我验证了电源线和地线之间的连续性。我还进行了一些测试以确保所有灯都正常点亮(参阅[测试代码][5]。)
+在线路连接完成后,我检查了每条灯带之间的电源线和地线之间的连接,以确保其连通性。我还检查了是否存在错误的桥接,所以我验证了电源线和地线之间的连接。我还进行了一些测试以确保所有灯都正常点亮(链路测试参阅 [测试代码][5])。
-完成上述工作后,我开始在乒乓球上剪洞,用剪刀刺入乒乓球的底部,然后剪一个小洞让 LED 灯穿进去。我每米使用 30 个像素的 LED 灯,所以每个 LED 之间有大约 30 毫米的空隙。
+完成上述工作后,我开始在乒乓球上剪洞,用剪刀刺入乒乓球的底部,然后剪一个小洞让 LED 灯穿进去。手工不太行,每个球都不太一样,但效果真的很好。我使用的每米 30 个像素的 LED 灯,所以每个 LED 之间有大约 30 毫米的空隙。一个乒乓球是 40 毫米宽,但我不打算开始单独焊接每一个 LED!我想,这是很重要的。首先,我并不擅长焊接(正如我的照片所显示的),而且无论如何,我想“好吧,它们是乒乓球。我可以把它们压在一起!”
-在 LED 灯上滴上热熔胶,然后在 LED 上放了一个乒乓球并按住大约五秒钟,就粘好了一个乒乓球。粘贴下一个乒乓球时我只需要挨着上一个乒乓球就能让所有乒乓球都变得整齐了
+我是这样做的:
+
+在 LED 灯上滴上热熔胶,然后在 LED 上放了一个乒乓球并按住大约五秒钟,就粘好了一个乒乓球。粘贴下一个乒乓球时我只需要挤着上一个乒乓球,就能让所有乒乓球都变得整齐了。我对它的外观很满意。它还有一个很好的好处,就是掩盖了我糟糕的焊接工作;)
![It's a tight fit, but the 40mm ping pong balls fit in a 30mm space just fine.][6]
@@ -75,7 +80,7 @@
### 测试代码
-测试代码需要确保所有部件都能正常工作,为此我使用了[Adafruit 指南][8],它以红、绿和蓝点亮每个 LED,然后依次进行循环。我在测试时使用它来确保我连接无误并且焊接正常。
+测试代码需要确保所有部件都能正常工作,为此我使用了这个 [Adafruit 指南][8],它以红、绿和蓝点亮每个 LED,然后依次进行循环。我在测试时使用它来确保我连接无误并且焊接正常。
在此之后,我在电子表格中设计了一个网格,将每个像素映射到一个网格位置。由于我的像素编号呈之字形排列,因此很难跟踪每个 LED(例如 A1 为 256,B1 为 226)。重新映射网格位置能使得我在构建图像时更容易。
@@ -89,13 +94,13 @@
![An LED snowflake.][11]
-### 全年可用的树莓派彩灯
+### 能玩一年的树莓派彩灯
-我不确定这是否已经完全完成了。自从把它摆放到橱窗里,几乎每个晚上我都会添加一些新的图像和动画。我已经在考虑除夕夜的时候要做成什么样了。它不会像圣诞装饰品一起在圣诞节后被放进储藏室。 我只需要在上面显示其它图案,就能使它成为一个全年可用的彩灯! 我的一个朋友推荐了像素马里奥,这听起来是个好主意!
+我不确定这是否已经完全完成了。自从把它摆放到橱窗里,几乎每个晚上我都会添加一些新的图像和动画。我已经在考虑除夕夜的时候要做成什么样了。它不会像圣诞装饰品一起在圣诞节后被放进储藏室。我只需要在上面显示其它图案,就能使它成为一个能玩一年的彩灯!我的一个朋友推荐了像素版马里奥,这听起来是个好主意!
-我的代码仍然需要完善。 例如,我做了一些滚动文本,但当我为文本的每个位置重新绘制时却花了很多时间。我想我可以用循环做一些事情,或者图像库可以帮助更轻松地滚动字母,并使添加文本更容易,而不是在每一步打开和关闭每个像素。
+我的代码仍然需要完善。例如,我做了一些滚动文本,但当我为文本的每个位置重新绘制时却花了很多时间。我想我可以用循环做一些事情,或者图像库可以帮助更轻松地滚动字母,并使添加文本更容易,而不是在每一步打开和关闭每个像素。
-这里有一张照片记录了我制作的全过程[LED 乒乓墙][12]。
+这里有一张照片记录了我制作的全过程:[LED 乒乓墙][12]。
可以在此处观看它的运行视频:[XMas 灯光展示][13]。
@@ -108,7 +113,7 @@ via: https://opensource.com/article/22/11/raspberry-pi-holiday-light-display
作者:[Brian McCafferty][a]
选题:[lkxed][b]
译者:[Return7g](https://github.com/Return7g)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -127,3 +132,4 @@ via: https://opensource.com/article/22/11/raspberry-pi-holiday-light-display
[11]: https://opensource.com/sites/default/files/2022-11/IMG_20201127_215314.webp
[12]: https://projects.bdm.scot/Xmas%20LED%20Wall%202020/
[13]: https://youtu.be/zc0501GzpMw
+[0]: https://img.linux.net.cn/data/attachment/album/202212/20/095754r7q0z001lvx6p600.jpg
\ No newline at end of file
From a2c61c63b8fd6eb1652068c934e5c03e2f80e7bb Mon Sep 17 00:00:00 2001
From: toknow-gh
Date: Wed, 21 Dec 2022 11:34:03 +0800
Subject: [PATCH 099/266] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sources/tech/20210917 Open source game achievements.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20210917 Open source game achievements.md b/sources/tech/20210917 Open source game achievements.md
index 663e6387a2..c8ae732235 100644
--- a/sources/tech/20210917 Open source game achievements.md
+++ b/sources/tech/20210917 Open source game achievements.md
@@ -2,7 +2,7 @@
[#]: via: "https://fedoramagazine.org/open-source-game-achievements/"
[#]: author: "Dennis Payne https://fedoramagazine.org/author/dulsi/"
[#]: collector: "lujun9972"
-[#]: translator: " "
+[#]: translator: "toknow-gh"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From ee66b0f93131eb6f7e7e6bbfcde68ae8203a5795 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 21 Dec 2022 16:18:01 +0800
Subject: [PATCH 100/266] RP
@geekpi
https://linux.cn/article-15368-1.html
---
...e Images With ‘Converter’ GUI Tool in Linux.md | 33 ++++++++++---------
1 file changed, 17 insertions(+), 16 deletions(-)
rename {translated/tech => published}/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md (68%)
diff --git a/translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md b/published/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
similarity index 68%
rename from translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
rename to published/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
index 292044c8e9..eab96f22e5 100644
--- a/translated/tech/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
+++ b/published/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
@@ -3,20 +3,22 @@
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15368-1.html"
在 Linux 中使用 “Converter” GUI 工具转换和操作图像
======
-你可以随时在您的系统上[安装 ImageMagick][1] 来转换图像,但并不是每个人都喜欢使用终端来转换和操作图像。
+![][0]
+
+你可以随时在你的系统上 [安装 ImageMagick][1] 来转换图像,但并不是每个人都喜欢使用终端来转换和操作图像。
那么,如果你有一个 GUI 应用作为前端来帮助解决这个问题呢? **Converter** 就是这样的工具。
它是 ImageMagick 的前端。所以你不需要使用命令来转换和操作图像。
-请注意,大多数 Ubuntu 系统通常都预装了 ImageMagick。如果你的系统上还没有安装,你可以随时参考我们的[安装指南][1]。
+请注意,大多数 Ubuntu 系统通常都预装了 ImageMagick。如果你的系统上还没有安装,你可以随时参考我们的 [安装指南][1]。
### Converter:ImageMagick 的图形前端
@@ -26,9 +28,9 @@
我不想键入命令来快速转换图像。因此,我更喜欢使我能够更快地做事的图形工具。
-[Converter][3] 是一个开源图形前端,可以让你做到这点。它是一个 GTK4+libadwaita 应用。
+[Converter][3] 是一个开源图形前端,可以让你做到这点。它是一个 GTK4 + libadwaita 应用。
-你可以将图像转换为各种文件格式,包括 **png、webp、jpeg、heif、heic 和 bmp**。可以肯定地说,你获得了对最流行的图像文件格式的支持。所以,它应该会派上用场。
+你可以将图像转换为各种文件格式,包括 png、webp、jpeg、heif、heic 和 bmp。可以肯定地说,你获得了对最流行的图像文件格式的支持。所以,它应该会派上用场。
![file format converter][4]
@@ -36,29 +38,27 @@
![customize converter][5]
-你还可以调整图像的质量、大小和背景颜色。要访问这些选项,请在转换图像之前单击用户界面中的“**更多选项**”。
+你还可以调整图像的质量、大小和背景颜色。要访问这些选项,请在转换图像之前单击用户界面中的“更多选项More Options”。
![converter more options][6]
-可以使用百分比、精确像素或比率自定义图像大小。对于精确操作,更改尺寸应该有所帮助。
+可以使用百分比、精确像素或比率自定义图像大小。对于精确操作,更改尺寸可能更有用。如果你希望图像缩放到一定程度,百分比或比例功能应该可以帮助你做到这一点。你还可以选择为图像添加滤镜。
-如果你希望图像缩放到一定程度,百分比或比例功能应该可以帮助你做到这一点。你还可以选择为图像添加滤镜。
+总体而言,你可以获得使用 Converter 调整大小、转换和优化图像质量的基本功能。
-总体而言,您可以获得使用 Converter 调整大小、转换和优化图像质量的基本功能。
-
-你还可以[调整 Nautilus][7] 以获得[右键单击上下文菜单中的调整大小选项][8]。它不会像这个工具那样通用。
+你还可以 [调整 Nautilus][7] 以获得 [右键单击上下文菜单中的调整大小选项][8]。但它不像这个工具那样通用。
### 在 Linux 上安装 Converter
Converter 在 [Flathub][9] 上以 Flatpak 的形式提供,可以安装在你选择的任何 Linux 发行版上。
-遗憾的是,你无法在 Linux 系统上安装任何二进制包。因此,你可能需要参考我们的 [Flatpak 指南][10]来安装它。
+遗憾的是,你无法在 Linux 系统上安装任何二进制包。因此,你可能需要参考我们的 [Flatpak 指南][10] 来安装它。
```
flatpak install flathub io.gitlab.adhami3310.Converter
```
-你可以在其 [GitLab 页面][3]上探索更多相关信息。
+你可以在其 [GitLab 页面][3] 上探索更多相关信息。
_你对我们接下来要重点介绍的此类有趣工具有什么建议吗? 让我们在评论中知道。_
@@ -69,7 +69,7 @@ via: https://itsfoss.com/converter-tool/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -85,3 +85,4 @@ via: https://itsfoss.com/converter-tool/
[8]: https://itsfoss.com/resize-images-with-right-click/
[9]: https://flathub.org/apps/details/io.gitlab.adhami3310.Converter
[10]: https://itsfoss.com/flatpak-guide/
+[0]: https://img.linux.net.cn/data/attachment/album/202212/21/161705qzvydyyd8v8y3cyh.jpg
\ No newline at end of file
From 83c2a2f216c6c705b707b7c1b1dc627eadbed9c2 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 21 Dec 2022 16:56:16 +0800
Subject: [PATCH 101/266] RP
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@cool-summer-021
https://linux.cn/article-15369-1.html
翻译的很好,文字流畅准确。
---
...6 Promises Much More than Faster Speeds.md | 96 +++++++++++++++++++
...6 Promises Much More than Faster Speeds.md | 95 ------------------
2 files changed, 96 insertions(+), 95 deletions(-)
create mode 100644 published/20220608 WiFi 6 Promises Much More than Faster Speeds.md
delete mode 100644 translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
diff --git a/published/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/published/20220608 WiFi 6 Promises Much More than Faster Speeds.md
new file mode 100644
index 0000000000..959a4170f6
--- /dev/null
+++ b/published/20220608 WiFi 6 Promises Much More than Faster Speeds.md
@@ -0,0 +1,96 @@
+[#]: subject: "WiFi 6 Promises Much More than Faster Speeds"
+[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/"
+[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/"
+[#]: collector: "lkxed"
+[#]: translator: "cool-summer-021"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15369-1.html"
+
+WiFi 6 带来的不仅是高速
+======
+
+> WiFi 6 提高了网络连通性,它在不久的将来有望为数万亿台设备组网,并且能够不间断而高效地工作。它虽然在 2019 年就取得了官方认证,但由于疫情原因,它的测试工作面临不少挑战。本文旨在对这项技术进行概述。
+
+![WiFi-6][1]
+
+WiFi 技术的下一代标准,称为 “WiFi 6”,也可以称为 “AX WiFi” 或 “802.11ax”。它是为满足指数级增长的设备组网需求而产生的,因此也可以用于 VR 和智能家居。它是现有的 802.11ac WiFi 标准的升级版,可以应对现有技术在容量、效率、覆盖范围和性能方面遇到的挑战。
+
+![Figure 1: WiFi 6][2]
+
+这项技术是在 2014 年进行研发,完成于 2018 年,由 IEEE 高性能无线网络研究组(HEW SG)发布。产品认证于 2019 年后期进行,此时三星 Galaxy Note 10 和 Ruckus R750 使用了这种技术。WiFi 6 运行于 1GHz 和 6GHz 波段,主要的频率为 2.4GHz-5GHz。
+
+如今,每个家庭平均有九台设备需要连接 WiFi。WiFi 6 主要致力于改善网络质量,而不是提升某些设备的速度。
+
+### WiFi 6的特点
+
+- **多用户、多输入、多输出(MU-MIMO):** 路由器和多台设备可以同时通信。在 2.4GHz 和 5GHz 频率上,它支持四个同步的数据流,当这些数据流添加到一个用户时,可以从智能路由器接收到相当大的输入数据的带宽。
+- **1024-QAM:** 这令 WiFi 6 的每个数据包能编码的字节数更多,吞吐量增加了 25%。它不仅提高了大业务量情况下的通信效率,也最大限度增加了传输速率。这在现代企业应用系统领域有很大的优势。
+- **正交频分复用(OFDM):** 支持四倍的副载波,速度也提高了 11%。扩展的信号支持用户同时进行更多数据包传输。所以数据包之间的等待时间和延迟就减少了。
+- **增加的信道宽度:** 80MHz 的波段加入了 160MHz 的信道通信,信道宽度增加了一倍。因此,路由器可以容纳更多用户,为每个用户提供更大的数据流。
+- **目标唤醒时间(TWT):** 这是 WiFi 6 特有的。它支持每台设备独立协商发送和接收的唤醒时间。它可以增加总体睡眠时间,令电池寿命最大化。它还支持许多额外的网络选项,特别是对 IoT 设备的支持。
+- **提升安全性:** 一切支持 WiFi 6 的设备都需要包含 WPA3 协议。它可以对未经验证的通信进行加密,针对暴力字典攻击提供了强大的密码保护,以及对敏感信息进行 192 位的加密,提升数据的可靠性。
+- **波束赋形:** 借助八根天线,波束赋形能提高传输速率,通信范围也因直接定向到某个客户端而扩大。它对快速移动的、可能面临多用户、多输入、多输出的设备起到了支撑作用。波束赋形也有利于控制那些蓄意发出干扰信号的天线的传输。然后信号会被重新定向到新的目标。
+
+### 支持 WiFi 6 的设备
+
+到目前为止,路由器、中继器、网状网络和多数 WiFi 使用者还是以 WiFi 5 为标准。WiFi 6 是 2019 年推出的。一些支持 WiFi 5 的早期设备存在一些兼容性问题 —— 它们可以使用 WiFi 6 的网络,但得不到相应的支持服务。
+
+WiFi 6 的路由器是向后兼容的。应该确保网络已经为此做好了准备。
+
+WiFi 6 实现了较低的电量消耗,在任何场景(包括 IoT)下,都是个不错的选择。它减少了不必要的数据流动,还会通知设备何时将数据激活或令其睡眠。所以不必要的数据流动减少了,性能和电池寿命也提高了。
+
+三星 Galaxy Note 10 和 Ruckus R750 是全球第一款经认证支持 WiFi 6 的智能手机和接入设备,苹果的最新款 iPhone 也紧随其后。WiFi 联盟已经确立了认证方案,正如人们预期的那样,等待入市的那些新款无线产品也开始申请认证了。下列设备已支持 WiFi 6:
+
+* iPhone 11 和之后的型号
+* 三星 Galaxy S10、S20、Note 10 和 Note 20
+* 配置 M1 处理器的苹果电脑
+* 智能电视
+
+> 为了全面享受到 802.11ax 标准带来的改进,硬件和软件的功能都需要基于这种 WiFi 技术进行升级。
+
+### 硬件测试
+
+为了充分挖掘最新款设备的潜力,需要一台 WiFi 6 路由器来运行网络。几年前,这么做的成本很高,但现在我们有多种选择,甚至可以使用网格系统、游戏路由器、范围扩展器等等。只有在进行实际测试时,才可以购买最划算的设备。如今,在速度方面,TP-Link Archer AX6000 是最快的,它击败了所有的竞争者。这款路由器可以以 1523 Mbps 的速率无线传输数据,有效传输距离为 1.5米(5 英尺)。
+
+很重要的一点,请务必记住,这些路由器提速,并不是在变魔术。理论上的最大速率 9.6 Gbps是实现不了的。这种理论上的最大速率,实际上也会被多台设备分摊掉。
+
+WiFi 6 侧重于在连接设备密集的地方提供高质量的连接。它不会令单台设备的速率指数级增长,但会使相关的设备运行处于理想水平。
+
+只有各大互联网服务提供商(ISP)的加速计划与 WiFi 6 路由器结合起来,才能体现它的真正潜力。真正的挑战是那些 ISP 承受的,因为它们需要铺设新型的光纤来利用这种下一代技术。存在一个重要的问题:当ISP 的通信速率变得更快,现有的硬件会变得多余吗?
+
+### WiFi 6 的应用
+
+- **大型公共场所(LPV):** 体育馆和会议中心是上千台设备同时联网的公共场所。WiFi 6 能改善参会者体验,增强消费者互动,还能提供附加服务,比如即时回放,订购餐食等。它还支持 LPV 业主开拓新的商业机会。
+- **交通枢纽:** 公共交通站点也是人们需要同时联网的场所。OFDMA 和 BSS 这类明显具有 WiFi 6 色彩的技术为解决这种问题提供了必要的工具。
+- **物联网和智慧城市建设:** WiFi 6 的能效令物联网设备可以进入休眠模式,并且可以在预定的间隔内开启信号发射器,以便在无需过多维护的情况下增加现场作业时间。
+- **教育机构:** 大学校园内的图书馆、礼堂和报告厅内的日间 WiFi 使用密度是最高的,夜晚几乎没有人。WiFi 6 是这类场景的完美选项。
+
+(LCTT 译注:相关产品推荐部分节略。)
+
+### 面临的挑战
+
+WiFi 6 不一定使速度更快,但它能确保在一定范围内的设备速率不会在未来几年变慢。虽然它面临三重挑战,但这些问题常常被忽视。
+
+- 需要对不支持的设备进行升级:即使 Wifi 6 向后兼容,但只能在最大限度使用这种技术时才能做得合理。这意味着每次都要更新设备。
+- 内部网络以外的速度和性能:WiFi 6 能为诸如云文件共享之类服务提供极好的连接性。然而,ISP 的相关资源也会影响速度和性能。
+- 覆盖范围问题:在各个国家,传输信号和带宽都是由法律规定上限的。因此,为了符合法律规定的上限,WiFi 6 的覆盖范围也是受限的。
+
+尽管存在这些挑战,一些企业,像 Aruba、华硕、AT&T、Boingo、博通、思科、Comcast、CommScope、Cypress、Extreme Networks、英特尔、Netgear、Orange、高通、TP-Link 和小米,都在关注 WiFi 6 更多的可能性。
+
+--------------------------------------------------------------------------------
+
+via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/
+
+作者:[Sharon Katta][a]
+选题:[lkxed][b]
+译者:[cool-summer-021](https://github.com/cool-summer-021)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.opensourceforu.com/author/sharon-katta/
+[b]: https://github.com/lkxed
+[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6.jpg
+[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6-1.jpg
+[0]: https://img.linux.net.cn/data/attachment/album/202212/21/165355hi20ky6mchmj0h38.jpg
\ No newline at end of file
diff --git a/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
deleted file mode 100644
index 210c958523..0000000000
--- a/translated/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
+++ /dev/null
@@ -1,95 +0,0 @@
-[#]: subject: "WiFi 6 Promises Much More than Faster Speeds"
-[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/"
-[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/"
-[#]: collector: "lkxed"
-[#]: translator: "cool-summer-021"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-WiFi 6 带来的不仅是高速
-======
-WiFi 6 提高了网络连通性,它在不久的将来有望为数万亿台设备组网,并且能够不间断而高效地工作。它虽然在2019年就取得了官方认证,但由于疫情原因,它的测试工作面临不少挑战。本文旨在对这项技术进行概述。
-
-![WiFi-6][1]
-
-WiFi 技术的下一代标准,称为 ‘WiFi 6’,也可以称为 ‘AX WiFi’ 或 ‘802.11ax’。它是为满足指数级增长的设备组网需求而产生的,因此也可以用于 VR 和智能家居。它是现有的 802.11ac WiFi 标准的升级版,可以应对现有技术在容量、效率、覆盖范围和性能方面遇到的挑战。
-
-![Figure 1: WiFi 6][2]
-
-这项技术是在 2014 年进行研发,完成于2018年,由 IEEE 高性能无线网络研究组发布。产品认证于 2019 年后期进行,此时 Samsung Galaxy Note 10 和 Ruckus R750 使用了这种技术。WiFi 6 运行于 1GHz 和 6GHz 波段,主要的频率为 2.4GHz-5GHz。
-
-如今,每个家庭平均有九台设备需要连接 Wifi。WiFi 6 主要致力于改善网络质量,而不是提升某些设备的速度。
-
-### WiFi 6的特点
-
-**多用户、多输入、多输出(MU-MIMO):** 路由器和多台设备可以同时通信。支持即时数据流,用户可以从智能路由器接收的输入数据的带宽很大,在频率为 2.4GHz-5GHz 时都是可行的。
-**1024-QAM:** 这令 WiFi 6 的每个数据包能编码的字节数更多,吞吐量增加了 25%。它不仅提高了大业务量情况下的通信效率,也最大限度增加了传输速率。这在现代企业应用系统领域有很大的优势。
-**正交频分复用(OFDM):** 支持四倍的负载波,速度也提高了 11%。扩展的信号支持用户进行更大的即时数据包传输。所以数据包之间的等待时间和延迟就减少了。
-*增加的信道宽度:* 80MHz的波段加入了160MHz的信道通信,信道宽度增加了一倍。因此,路由器可以容纳更多用户,为每个用户提供更大的数据流。
-*目标唤醒时间(TWT):* 这是 WiFi 6 特有的。它支持每台设备协商发送和接收的唤醒时间。它可以增加总体处于睡眠状态的时间,令电池寿命最大化。它还支持许多额外的网络选项,特别是对 IoT 设备的支持。
-*提升安全性:* 一切支持 WiFi 6 的设备都需要包含 WPA3 协议。它可以对未经验证的通信进行加密,针对暴力字典攻击提供强大的密码保护,以及对敏感信息进行 192 位的加密,提升数据的可靠性。
-*波束赋形:* 借助八根天线,波束赋形能提高传输速率,通信范围也因直接定向到某个客户端而扩大。它对快速移动的、可能面临多用户、多输入、多输出的设备起到了支撑作用。波束赋形也有利于控制那些蓄意发出干扰信号的天线的传输。然后信号会被重新定向到新的目标。
-
-### 支持 WiFi 6的设备
-
-到目前为止,路由器、中继器、网状网络和多数 WiFi 使用者还是以 WiFi 5 为标准。WiFi 6 是 2019 年推出的。一些支持 WiFi 5 的早期设备存在一些兼容性问题——它们可以使用 WiFi 6 的网络,但得不到相应的支持服务。
-
-WiFi 6 的路由器是向后兼容的。应该确保网络已经为此做好了准备。
-
-WiFi 6 实现了较低的电量消耗,在任何场景(包括 IoT)下,都是个不错的选择。它减少了不必要的数据流动,还会通知设备何时将数据激活或令其睡眠。所以不必要的数据流动减少了,性能和电池寿命也提高了。
-
-Samsung Galaxy Note 10 和 Ruckus R750 是全球第一款经认证支持 WiFi 6 的智能手机和接入设备,Apple iPhone 最新款也紧随其后。WiFi 联盟建、确立了认证方案,正如人们预期的那样,等待入市的那些新款无线产品也开始申请认证了。下列设备已支持 WiFi 6:
-
-* iPhone 11 和之后的型号
-* Samsung Galaxy S10, S20, Note 10 和 Note 20
-* 配置 M1 处理器的苹果电脑
-* 智能电视
-
-> 为了全面享受到 802.11ax 标准带来的改进,硬件和软件的功能都需要基于这种 WiFi 技术进行升级。
-
-### 硬件测试
-
-为了充分挖掘最新款设备的潜力,需要一台 WiFi 6 路由器来运行网络。几年前,这么做的成本很高,但现在我们有多种选项,甚至可以使用网格系统,游戏路由器,范围扩展器等等。只有在进行实际测试时,才可以购买最划算的设备。如今,在速度方面,TP-Link Archer AX6000 是最快的,它击败了所有的竞争者。这款路由器可以以 1523 Mbps 的速率无线传输数据,有效传输距离为 1.5米(5英尺)。
-
-很重要的一点,请务必记住,这些路由器提速,并不是在变魔术。理论上的最大速率9.6 Gbps是实现不了的。这种理论上的最大速率,实际上也会被多台设备分摊掉。
-
-WiFi 6 侧重于在连接设备密集的地方提供高质量的连接。它不会令单台设备的速率指数级增长,但会使相关的操作处于理想水平。
-
-只有各大互联网服务提供商(ISP)的加速计划组合起来,加上 WiFi 6 路由器,才能体现它的真正潜力。真正的挑战是那些 ISP 承受的,因为它们需要铺设新型的光纤来利用这种下一代技术。存在一个重要的问题:当ISP 的通信速率变得更快,现有的硬件会变得多余吗?
-
-### WiFi 6 的应用
-
-**大型公共场所(LPVs):** 体育馆和会议室是上千台设备同时联网的公共场所。WiFi 6 能改善参会者体验,增强消费者互动,还能提供附加服务,比如即时回放,订购餐食等。它还支持 LPV 业主开拓新的商业机会。
-**交通枢纽:** 公共交通站点也是人们需要同时联网的场所。OFDMA 和 BSS 这类明显具有 WiFi 6 色彩的技术为解决这种问题提供了必要的工具。
-**物联网和智慧城市建设:** WiFi 6 的效率令物联网设备可以进入休眠模式,并且可以以预定的间隔信号开启信号传送器,以便在无需过多维护的情况下增加现场作业时间。
-**教育机构:** 大学校园内的图书馆、礼堂和报告厅内的日间 WiFi 使用密度也是最高的,夜晚几乎没有人。WiFi 6 是这类场景的完美选项。
-
-### 面临的挑战
-
-WiFi 6 不一定使速度更快,但它能确保在一定范围内的设备速率不会在未来几年变慢。虽然它面临三重挑战,但这些问题常常被忽视。
-需要对不支持的设备进行升级:即使 Wifi 6 向后兼容,但只能在最大限度使用这种技术时才能做得合理。这意味着每次都要更新设备。
-
-内部网络以外的速度和性能:WiFi 6 能为诸如云文件共享之类服务提供极好的连接性。然而,ISP 的相关资源也会影响速度和性能。
-
-*覆盖范围问题:* 在各个国家,传输信号和带宽都是由法律规定上限的。因此,为了符合法律规定的上限,WiFi 6 的覆盖范围也是受限的。
-
-尽管存在这些挑战,一些企业,像Aruba, Asus, AT&T, Boingo, Broadcom, 思科, Comcast, CommScope, Cypress, Extreme Networks, 英特尔, Netgear, Orange, Qualcomm, TP-Link 和小米,都在关注 WiFi 6 更多的可能性。
-
-(LCTT 译注:选题删除了原文中的相关产品推荐部分。)
-
---------------------------------------------------------------------------------
-
-via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/
-
-作者:[Sharon Katta][a]
-选题:[lkxed][b]
-译者:[cool-summer-021](https://github.com/cool-summer-021)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.opensourceforu.com/author/sharon-katta/
-[b]: https://github.com/lkxed
-[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6.jpg
-[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6-1.jpg
From c9a02f4fcd686f669d6d58147b5f4aa1c17b8998 Mon Sep 17 00:00:00 2001
From: fuyanjie
Date: Wed, 21 Dec 2022 19:53:44 +0800
Subject: [PATCH 102/266] translated
---
...in Ubuntu and other Linux Distributions.md | 187 ------------------
...in Ubuntu and other Linux Distributions.md | 186 +++++++++++++++++
2 files changed, 186 insertions(+), 187 deletions(-)
delete mode 100644 sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
create mode 100644 translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
diff --git a/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md b/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
deleted file mode 100644
index ac6e8dca33..0000000000
--- a/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
+++ /dev/null
@@ -1,187 +0,0 @@
-[#]: subject: "How to Record Streaming Audio in Ubuntu and other Linux Distributions"
-[#]: via: "https://itsfoss.com/record-streaming-audio/"
-[#]: author: "Abhishek Prakash https://itsfoss.com/"
-[#]: collector: "lkxed"
-[#]: translator: "FYJNEVERFOLLOWS"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How to Record Streaming Audio in Ubuntu and other Linux Distributions
-======
-How to record audio in Ubuntu and other Linux distributions?
-
-If you want to record a voice over through the microphone of your computer, you can use GNOME Sound recorder or Audacity.
-
-Using GNOME Sound Recorder is easy but it lacks features. Audacity could be overwhelming initially but it has plenty of features for professional level recording. However, I am not going into that detail in this tutorial.
-
-GNOME Sound Recorder works with the microphone. There is another tool called Audio recorder and you can use it to record streaming music (from Sptify, YouTube, internet radio, Skype and most other sources) apart from microphone input.
-
-To summarize, I’ll show you the steps:
-
-* To record sound using GNOME Sound Recorder
-* To record streaming audio using Audio Recorder
-
-### Using Sound Recorder to record audio from the microphone
-
-GNOME desktop environment has a good variety of useful applications. Sound Recorder is one of them.
-
-You can install the [Sound Recorder][1] from the Ubuntu Software Center.
-
-![Sound Recorder can be installed from the Ubuntu Software Center][2]
-
-Or, you can use this command in the terminal to install it:
-
-```
-sudo apt install gnome-sound-recorder
-```
-
-Once installed, you can find it in the system menu and start from there.
-
-![GNOME Sound Recorder][3]
-
-Before you start using it, you should ensure that you have the correct input source chosen in the system settings. GNOME Sound Recorder
-
-![Ensure that you have chosen correct input in system settings][4]
-
-Once you open the Sound Recorder application, it will show an interface like the one below.
-
-![Hit the Record button to start audio recording][5]
-
-Hit on the record button and it starts recording audio instantly. While recording, you get options to pause, stop or discord the recording.
-
-![Options while recording audio][6]
-
-Your recordings are saved and available from the application interface itself. Click on the saved recordings to highlight it.
-
-You can replay the recordings or delete it. You can choose to save it to another location by clicking the save/download button. You may also rename the recordings using the edit button.
-
-![Saved recordings][7]
-
-That’s quite convenient, right? You can choose to record in MP3, FLAC and a couple of more formats.
-
-#### Removing GNOME Sound Recorder
-
-Don’t like it or find it lacking in terms of features?
-
-You can remove GNOME Sound Recorder from the Ubuntu Software Center or use the following command:
-
-```
-sudo apt remove gnome-sound-recorder
-```
-
-The application of GNOME Sound recorder is limited. It only records from the microphone and this is not what you would want in certain situations.
-
-Imagin you want to record a Skype call or something which is playing in an application or web browser? The nifty Audio Recorder helps in such cases.
-
-### Using Audio Recorder to record streaming audio
-
-You can watch this video to see how to use Audio Recorder. It’s a bit old but the steps are the same.
-
-![A Video from YouTube][8]
-
-[Subscribe to our YouTube channel for more Linux videos][9]
-
-You can use the [official PPA][10] to install Audio Recorder in Ubuntu and Linux Mint. Use the following commands in the terminal (Ctrl+Alt+T) one by one:
-
-```
-sudo apt-add-repository ppa:audio-recorder/ppa
-sudo apt update
-sudo apt install audio-recorder
-```
-
-Alternatively, you can download the source code from [launchpad][11]. Once installed, you can start the application from the Activity Overview:
-
-![Audio Recorder][12]
-
-#### Record all kinds of sound from various sources
-
-Audio Recorder records all kinds of sounds your computer makes.
-
-It records audio played through your system’s soundcard, microphones, browsers, webcams and more.
-
-In other words, it records even if your system sneezes (given that you want to record it). It allows you to select the recording device such as webcam, microphone, Skype, etc.
-
-To record the streaming music, select the appropriate source. For example, if you are playing streaming radio in Rhythmbox, then select Rythmbox.
-
-![Audio-Recorder Audio Settings][13]
-
-#### Record at your convenience
-
-Audio Recorder also gives you the option of setting timer. You can start, stop or pause recording at a given clock time or at a pre-defined interval. You can also set the limit on the recorded file size.
-
-Moreover, you can pause (and stop) when there is no audio (or very low sound) and resume it when sound comes back.
-
-All you have to do is to edit the text in the Timer panel. Comment out the “rules” you don’t want to apply and edit the ones per your requirement.
-
-![Audio-recorder Timer Settings][14]
-
-It provides additional settings like auto start at login, show tray icon and other record settings.
-
-![Audio-recorder Additional Settings][15]
-
-#### Save the recorded music file in various file formats
-
-Another gem. You can save the recorded file in your favourite file format. Supported file formats are OGG audio, Flac, MP3, SPX and WAV. I prefer MP3 for my recordings.
-
-The **recorded files are stored in ~/Audio** i.e., in the Audio folder inside your home directory.
-
-![Audio-recorder Audio Formats][16]
-
-#### How good is Audio Recorder?
-
-I used Audio Recorder in Ubuntu to [record the music played on YouTube][17]. I saved a 2-minute video in MP3 format that took 934 KB of space. But I must say I was not expecting the recorded sound quality to be so good. Honestly, I could not distinguish it from the original YouTube song.
-
-#### Removing Audio Recorder
-
-If you don’t find Audio Recorder to your liking, you can remove it using the following commands:
-
-```
-sudo apt remove audio-recorder
-```
-
-It will be a good idea to [remove the PPA as well][18]:
-
-```
-sudo apt-add-repository -r ppa:audio-recorder/ppa
-```
-
-### Conclusion
-
-There are probably several other tools for audio recording in Linux. Like GNOME, other desktop environments may also have sound recording apps. I know Deepin has one for sure.
-
-GNOME Sound Recorder is a decent tool for recording sound from your microphone. For recording sound from various sources, Audio Recorder is a good choice.
-
-I hope it helps with your audio recording needs. Let me know if you have any suggestions.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/record-streaming-audio/
-
-作者:[Abhishek Prakash][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/FYJNEVERFOLLOWS)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://itsfoss.com/
-[b]: https://github.com/lkxed
-[1]: https://wiki.gnome.org/Apps/SoundRecorder
-[2]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-ubuntu.png
-[3]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder.png
-[4]: https://itsfoss.com/wp-content/uploads/2022/08/microphone-settings-ubuntu.png
-[5]: https://itsfoss.com/wp-content/uploads/2022/08/using-sound-recorder-linux.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recording-with-sound-recorder.png
-[7]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-interface.png
-[8]: https://youtu.be/o7Ia2QGeB7Q
-[9]: https://www.youtube.com/c/itsfoss?sub_confirmation=1
-[10]: https://launchpad.net/~audio-recorder/+archive/ubuntu/ppa
-[11]: https://launchpad.net/audio-recorder
-[12]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-in-overview.png
-[13]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-settings.png
-[14]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-timer-settings.png
-[15]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-additional-settings.png
-[16]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-formats.png
-[17]: https://itsfoss.com/youtube-dl-audio-only/
-[18]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/
diff --git a/translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md b/translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
new file mode 100644
index 0000000000..7287e7da5c
--- /dev/null
+++ b/translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
@@ -0,0 +1,186 @@
+[#]: subject: "How to Record Streaming Audio in Ubuntu and other Linux Distributions"
+[#]: via: "https://itsfoss.com/record-streaming-audio/"
+[#]: author: "Abhishek Prakash https://itsfoss.com/"
+[#]: collector: "lkxed"
+[#]: translator: "FYJNEVERFOLLOWS"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+如何在 Ubuntu 和其他 Linux 发行版中录制流音频
+======
+如何在 Ubuntu 和其他 Linux 发行版中录制音频?
+
+如果你想通过计算机的麦克风录制语音,可以使用 `GNOME Sound Recorder` 或 `Audacity`。
+
+使用 `GNOME Sound Recorder` 很简单,但它缺乏功能。`Audacity` 最初可能会让人无法抗拒,但它有很多专业级录音的功能。然而,在本教程中,我不会详细讨论这个问题。
+
+`GNOME Sound Recorder` 能与麦克风配合使用。还有一个叫做 `Audio recorder` 的工具,除了麦克风输入,你可以使用它来录制流媒体音乐(来自 Sptify、YouTube、互联网广播、Skype 和其他大多数来源)。
+
+总而言之,我将向你展示以下步骤:
+
+* 使用 `GNOME Sound Recorder` 录制声音
+* 使用 `Audio Recorder` 录制流音频
+
+### 使用 `Sound Recorder` 从麦克风录制音频
+
+`GNOME` 桌面环境有很多有用的应用程序。Sound Recorder 就是其中之一。
+
+你可以从 `Ubuntu` 软件中心安装 [Sound Recorder][1]。
+
+![Sound Recorder can be installed from the Ubuntu Software Center][2]
+
+或者,你可以在终端中使用此命令来安装它:
+
+```
+sudo apt install gnome-sound-recorder
+```
+
+安装后,你可以在系统菜单中找到它并从那里开始。
+
+![GNOME Sound Recorder][3]
+
+在开始使用它之前,应确保在系统设置中选择了正确的输入源
+
+![Ensure that you have chosen correct input in system settings][4]
+
+一打开 `Sound Recorder`,它将显示如下界面。
+
+![Hit the Record button to start audio recording][5]
+
+点击录制按钮,它立即开始录制音频。录制时,你可以选择暂停、停止或取消录制。
+
+![Options while recording audio][6]
+
+你的录音将保存并可从应用程序界面本身获得。单击保存的录音以突出显示。
+
+你可以回放或删除录音。你可以通过单击保存/下载按钮选择将其保存到其他位置。你也可以使用编辑按钮重命名录音。
+
+![Saved recordings][7]
+
+这很方便,对吧?你可以选择以 `MP3`、`FLAC` 和多种格式录制。
+
+#### 删除 GNOME Sound Recorder
+
+不喜欢它或发现它缺乏功能?
+
+你可以从 `Ubuntu` 软件中心删除 `GNOME Sound Recorder` 或使用以下命令:
+
+```
+sudo apt remove gnome-sound-recorder
+```
+
+`GNOME Sound Recorder` 的应用受到限制。它只从麦克风录制,在某些情况下这不是你想要的。
+
+想象一下你想录制 Skype 通话或在应用程序或网络浏览器中播放的内容?在这种情况下,漂亮的 `Audio Recorder` 会有所帮助。
+
+### 使用 Audio Recorder 来录制流音频
+
+你可以观看以下视频以了解如何使用 `Audio Recorder`。它有点旧,但步骤是一样的。
+
+![A Video from YouTube][8]
+
+[Subscribe to our YouTube channel for more Linux videos][9]
+你可以使用 [官方 PPA][10] 在 Ubuntu 和 LinuxMint 中安装 `Audio Recorder`。在终端中依次使用以下命令(`Ctrl+Alt+T`):
+
+```
+sudo apt-add-repository ppa:audio-recorder/ppa
+sudo apt update
+sudo apt install audio-recorder
+```
+
+或者,你可以从[启动台][11]下载源代码。安装后,你可以从“活动概述”里启动应用程序:
+
+![Audio Recorder][12]
+
+#### 记录不同来源的各种声音
+
+`Audio Recorder` 记录计算机产生的各种声音。
+
+它记录通过系统声卡、麦克风、浏览器、网络摄像头等播放的音频。
+
+换句话说,即使你的系统打喷嚏,它也会记录(如果你想记录的话)。它允许你选择录制设备,如网络摄像头、麦克风、Skype等。
+
+要录制流媒体音乐,请选择适当的源。例如,如果你正在Rhythmbox 中播放流媒体广播,请选择 Rythbox。
+
+![Audio-Recorder Audio Settings][13]
+
+#### 在你方便的时候录制
+
+`Audio Recorder` 还提供了设置计时器的选项。你可以在给定的时钟时间或预定义的间隔开始、停止或暂停录制。你还可以设置录制文件大小的限制。
+
+此外,你可以在没有音频(或声音很低)时暂停(和停止),并在声音恢复时继续。
+
+你所要做的就是编辑计时器面板中的文本。注释掉你不想应用的“规则”,并根据你的要求编辑这些规则。
+
+![Audio-recorder Timer Settings][14]
+
+它提供了其他设置,如登录时自动启动、显示托盘图标和其他记录设置。
+
+![Audio-recorder Additional Settings][15]
+
+#### 以各种文件格式保存录制的音乐文件
+
+另一个宝藏。你可以将录制的文件保存为你喜爱的文件格式。支持的文件格式有 OGG 音频、Flac、MP3、SPX 和 WAV。我录音时更喜欢用 MP3 格式。
+
+**录制的文件存储在 `~/Audio`** 中,即主目录中的 `Audio` 文件夹中。
+
+![Audio-recorder Audio Formats][16]
+
+#### `Audio Recorder` 有多好?
+
+我在 Ubuntu 中使用 `Audio Recorder` [录制YouTube上播放的音乐][17]。我用 MP3 格式保存了一段 2 分钟的视频,占用了 934 KB 的空间。但我必须说,我没想到录制的音质会这么好。老实说,我无法将它与 YouTube 上的原始歌曲区分开来。
+
+#### 删除 `Audio Recorder`
+
+如果你不喜欢 `Audio Recorder`,可以使用以下命令将其删除:
+
+```
+sudo apt remove audio-recorder
+```
+
+[同时删除 PPA][18] 是个好主意:
+
+```
+sudo apt-add-repository -r ppa:audio-recorder/ppa
+```
+
+### 结论
+
+Linux 中可能还有其他几种用于音频录制的工具。像 `GNOME` 一样,其他桌面环境也可能有录音应用程序。我知道 `Deepin` 肯定有一个。
+
+`GNOME Sound Recorder` 是一个不错的工具,用于从麦克风录制声音。对于录制各种来源的声音,`Audio Recorder` 是一个不错的选择。
+
+我希望这篇文章能满足你的录音需求。如果你有什么建议,请告诉我。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/record-streaming-audio/
+
+作者:[Abhishek Prakash][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/FYJNEVERFOLLOWS)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/
+[b]: https://github.com/lkxed
+[1]: https://wiki.gnome.org/Apps/SoundRecorder
+[2]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-ubuntu.png
+[3]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder.png
+[4]: https://itsfoss.com/wp-content/uploads/2022/08/microphone-settings-ubuntu.png
+[5]: https://itsfoss.com/wp-content/uploads/2022/08/using-sound-recorder-linux.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recording-with-sound-recorder.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-interface.png
+[8]: https://youtu.be/o7Ia2QGeB7Q
+[9]: https://www.youtube.com/c/itsfoss?sub_confirmation=1
+[10]: https://launchpad.net/~audio-recorder/+archive/ubuntu/ppa
+[11]: https://launchpad.net/audio-recorder
+[12]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-in-overview.png
+[13]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-settings.png
+[14]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-timer-settings.png
+[15]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-additional-settings.png
+[16]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-formats.png
+[17]: https://itsfoss.com/youtube-dl-audio-only/
+[18]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/
From 645336b1366b52a16ba43de6642204a30895f2d6 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Thu, 22 Dec 2022 15:03:30 +0800
Subject: [PATCH 103/266] RP
@chai001125
https://linux.cn/article-15371-1.html
---
... 5 Best Linux Phones to Watch Out for in 2023.md | 86 ++++++++++---------
1 file changed, 46 insertions(+), 40 deletions(-)
rename {translated/tech => published}/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md (72%)
diff --git a/translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/published/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
similarity index 72%
rename from translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
rename to published/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
index e83a6dd39a..7673c4a30d 100644
--- a/translated/tech/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
+++ b/published/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
@@ -3,18 +3,20 @@
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: "chai001125"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15371-1.html"
-2023 年值得期待的 5 个最好的 Linux 手机
+2023 年值得期待的 5 款最佳 Linux 手机
======
->以下是一份**可能在 2023 年成为手机界主流的最好的 Linux 手机榜单**,其中还例举了各个 Linux 手机的**特点和价格**。
+![][0]
-安卓和 iOS 智能手机是世界上最流行的手机。然而,还有许多人都想要更"开放"、且**在隐私方面做得更好的手机**。如果你使用安卓手机,那么你就是放弃了你的隐私。在个人隐私保护方面,苹果的 iOS 手机表现得要好一点,但它也仅提供了有限的隐私保护。
+> 以下是一份可能在 2023 年成为主流的最佳 Linux 手机榜单,并介绍了各个 Linux 手机的特点和价格。
-这就是现在 Linux 手机变得很流行的原因,因为它们为开发者和终端用户提供了许多选择。虽然,各种类型的 Linux 手机都已经上市,但是要选择最好的 Linux 手机仍然十分困难。从 2022 年的趋势来看,以下是一些可能在 2023 年成为主流的 Linux 手机。
+安卓和 iOS 智能手机是世界上最流行的手机。然而,还有许多人都想要更“开放”、且**在隐私方面做得更好的手机**。如果你使用安卓手机,那么你就是放弃了你的隐私。在个人隐私保护方面,苹果的 iOS 手机表现得要好一点,但它也仅提供了有限的隐私保护。
+
+这就是现在 Linux 手机变得很流行的原因,因为它们为开发者和终端用户提供了许多选择。虽然目前有各种类型的 Linux 手机,但是要选择最好的 Linux 手机仍然令人困惑。从 2022 年的趋势来看,以下是一些可能在 2023 年成为主流的 Linux 手机。
### 关于 Linux 手机,你需要知道的事情
@@ -28,13 +30,13 @@
#### 1、Librem🥇
-**Purism** 公司是 Linux 手机市场上一个相当著名的品牌。Purism 公司推出的 **Librem 5 Linux** 智能手机支持 **PureOS**。PureOS 是一个专为 Linux 手机设计的操作系统,不基于安卓或 iOS 系统;并且它是一个开源的操作系统;它还支持 融合 convergence ,这意味着你可以通过 USB 集线器将手机插入电脑显示器,并将其作为一个桌面操作系统使用🆒。
+**Purism** 公司是 Linux 手机市场上一个相当著名的品牌。Purism 公司推出的 **Librem 5 Linux** 智能手机支持 **PureOS**。PureOS 是一个专为 Linux 手机设计的操作系统,不基于安卓或 iOS 系统,它是一个原生设计的自由开源的操作系统;它还支持 融合 convergence ,这意味着你可以通过 USB 集线器将手机插入电脑显示器,并将其作为一个桌面操作系统使用🆒。
-这款手机拥有优质的硬件和手感,并还十分注重安全和隐私。但是,这款令人印象深刻的智能手机价格有点贵,售价为 1299 美元💔。
+这款手机拥有优质的硬件和手感,还十分注重安全和隐私。但是,这款令人印象深刻的智能手机价格有点贵,售价为 1299 美元💔。
-#### Librem 5 Linux 的主要特点和规格
+Librem 5 Linux 的主要特点和规格:
-- 完全免费和开源的,基于 Linux 的移动操作系统:PureOS
+- 完全的自由开源,基于 Linux 的移动操作系统:PureOS
- 拥有独立的调制解调器、Wi-Fi 和蓝牙芯片
- 拥有 3 个专门的硬件键,来启用和禁用互联网、相机、Wi-Fi 和蓝牙
- 拥有智能卡读卡器
@@ -45,13 +47,13 @@
| 规格 | 描述 |
| :- | :- |
-| **屏幕** | 5.7 英寸(IPS TFT 720×1440) |
-| **运行内存 RAM** | 3 GB |
-| **内存** | 32 GB eMMC |
+| **屏幕** | 5.7 英寸(IPS TFT 720×1440) |
+| **内存** | 3 GB |
+| **存储** | 32 GB eMMC |
| **电池容量** | 4500 mAh |
| **CPU** | NXP i.MX 8M QUAD CORE Cortex-A53(四核),64 位 ARM,最高主频为 1.5GHz |
| **GPU** | Vivante GC7000 Lite |
-| **屏幕尺寸、材质、分辨率** | 5.7 英寸,IPS TFT,720×1440 像素 |
+| **屏幕** | 5.7 英寸,IPS TFT,720×1440 像素 |
| **摄像头** | 带 LED 闪光灯的 1300 万像素(后置)摄像头和 800 万像素(前置)摄像头 |
| **USB 接口** | Type C 接口 |
@@ -63,12 +65,12 @@ Linux 手机榜单的第 2 名是 **Pinephone**。Pinephone 也许是市场上
此外,PinePhone 同时有很多个版本,其中包括专业版本。PinePhone 的价格比较便宜,并且十分注重用户的隐私和可扩展性,如果你是第一次使用 Linux 手机,PinePhone 将会是一个不错的选择😌。
-#### Pinephone 的主要特点和规格
+Pinephone 的主要特点和规格:
- 支持的操作系统有 KDE Plasma mobile、Manjaro mobile、Sailfish OS 和 Ubuntu touch。
- 配备启用和禁用 LTE、摄像头、Wifi/BT 和麦克风的 5 个开关
- 可启动的 microSD 和 16GB/32GB eMMC 的内存空间
-- Type C 接口(可用于电源、数据和视频输出)
+- Type C 接口(可用于电源、数据和视频输出)
- 拥有 6 个 Pogo 引脚,允许自定义硬件扩展,如热像仪、无线充电、NFC、扩展电池盒或键盘盒。
- 拥有 3.5 毫米耳机插孔
- 支持融合,可将其插到一台电脑上
@@ -81,8 +83,8 @@ Linux 手机榜单的第 2 名是 **Pinephone**。Pinephone 也许是市场上
| **屏幕** | 5.95 英寸,高清 IPS 电容式触摸屏 |
| **CPU** | Allwinner A64 ARM QUAD Core Cortex-A53(四核),64 位 |
| **GPU** | Mali-400 MP2 |
-| **运行内存 RAM** | 2 种型号:2GB 和 3GB LPDDR3 SDRAM |
-| **内存** | 2 种型号:16GB and 32GB eMMC. |
+| **内存** | 2 种型号:2GB 和 3GB LPDDR3 SDRAM |
+| **存储** | 2 种型号:16GB and 32GB eMMC |
| **摄像头** | 500 万像素、1/4英寸、LED 闪光灯(后置)摄像头和 200 万像素、1/5英寸(前置)摄像头 |
| **电池** | 锂离子电池(容量为 2800 mAh) |
| **音频插孔** | 3.5 毫米 |
@@ -99,38 +101,38 @@ Pro 1 X 由伦敦的 **F(x)tec** 公司开发。它是 Linux 手机市场上新
![Pro 1 X][6]
-#### Pro 1 X 的主要特点和规格
+Pro 1 X 的主要特点和规格:
-- 首款基于 Linux 的、有内置滑出式键盘的智能手机
+- 首款基于 Linux 的、有内置滑出式的 QUERTY 键盘的智能手机
- 支持 Ubuntu touch 操作系统,并有安卓选项
-- 解锁的启动程序
+- 已解锁的启动程序
- 拥有 3.5 毫米耳机插孔
- 拥有 AMOLED 显示屏
-- 128 GB 内存/6 GB 运行内存:售价为 829 美元起
-- 256 GB 内存/8 GB 运行内存:售价为 899 美元起
+- 128 GB 存储/6 GB 内存:售价为 829 美元起
+- 256 GB 存储/8 GB 内存:售价为 899 美元起
| 规格 | 描述 |
| :- | :- |
| **CPU** | Snapdragon 662 Qualcomm |
| **GPU** | Adreno 610 Qualcomm |
-| **运行内存 RAM** | 2 种型号:6GB 和 8GB LPDDR4 |
-| **内存** | 128 GB(可扩展至 2 TB) |
+| **内存** | 2 种型号:6GB 和 8GB LPDDR4 |
+| **存储** | 128 GB(可扩展至 2 TB) |
| **屏幕** | 5.99英寸,弧形边缘,Corning® Gorilla® Glass 3(分辨率为 2160 x 1080 像素的 AMOLED 显示屏) |
| **摄像头** | 1200 万像素 Sony IMX363(后置)摄像头和800万像素(前置)摄像头 |
| **电池容量** | 3200 mAh |
| **音频插孔** | 3.5 毫米 |
-它的内置滑出式键盘有没有吸引到你呢?去 [pro 1 x 的购买官网][5] 看看吧。
+它的内置滑出式键盘是否吸引了你?去 [pro 1 x 的购买官网][5] 看看吧。
#### 4、Volla Phone
[Volla Phone][7] 可以同时运行**两个操作系统:Ubuntu Touch 和 VollaOS**。
-VollaOS 是一个安卓操作系统的修改版,没有谷歌,同时也很注重用户的隐私;Ubuntu Touch 是一个流行的 Linux 手机发行版。
+VollaOS 是一个安卓操作系统的修改版,没有谷歌专有的部分,同时也很注重用户的隐私;Ubuntu Touch 是一个流行的 Linux 手机发行版。
-#### Volla Phone 的主要特点和规格
+Volla Phone 的主要特点和规格:
-- 没有谷歌及其服务
+- 没有谷歌专有部分及其服务
- 不依赖云计算
- 加密的设备存储
- 使用安卓操作系统的修改版:Volla OS
@@ -146,9 +148,9 @@ VollaOS 是一个安卓操作系统的修改版,没有谷歌,同时也很注
| :- | :- |
| **CPU** | MediaTek Helio P23 |
| **GPU** | ARM Mali-G71 MP2 |
-| **内存** | 64 GB,eMMC |
-| **运行内存 RAM** | 4 GB DDR3 RAM |
-| **屏幕尺寸、材质、分辨率** | 6.3 英寸,IPS,2340×1080 像素 |
+| **内存** | 4 GB DDR3 RAM |
+| **存储** | 64 GB,eMMC |
+| **屏幕** | 6.3 英寸,IPS,2340×1080 像素 |
| **摄像头** | 1600万像素带闪光灯的(后置)摄像头和1600万像素(前置)摄像头 |
| **电池容量** | 4700 mAh |
| **USB 接口** | Type C 接口和 3.5 毫米音频插孔 |
@@ -159,13 +161,15 @@ VollaOS 是一个安卓操作系统的修改版,没有谷歌,同时也很注
[Fairphone 4][10] 是另一款具有模块化硬件的 Linux 智能手机。它支持 PostmarketOS 操作系统,并使用安卓操作系统的修改版本:FairPhone OS。这个手机的主要卖点是它的 模块化 modularity ,你可以替换手机的任何模块:你可以毫不费力地更换它的电池🔋;此外,不仅仅是更换电池,你还可以简单地用螺丝刀来更换它的显示屏等部件。
-#### Fairphone 4 的规格
+![][14]
+
+Fairphone 4 的规格:
| 规格 | 描述 |
| :- | :- |
| **CPU** | Octa-Core Kryo 570(八核) |
-| **运行内存 RAM** | 2 种型号:6GB 和 8GB |
-| **内存** | 2 种型号:128GB 和 256GB |
+| **内存** | 2 种型号:6GB 和 8GB |
+| **存储** | 2 种型号:128GB 和 256GB |
| **GPU** | Adreno 619 |
| **屏幕** | 6.3 英寸,全高清,IPS |
| **摄像头** | 2 个 4800 万像素(后置)摄像头和 2500 万像素(前置)摄像头 |
@@ -182,16 +186,16 @@ VollaOS 是一个安卓操作系统的修改版,没有谷歌,同时也很注
- Sony Xperia X (F5121 & F5122)
- Google Nexus 5
- OnePlus One
-- 支持 Ubuntu Touch OS 操作系统的[完整列表][12]
+- 支持 Ubuntu Touch OS 操作系统的 [完整列表][12]
- Xiaomi Redmi 2
- Xiaomi Mi Note 2
- OnePlus GT
- OnePlus 6
-- 支持 PostmarketOS 操作系统的[完整列表][13]
+- 支持 PostmarketOS 操作系统的 [完整列表][13]
### 结语
-以上就是关于如今市场上最好的 Linux 手机的全部内容了。你可以从这些手机的官方网站上,了解更多信息。因为手机的隐私保护在当下变得越来越重要了,我相信在未来会有越来越多的人使用 Linux 手机。
+以上就是关于如今市场上最好的 Linux 手机的全部内容了。你可以从这些手机的官方网站上了解更多信息。因为手机的隐私保护在当下变得越来越重要了,我相信在未来会有越来越多的人使用 Linux 手机。
诚然,Linux 手机本身的功能及其操作系统比不上安卓和苹果 iOS 手机。但是,对于 Linux 手机来说,更重要的是它的标准的设立、全球购买的可行性、在这一新兴市场的低入门价格以及对 Linux 手机应用生态系统的大力投资。在 Linux 手机的生态系统中需要更简化的界面,没有简单的界面,Linux 手机将变得更加零散,就像台式机一样。Linux 手机的制造商还需要和自由及开源软件(FOSS)参与者一起合作,最终才能使 Linux 手机广受欢迎。
@@ -202,7 +206,7 @@ via: https://www.debugpoint.com/best-linux-phones/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[chai001125](https://github.com/chai001125)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -221,3 +225,5 @@ via: https://www.debugpoint.com/best-linux-phones/
[11]: https://shop.fairphone.com/
[12]: https://devices.ubuntu-touch.io/
[13]: https://wiki.postmarketos.org/wiki/Devices
+[0]: https://img.linux.net.cn/data/attachment/album/202212/22/145904l88upudto8u7y3ui.jpg
+[14]: https://img.linux.net.cn/data/attachment/album/202212/22/150220zuowaoguya3azajw.jpg
\ No newline at end of file
From d225b166970845019fdff0719e984c87d66abe52 Mon Sep 17 00:00:00 2001
From: CanYellow
Date: Thu, 22 Dec 2022 15:08:03 +0800
Subject: [PATCH 104/266] translated (#28285)
* t1
* tranlatng
* translating
* translated
* translated
* Delete test.md
---
...inciples will impact the future of work.md | 93 ------------------
...inciples will impact the future of work.md | 97 +++++++++++++++++++
2 files changed, 97 insertions(+), 93 deletions(-)
delete mode 100644 sources/tech/20210103 How open principles will impact the future of work.md
create mode 100644 translated/tech/20210103 How open principles will impact the future of work.md
diff --git a/sources/tech/20210103 How open principles will impact the future of work.md b/sources/tech/20210103 How open principles will impact the future of work.md
deleted file mode 100644
index c7ecf68511..0000000000
--- a/sources/tech/20210103 How open principles will impact the future of work.md
+++ /dev/null
@@ -1,93 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: (CanYellow)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (How open principles will impact the future of work)
-[#]: via: (https://opensource.com/open-organization/21/1/open-is-future-of-work)
-[#]: author: (Ron McFarland https://opensource.com/users/ron-mcfarland)
-
-How open principles will impact the future of work
-======
-In many ways, the nature of our work defines us. So how do we prepare
-for a future when the nature of work will change dramatically?
-![Working on a team, busy worklife][1]
-
-If we define "work" as any contribution that receives any kind of reward, then work is—and always has been—one of the major factors that define who we are. It is a major aspect of our lives. Throughout our work (whatever that may be for us), we meet friends, identify sources of intellectual stimulation and emotional fulfillment, grow, and feel at our most creative and innovative. To our families, friends, communities and societies, work is extremely important. We should not take work—or its role in our lives—lightly or for granted.
-
-So if the [nature of work is going to change][2] in the future, it might mean that something key to our very sense of _self_ is going to change. And we should plan for those changes very seriously.
-
-Consider the transformation of work throughout the Industrial Revolution (between the 1700s and 1800s). It drove many people from rural farm work into factories in the cities, fundamentally altering their lifestyles. It required new, more specialized skills (rather than the kind of artisanship common in rural economies). As we examine our own personal work environments in the decades to come, we'll see a potential reversal of the trends we saw during the Industrial era: from hierarchy and interchangeable general skills and activities to the reinstatement of horizontal collaboration and more specialized mastery (back to artisanship).
-
-This time, though, these changes come on a global scale rather than a local one, and the speed of change is far more accelerated.
-
-And in this new work environment, [open organization principles][3] will play a vital role.
-
-In this series, I'll review [_The Shift_, a book by Professor Lynda Gratton][4]—a book that, while written in 2014 from data assembled in 2010, still rings true today (and will in the future, too). In this book, Gratton projects how work will change around 2025 and 2050. This is vital information, as it will help us make sound choices when preparing for and developing our careers moving forward.
-
-Gratton explains predominant forces influencing the future of work in this timeframe. In this article series, I'll summarize them—and explain how open organization principles are involved in each.
-
-### Five factors influencing the future of work
-
-Driving the Industrial Revolution were inventions that used coal and steam power. Today, [Gratton][5] says, five subtle forces are causing a similar "shift":
-
- 1. increased global activities
- 2. rapid advances in technology
- 3. human longevity and demographics
- 4. societal and family structural changes
- 5. the need for a low-carbon economy
-
-
-
-In short: Computers will become faster. Materials will become stronger. Medicines will cure more diseases allowing longer human life. To varying degrees, these will all impact on how we work in the future. Here are a few notes on each.
-
-#### 1\. Globalization
-
-In a previous article, "[Globalization: A history of openness][6]," I discussed multiple forces and factors related to globalization, one of them being trade. Between 1950 and 2010 the volume of global trade has increased by 60 times, while at the same time transportation costs have fallen. And at the same time, developing countries are seeing not only increased trade but new innovations. I also discussed globalization in early history as part of my article "[Open organizations through the ages][7]." And I explored the importance of global governance—both now and into the future—in my article ["What would a global open organization look like?"][8] According to Gratton, globalization will have an undeniable and unavoidable impact on the future work.
-
-If the nature of work is going to change in the future, it might mean that something key to our very sense of self is going to change. And we should plan for those changes very seriously.
-
-#### 2\. Technology
-
-The cost of computing has been coming down at an alarming rate. And it will continue to decrease. This will help connect billions of people that have been mostly left out of the greater global economy until now. They will start to both enter the workforce and become more influential consumers. At the same time, computers and advanced automation [will replace jobs performed by humans][9] in the future. This all will influence work shifts in the future.
-
-#### 3\. Demographics and longevity
-
-Gratton also notes the impacts that various generations will have on the future of work, particularly in the United States. Younger generations will play a major role in the future, as their attitudes are different from earlier generations. Moreover, birth rates in various global regions will have an impact on prosperity. There will be more migration, as some regions' populations will decline while others increase. They will move to what Professor Gratton calls "creative clusters." And finally, Gratton argues, the life expectancy globally will change. By 2025, 10% of the world's population will be over the age of 65. These people will more than likely want to continue to work for sustained income, continued mental stimulation, physical activity, connection to others, and a source of meaning and purpose in their lives. Also, consider that many children today will more than likely live longer than 100 years. If they retired at 65 years old, they would have 35 years to do very little. With that thought in mind, having several career changes and being active in volunteer and community service programs in the future will expand greatly.
-
-#### 4\. Society
-
-In addition to the generational changes, Gratton notes several important social changes, too. There will be changing roles of women in the workplace, she says. People will have more choices to form the life they want than ever before. And with increased productivity per person, there will be more average free time available than ever before, she writes.
-
-#### 5\. Energy resources
-
-I've talked about the expansion of resource-saving industries in a presentation I've given on "[The Resource Industrial Revolution][10]." Gratton adds valuable points to this conversation. Climate change, she notes, will gradually become a major issue, which will reduce transportation and consumption. In particular, global water supply will not be able to keep pace with demand. Water desalination projects will expand greatly (possibly powered by [Generation IV][11] distributed small modular nuclear power plants (SMR's) now being developed). Environmental catastrophes will displace people and migration will create displaced communities throughout the globe. More energy-efficient ways of living will be discovered and introduced. This will influence future jobs.
-
-### Preparing for the future
-
-These five forces will prompt fundamental changes to the way we work in the future, Gratton argues. But we need to begin preparing for that future now. In the next article of this series, I'll explain Gratton's outlook and a few scenarios for grappling with a rapidly changing future. How could a person look at those changes as career opportunities? On the other hand, what would happen if a person simply _ignored_ those changes to come? I'll review Gratton's thoughts on those questions. Also, I'll also explain how open principles can form the heart of necessary changes.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/open-organization/21/1/open-is-future-of-work
-
-作者:[Ron McFarland][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/ron-mcfarland
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife)
-[2]: https://opensource.com/open-organization/18/7/transformation-beyond-digital-2
-[3]: https://theopenorganization.org/definition/
-[4]: http://lyndagratton.com/books/the-shift/
-[5]: https://en.wikipedia.org/wiki/Lynda_Gratton
-[6]: https://opensource.com/open-organization/20/7/globalization-history-open
-[7]: https://opensource.com/open-organization/20/8/global-history-collaboration
-[8]: https://opensource.com/open-organization/20/9/global-open-organization
-[9]: https://opensource.com/open-organization/19/9/claiming-human-age-of-AI
-[10]: https://www.slideshare.net/RonMcFarland1/the-starting-of-the-third-industrial-revolution
-[11]: https://en.wikipedia.org/wiki/Generation_IV_reactor
diff --git a/translated/tech/20210103 How open principles will impact the future of work.md b/translated/tech/20210103 How open principles will impact the future of work.md
new file mode 100644
index 0000000000..363bc6886a
--- /dev/null
+++ b/translated/tech/20210103 How open principles will impact the future of work.md
@@ -0,0 +1,97 @@
+[#]: collector: (lujun9972)
+[#]: translator: (CanYellow)
+[#]: reviewer: ( )
+[#]: publisher: ( )
+[#]: url: ( )
+[#]: subject: (How open principles will impact the future of work)
+[#]: via: (https://opensource.com/open-organization/21/1/open-is-future-of-work)
+[#]: author: (Ron McFarland https://opensource.com/users/ron-mcfarland)
+
+开放原则将如何影响未来工作
+======
+我们的工作性质在很多方面塑造了我们自己。未来工作的性质将发生巨大变化,我们又该做何准备呢?
+
+![团队合作,忙碌的工作生活][1]
+
+如果我们将“工作”定位为获得某种回报的任何形式的付出,那么工作是并且一直是决定我们是谁的主要因素之一。工作是我们生活的一个重要方面。在工作中(不论这对我们意味着什么),我们结识朋友,我们获得智力激励和情感满足的源泉,我们得到成长,我们感受自身无穷的创造性。对于我们的家人、朋友、社区和社会而言,工作极其重要,我们不应轻视工作的重要性亦或视其为理所当然。
+
+因此如果未来[工作的性质将发生变化][2],这可能意味着恰恰是我们 _自我认知_ 中的某些关键要素将发生变化。我们应该认真准备应对这些转变。
+
+考察自第一次工业革命(18、19世纪)以来的工作转变,很多人从从事农业劳动转为进入城市工厂工作,这从根本上改变了他们的生活方式。新的工作方式需要全新的更专业的工作技能而不再是农村经济中常见的手艺。接下来的几十年里,当我们检视我们的个人工作环境时,我们可能会发现工业时代以来的这一趋势可能发生逆转:从层级制度、可代替的通用技术与活动重新转变为横向协作与对专业知识的熟练掌握的更高要求(回到手工艺时代)。
+
+这个时代与这些转变的到来将是全球性的而非区域性的,转变的速度已经大大加快了。
+
+在这一新的工作环境中,[开放组织原则][3]将扮演关键性的角色。
+
+本系列中,我将回顾 [Lynda Gratton 教授的作品,_转变_][4] (中译本:转变:未来社会工作岗位需求变化及应对策略,ISBN:9787121152894),本书成书于2014年(译注,本书原版有 [2011版][T1] 与 [2014版][T2] ),书中数据于2010年收集,但今天仍然适用(将来也一样)。本书中,Gratton教授指出了工作将在2025到2050年间如何变化。这是关键信息,因为它有助于我们在准备和发展我们的职业生涯时作出正确的选择。
+
+Gratton教授阐释了在上述时间段内影响未来工作的主要因素。本系列中,我们将对它们做一个总结并解释开放组织原则如何融入它们之中。
+
+
+### 影响未来工作的五个因素
+
+煤碳与蒸汽动力的发明推动了第一次工业革命。[Gratton教授][5]说,今天五种微妙的力量导致了类似的转变:
+
+ 1. 日益增长的全球化活动
+ 2. 技术的快速进步
+ 3. 人类寿命与人口数量
+ 4. 社会与家庭结构变化
+ 5. 低碳经济的需求
+
+简而言之,计算机更快了,材料更强了,药物能治疗更多的疾病使得人类的寿命更长。这些都在不同程度上影响了我们未来的工作方式。以下针对上述每一点的一些笔记。
+
+#### 1\. 全球化
+
+
+在以前的文章 [《全球化:开放的历史》][6] 中,我讨论了全球化的多种动力与影响因素,其中之一就是贸易。从1950年到2010年的60年间,全球贸易的体量增加了60倍,与此同时运输成本降低了,发展中国家不仅看到了贸易增长,而且看到了新的创新。我还在我的另一篇文章 [《历史变迁中的开放组织》][7]中讨论了历史早期的全球化。我另外在我的文章[《全球性的开放组织是怎么样的》][8]中探讨了从现在到未来全球治理的重要性。如Gratton教授所言,全球化在未来工作中将发挥不可否认与不可避免的影响。
+
+如果未来工作的性质将发生变化,这可能意味着恰恰是我们自我认知中的某些关键要素将发生变化。我们应该认真准备应对这些转变。
+
+#### 2\. 技术
+
+计算成本一直在以惊人的速度下降,它还将继续下降。这有助于连接到目前为止仍然大部分被隔离在更大的全球经济之外的数十亿人。他们将开始进入劳动力市场并成为更有影响力的消费者。与此同时,计算机与高级自动化在未来将[取代人类工作][9],这都将影响未来的工作转变。
+
+#### 3\.人口数量与寿命
+
+Gratton教授还记录了不同世代的人对未来工作的影响,尤其是在美国。年轻一代在未来将扮演主要角色,他们的态度将不同于上一代。此外,全球不同地区的出生率将影响经济繁荣。由于一些地区的人口降低而另一些的将会增加,将会出现更多的移民。他们将移民至Gratton教授谓之“创新集群”的地方。最后,Gratton教授认为全球预期寿命将会变化。截至2025年,世界人口的10%都将超过65岁,这些人口将更可能希望继续工作,为了得到持续的收入、精神刺激、身体活动,与他人的联系以及生活的意义与目的的源泉。考虑到今天的很多儿童都更可能拥有超过100岁的寿命,如果他们在65岁退休,他们余下的至少35年里将做不了太多事情。基于这样的考虑,在未来职业道路的多次转换以及在社区与志愿服务项目中的积极参与将会大大拓展。
+
+#### 4\. 社会
+
+常规的变化之外,Gratton教授还描述了一些社会变化。她说,未来女性在工作上的角色将会变化,人们将比以往拥有更多的选择来塑造他们希望的生活;随着个人劳动生产率的提升,平均空闲时间将比以往更多。
+
+#### 5\. 能源
+
+我在[资源工业革命][10]上的一篇演讲中讨论了资源节约型工业的扩张。格拉特教授为该对话补充一些有价值的观点。她认为气候变化将逐渐成为主要议题,并导致运输与消费的降低。尤其是世界范围内的水资源供给将无法跟上用水需求。海水淡化项目将大幅扩张(可能由正在开发的[第四代][11]分布式小型模块化核电站提供动力)。环境灾难将使人们背井离乡,并在世界范围内形成移民社区。更多能效高的生活方式将会被发现和引入,这将影响未来工作。
+
+
+### 为未来提前准备
+
+上述五种力量将推动未来工作方式发生根本性的改变,Gratton教授认为我们现在就需要开始为这样的未来提前做准备。本系列的下一篇文章中,我将介绍Gratton教授对未来的展望以及应对快速变化的未来的一些情境。个人如何将这些变化视作职业机会?另一方面,如果简单地选择对即将到来的变化 _视而不见_ 又会发生什么?我将回顾Gratton教授在这些问题上的思考。同样的,我也将解释开放原则如何形成必经的变革的核心。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/open-organization/21/1/open-is-future-of-work
+
+作者:[Ron McFarland][a]
+选题:[lujun9972][b]
+译者:[CanYellow](https://github.com/CanYellow)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/ron-mcfarland
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife)
+[2]: https://opensource.com/open-organization/18/7/transformation-beyond-digital-2
+[3]: https://theopenorganization.org/definition/
+[4]: http://lyndagratton.com/books/the-shift/
+[5]: https://en.wikipedia.org/wiki/Lynda_Gratton
+[6]: https://opensource.com/open-organization/20/7/globalization-history-open
+[7]: https://opensource.com/open-organization/20/8/global-history-collaboration
+[8]: https://opensource.com/open-organization/20/9/global-open-organization
+[9]: https://opensource.com/open-organization/19/9/claiming-human-age-of-AI
+[10]: https://www.slideshare.net/RonMcFarland1/the-starting-of-the-third-industrial-revolution
+[11]: https://en.wikipedia.org/wiki/Generation_IV_reactor
+
+[T1]: https://isbnsearch.org/isbn/9780007427956
+[T2]: https://isbnsearch.org/isbn/9780007525850
From b2dae94bd6652d4131fb254ee290d17cf9bffd17 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Thu, 22 Dec 2022 15:29:12 +0800
Subject: [PATCH 105/266] RP
@geekpi
https://linux.cn/article-15372-1.html
---
... ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 37 +++++++++++--------
1 file changed, 21 insertions(+), 16 deletions(-)
rename {translated/tech => published}/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md (66%)
diff --git a/translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/published/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
similarity index 66%
rename from translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
rename to published/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
index dbfa0952d0..23a4212934 100644
--- a/translated/tech/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
+++ b/published/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
@@ -3,47 +3,51 @@
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15372-1.html"
-Linux Mint 升级工具:使用指南
+Linux Mint 升级工具使用指南
======
-**以下是如何使用 Mint 升级工具升级到新的 Linux Mint 版本,即带有实际升级过程截图的 mintupgrade GUI。**
+![][0]
-如果你正在寻找最近发布的 **Linux Mint 21 Vanessa** 的**详细升级**步骤,请阅读本指南👉[从 Linux Mint 20.3 升级到 21][1]
+> 以下是如何使用 Mint 升级工具升级到新的 Linux Mint 版本,即带有实际升级过程截图的 mintupgrade GUI。
+
+如果你正在寻找最近发布的 **Linux Mint 21 Vanessa** 的**详细升级**步骤,请阅读本指南👉
+
+> **[从 Linux Mint 20.3 升级到 21][1]**
### Linux Mint 升级工具
-Linux Mint 团队 [宣布][2]在几个月前,他们构建了一个新的程序来升级 Linux Mint 的重要版本。它被称为 “mintupgrade2”。开发已经完成,目前正在支持和计划升级到主要版本,例如 Linux Mint 20 到 21,而不是小版本升级。
+Linux Mint 团队 [宣布][2] 在几个月前,他们构建了一个新的程序来升级 Linux Mint 的主要版本。它被称为 “mintupgrade2”。现在开发已经完成,目前正在支持和计划升级到主要版本,例如 Linux Mint 20 到 21,而不是小版本升级。
-尽管你可以使用标准的 apt 命令升级版本,但 Mint 团队认为重大版本升级是棘手的。新用户很难进行无缝升级,因为它涉及终端和一系列复杂的命令步骤。
+尽管你可以使用标准的 `apt` 命令升级版本,但 Mint 团队认为重大版本升级是棘手的。新用户很难进行无缝升级,因为它涉及终端和一系列复杂的命令步骤。
-此外,GUI 是一个封装器,具有 mintupgrade 程序的附加功能,它通过一键修复带来了一组系统前检查和升级过程。
+此外,该图形界面是一个封装器,为 `mintupgrade` 程序带来了更多功能,它带来了一组系统前检查和带有一键修复的升级过程。
-此外,mintupgrade 会进行基本检查,你是否连接到电源、系统是否是最新的、磁盘空间可用性等。
+此外,`mintupgrade` 会进行基本检查,比如你是否连接到电源、系统是否是最新的、磁盘空间可用性等。
为了向你展示它的外观和工作情况,我们安装了一台 LMDE 4 测试机测试。
-但在此之前,这里有一组功能:
+但在此之前,看一下它的功能集:
- 完全由 GUI 驱动的升级过程
- 多语言支持
- 升级前检查:系统备份、电源、磁盘空间、已删除包列表
- 可配置
-- 提醒你有关先前版本中的孤立包
+- 提醒你有关先前版本中的孤儿包
- 它为你提供了解决问题的选项
### 它如何运作
-当我们通过命令 `mintupgrade` 运行 mint 升级程序时,GUI 友好的欢迎屏幕为你提供了一个很好的起点并开始升级过程。然后,它开始自己进行一系列检查。
+当我们通过命令 `mintupgrade` 运行 Mint 升级程序时,GUI 友好的欢迎屏幕为你提供了一个很好的起点并开始升级过程。然后,它开始自己进行一系列检查。
![开始升级过程][3]
-除此之外,当它在你的系统中发现问题时,它会停止并为你提供足够的详细信息。单击“修复”后,它可以再次恢复该过程。
+除此之外,当它在你的系统中发现问题时,它会停止并为你提供足够的详细信息。单击“修复Fix”后,它可以再次恢复该过程。
-这不是全部。如果由于网络或互联网或任何其他问题而中断,它可以恢复升级过程。
+不止如此,如果由于网络或互联网或任何其他问题而中断,它可以恢复升级过程。
这个程序在我们的测试过程中在我们的测试系统中发现了以下错误,并且只需单击一下即可修复它们。
@@ -77,7 +81,7 @@ sudo apt install mintupgrade
最后,我认为它是 Linux Mint 团队最好的程序之一。正如你在上面看到的,它自己处理了许多错误。我所做的只是单击“修复”按钮。该程序足够智能,可以了解所有故障点并采取补救措施。
-[GitHub 和 mintupgrade 源码][10]
+> **[GitHub 上的 mintupgrade 源码][10]**
--------------------------------------------------------------------------------
@@ -102,3 +106,4 @@ via: https://www.debugpoint.com/mint-upgrade-tool/
[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-can-detect-the-packages-require-downgrade.jpg
[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Upgrade-Complete.jpg
[10]: https://github.com/linuxmint/mintupgrade
+[0]: https://img.linux.net.cn/data/attachment/album/202212/22/152601upz4gujhajauj5rj.jpg
\ No newline at end of file
From ab4f4b9f2892fda7d9f7773d6e37249a69d4b551 Mon Sep 17 00:00:00 2001
From: Bright Huang
Date: Thu, 22 Dec 2022 17:15:53 +0800
Subject: [PATCH 106/266] null
---
...s for measuring your open source software usage.md | 4 +-
test.md | 142 ++++++++++++++++++
2 files changed, 144 insertions(+), 2 deletions(-)
create mode 100644 test.md
diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
index 892fce0de0..3f35f490bd 100644
--- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
+++ b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
@@ -42,7 +42,7 @@ You may also be interested in downloads of the source code because downstream pr
Download metrics for source code are an even less reliable measure than binary downloads (although there is no research to demonstrate this). Just imagine that a developer wants to use the most recent version of your source code and has configured their build pipeline to always clone your repository for every build. Now imagine that an automated build process was failing and retrying to build, constantly cloning your repository. You can also imagine a scenario where the metric is lower than expected—say the repository is cached somewhere, and downloads are served by the cache.
-**[ Related read [5 metrics to track in your open source community][2] ]**
+**[ Related read [5 metrics to track in your open source community][2] ]**
In conclusion, download metrics are good proxies for detecting trends and providing context around current usage. We cannot define specifically how a download translates to usage. But we can say that an increase in downloads is an indicator of more potential users. For example, if you advertise your software and see that download numbers are higher during the campaign, it would be fair to assume that the advertisement prompted more people to download the software. The source and metadata of the download can also provide additional context for usage patterns. What versions of your software are still in use? What operating system or language-specific versions are more popular? This helps the community prioritize which platforms to support and test.
@@ -139,4 +139,4 @@ via: https://opensource.com/article/22/12/open-source-usage-metrics
[a]: https://opensource.com/users/georglink
[b]: https://github.com/lkxed
[1]: https://opensource.com/article/18/5/metrics-project-success
-[2]: https://opensource.com/article/22/11/community-metrics
+[2]: https://opensource.com/article/22/11/community-metrics
\ No newline at end of file
diff --git a/test.md b/test.md
new file mode 100644
index 0000000000..892fce0de0
--- /dev/null
+++ b/test.md
@@ -0,0 +1,142 @@
+[#]: subject: "8 ideas for measuring your open source software usage"
+[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics"
+[#]: author: "Georg Link https://opensource.com/users/georglink"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+8 ideas for measuring your open source software usage
+======
+
+Those of us who support open source project communities are often asked about usage metrics — a lot. The goal of these metrics is usually to demonstrate the software's importance as measured by its user base and awareness. We typically want to know: how many people use the software, how many installations are there, and how many lives are being touched.
+
+To make a long story short: We cannot answer these questions directly.
+
+Sorry to disappoint you if you were hoping for a definitive solution. No one has the perfect answers to questions about usage metrics. At least, no precise answers.
+
+The good news is that there are approximations and alternative metrics that can satisfy your thirst for knowledge about the software's usage, at least partially. This article explores these alternatives including their benefits and shortcomings.
+
+### Downloads
+
+When you visit websites that offer software, you can often see how many times the software has been downloaded. An example that comes to mind is Firefox, which used to have a download counter. It was an impressive number and gave the impression that Firefox was a popular browser—which it was for a while.
+
+However, individual behavior can directly impact the accuracy of this number. For example, when a person wipes their machine regularly, each rebuild incurs a separate download. To account for this reality, there needs to be a way to subtract a few dozen (maybe hundreds) downloads from the number because of that one person.
+
+Not only can downloads overestimate usage, but they can also underestimate usage. For instance, a system administrator may download a new version of Firefox once to a flash drive and then install it on hundreds of devices.
+
+Download metrics are easy to collect because you can log each download request on the server. The problem is that you don't know what happens to the software after it is downloaded. Was the person able to use the software as anticipated? Or did the person run into issues and abandon the software?
+
+For open source projects, you can consider a variety of download metrics, such as the number of binaries downloaded from:
+
+- the project website
+- package managers such as npm, PyPi, and Maven
+- code repositories like GitHub, GitLab, and Gitee
+
+You may also be interested in downloads of the source code because downstream projects are most likely to use this format (also read [How to measure the impact of your open source project][1]). Relevant download metrics include:
+
+- The number of clones (source code downloads) from code repositories like GitHub, GitLab, and Gitee
+- The number of archives (tar, zip) downloaded from the website
+- The number of source code downloads through package managers like npm, PyPi, and Maven
+
+Download metrics for source code are an even less reliable measure than binary downloads (although there is no research to demonstrate this). Just imagine that a developer wants to use the most recent version of your source code and has configured their build pipeline to always clone your repository for every build. Now imagine that an automated build process was failing and retrying to build, constantly cloning your repository. You can also imagine a scenario where the metric is lower than expected—say the repository is cached somewhere, and downloads are served by the cache.
+
+**[ Related read [5 metrics to track in your open source community][2] ]**
+
+In conclusion, download metrics are good proxies for detecting trends and providing context around current usage. We cannot define specifically how a download translates to usage. But we can say that an increase in downloads is an indicator of more potential users. For example, if you advertise your software and see that download numbers are higher during the campaign, it would be fair to assume that the advertisement prompted more people to download the software. The source and metadata of the download can also provide additional context for usage patterns. What versions of your software are still in use? What operating system or language-specific versions are more popular? This helps the community prioritize which platforms to support and test.
+
+### Issues
+
+As an open source project, you probably have an issue tracker. When someone opens an issue, two common goals are to report a bug or request a feature. The issue author has likely used your software. As a user, they would have found a bug or identified the need for a new feature.
+
+Obviously, most users don't take the extra step to file an issue. Issue authors are dedicated users and we are thankful for them. Also, by opening an issue, they have become a non-code contributor. They may become a code contributor. A rule of thumb is that for every 10,000 users, you may get 100 who open an issue and one who contributes code. Depending on the type of user, these ratios may differ.
+
+With regard to metrics, you can count the number of issue authors as a lower-bound estimation for usage. Related metrics can include:
+
+- The number of issue authors
+- The number of active issue authors (opened an issue in the last 6 months)
+- The number of issue authors who also contribute code
+- The number of issues opened
+- The number of issue comments written
+
+### User mailing lists, forums, and Q&A sites
+
+Many open source projects have mailing lists for users, a forum, and presence on a Q&A site, such as Stack Overflow. Similar to issue authors, people who post there can be considered the tip of the iceberg of users. Metrics around how active a community is in these mailing lists, forums, and Q&A sites can also be used as a proxy for increasing or decreasing the user base. Related metrics can focus on the activity in these places, including:
+
+- The number of user mailing list subscribers
+- The number of forum users
+- The number of questions asked
+- The number of answers provided
+- The number of messages created
+
+### Call-home feature
+
+To get accurate counts of users, one idea is to have your software report back when it is in use.
+
+This can be creepy. Imagine a system administrator whose firewall reports an unexpected connection to your server. Not only could the report never reach you (it was blocked), but your software may be banned from future use.
+
+Responsible ways to have a call-home feature is an optional service to look for updates and let the user know to use the latest version. Another optional feature can focus on usage telemetry where you ask the user whether your software may, anonymously, report back how the software is used. When implemented thoughtfully, this approach can allow users to help improve the software by their style of using it. A user may have the opinion: "I often don't allow this usage information sharing but for some software I do because I hope the developers will make it better for me in the long term."
+
+### Stars and forks
+
+Stars and forks are features on social coding platforms like GitHub, GitLab, and Gitee. Users on these platforms can star a project. Why do they star projects? GitHub's documentation explains, "You can star repositories and topics to keep track of projects you find interesting and discover related content in your news feed." Starring is the equivalent of bookmarking and also provides a way to show appreciation to a repository maintainer. Stars have been used as an indicator of the popularity of a project. When a project has a big announcement that attracts considerable attention, the star count tends to increase. The star metric does not indicate the usage of the software.
+
+Forks on these social coding platforms are clones of a repository. Non-maintainers can make changes in their fork and submit them for review through a pull request. Forks are more a reflection of community size than stars. Developers may also fork a project to save a copy they can access even after the original repository has disappeared. Due to the use of forks in the contribution workflow, the metric is a good indicator for the developer community. Forks do not typically indicate usage by non-developers because non-developers usually do not create forks.
+
+### Social media
+
+Social media platforms provide gathering places for people with shared interests, including Facebook, Instagram, LinkedIn, Reddit, Twitter, and more. Using a social media strategy, open source projects can attract people with interest and affinity for their projects by setting up respective gathering spaces on these platforms. Through these social media channels, open source projects can share news and updates and highlight contributors and users. They can also be used to meet people who would not otherwise interact with your project.
+
+We are hesitant to suggest the following metrics because they have no clear connection to actual usage of your software and often require analysis for positive, negative, and neutral sentiment. People may be excited about your project for many different reasons and want to follow it without actually using it. However, like other metrics already discussed, showing that you are able to draw a crowd in social media spaces is an indicator of the interest in your project overall. Metrics for different social media platforms may include:
+
+- The number of followers or subscribers
+- The number of messages
+- The number of active message authors
+- The number of likes, shares, reactions, and other interactions
+
+### Web analytics and documentation
+
+Website traffic is a useful metric as well. This metric is influenced more by your outreach and marketing activities than your number of users. However, we have an ace up our sleeve: our user documentation, tutorials, handbooks, and API documentation. We can see what topics on our website draw attention, including documentation. The number of visitors to the documentation would arguably increase with an increase in the number of discrete users of the software. We can therefore detect general interest in the project with visitors to the website and more specifically observe user trends by observing visitors to the documentation. Metrics may include:
+
+- The number of website visitors
+- The number of documentation visitors
+- The duration visitors spend on your website or in documentation
+
+### Events
+
+Event metrics are available if you are hosting events around your project. This is a great way to build community. How many people submit abstracts to speak at your events? How many people show up to your events? This can be interesting for both in-person and virtual events. Of course, how you advertise your event strongly influences how many people show up. Also, you may co-locate your event with a larger event where people travel anyway, and thus, are in town and can easily attend your event. As long as you use a consistent event strategy, you can make a case that a rise in speaker submissions and attendee registrations are indicative of increasing popularity and user base.
+
+You don't need to host your own event to collect insightful metrics. If you host talks about your project at open source events, you can measure how many people show up to your session focused on your project. At events like FOSDEM, some talks are specifically focused on updates or announcements of open source projects and the rooms are filled to the brim (like almost all sessions at FOSDEM).
+
+Metrics you might consider:
+
+- The number of attendees at your project-centric event
+- The number of talks submitted to your project-centric event
+- The number of attendees at your project-centric talks
+
+### Conclusion about approximating usage of open source software
+
+As we've illustrated, there are many metrics that can indicate trends around the usage of your software, and all are imperfect. In most cases, these metrics can be heavily influenced by individual behavior, system design, and noise. As such, we suggest that you never use any of these metrics in isolation, given the relative uncertainty of each one. But if you collect a set of metrics from a variety of sources, you should be able to detect trends in behavior and usage. If you have the means to compare the same set of metrics across multiple open source projects with commonalities—such as similar functionality, strong interdependencies, hosted under the same foundation, and other characteristics—you can improve your sense of behavioral baselines.
+
+Note that in this overview, we've also chosen to highlight metrics that evaluate direct usage. As most software depends on a variety of other software packages, we would be remiss if we did not mention that usage and behavior can also be heavily impacted by indirect usage as part of a dependency chain. As such, we recommend incorporating the count of upstream and downstream dependencies as another layer of context in your analysis.
+
+In closing, as the wielder of data and metrics, we encourage you to recognize the power and responsibility that you have for your stakeholders. Any metric that you publish has the potential to influence behavior. It is a best practice to always share your context—bases, sources, estimations, and other critical contextual information—as this will help others to interpret your results.
+
+We thank the CHAOSS Community for the insightful conversation at CHAOSScon EU 2022 in Dublin, Ireland that sparked the idea for this blog post and to the CHAOSS Community members who reviewed and helped improve this article.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/open-source-usage-metrics
+
+作者:[Georg Link][a]
+选题:[lkxed][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/georglink
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/18/5/metrics-project-success
+[2]: https://opensource.com/article/22/11/community-metrics
From 1483af90870f3977b95d122bfcfea353e891fa0d Mon Sep 17 00:00:00 2001
From: Bright Huang
Date: Thu, 22 Dec 2022 17:16:58 +0800
Subject: [PATCH 107/266] translation request
---
...️⭐️ 8 ideas for measuring your open source software usage.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
index 3f35f490bd..7fa3882c42 100644
--- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
+++ b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics"
[#]: author: "Georg Link https://opensource.com/users/georglink"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "CanYellow"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 3c685472d454870171a9a9211761054cbe87aab8 Mon Sep 17 00:00:00 2001
From: Bright Huang
Date: Thu, 22 Dec 2022 13:35:53 +0800
Subject: [PATCH 108/266] translated
---
...️⭐️ 8 ideas for measuring your open source software usage.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
index 7fa3882c42..6c4a9eec17 100644
--- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
+++ b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
@@ -42,7 +42,7 @@ You may also be interested in downloads of the source code because downstream pr
Download metrics for source code are an even less reliable measure than binary downloads (although there is no research to demonstrate this). Just imagine that a developer wants to use the most recent version of your source code and has configured their build pipeline to always clone your repository for every build. Now imagine that an automated build process was failing and retrying to build, constantly cloning your repository. You can also imagine a scenario where the metric is lower than expected—say the repository is cached somewhere, and downloads are served by the cache.
-**[ Related read [5 metrics to track in your open source community][2] ]**
+**[ Related read [5 metrics to track in your open source community][2] ]**
In conclusion, download metrics are good proxies for detecting trends and providing context around current usage. We cannot define specifically how a download translates to usage. But we can say that an increase in downloads is an indicator of more potential users. For example, if you advertise your software and see that download numbers are higher during the campaign, it would be fair to assume that the advertisement prompted more people to download the software. The source and metadata of the download can also provide additional context for usage patterns. What versions of your software are still in use? What operating system or language-specific versions are more popular? This helps the community prioritize which platforms to support and test.
@@ -139,4 +139,4 @@ via: https://opensource.com/article/22/12/open-source-usage-metrics
[a]: https://opensource.com/users/georglink
[b]: https://github.com/lkxed
[1]: https://opensource.com/article/18/5/metrics-project-success
-[2]: https://opensource.com/article/22/11/community-metrics
\ No newline at end of file
+[2]: https://opensource.com/article/22/11/community-metrics
From 3e966ad571cae3f3988400f877a6f6f03f8f2033 Mon Sep 17 00:00:00 2001
From: Bright Huang
Date: Thu, 22 Dec 2022 17:14:43 +0800
Subject: [PATCH 109/266] null
---
test.md | 142 --------------------------------------------------------
1 file changed, 142 deletions(-)
delete mode 100644 test.md
diff --git a/test.md b/test.md
deleted file mode 100644
index 892fce0de0..0000000000
--- a/test.md
+++ /dev/null
@@ -1,142 +0,0 @@
-[#]: subject: "8 ideas for measuring your open source software usage"
-[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics"
-[#]: author: "Georg Link https://opensource.com/users/georglink"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-8 ideas for measuring your open source software usage
-======
-
-Those of us who support open source project communities are often asked about usage metrics — a lot. The goal of these metrics is usually to demonstrate the software's importance as measured by its user base and awareness. We typically want to know: how many people use the software, how many installations are there, and how many lives are being touched.
-
-To make a long story short: We cannot answer these questions directly.
-
-Sorry to disappoint you if you were hoping for a definitive solution. No one has the perfect answers to questions about usage metrics. At least, no precise answers.
-
-The good news is that there are approximations and alternative metrics that can satisfy your thirst for knowledge about the software's usage, at least partially. This article explores these alternatives including their benefits and shortcomings.
-
-### Downloads
-
-When you visit websites that offer software, you can often see how many times the software has been downloaded. An example that comes to mind is Firefox, which used to have a download counter. It was an impressive number and gave the impression that Firefox was a popular browser—which it was for a while.
-
-However, individual behavior can directly impact the accuracy of this number. For example, when a person wipes their machine regularly, each rebuild incurs a separate download. To account for this reality, there needs to be a way to subtract a few dozen (maybe hundreds) downloads from the number because of that one person.
-
-Not only can downloads overestimate usage, but they can also underestimate usage. For instance, a system administrator may download a new version of Firefox once to a flash drive and then install it on hundreds of devices.
-
-Download metrics are easy to collect because you can log each download request on the server. The problem is that you don't know what happens to the software after it is downloaded. Was the person able to use the software as anticipated? Or did the person run into issues and abandon the software?
-
-For open source projects, you can consider a variety of download metrics, such as the number of binaries downloaded from:
-
-- the project website
-- package managers such as npm, PyPi, and Maven
-- code repositories like GitHub, GitLab, and Gitee
-
-You may also be interested in downloads of the source code because downstream projects are most likely to use this format (also read [How to measure the impact of your open source project][1]). Relevant download metrics include:
-
-- The number of clones (source code downloads) from code repositories like GitHub, GitLab, and Gitee
-- The number of archives (tar, zip) downloaded from the website
-- The number of source code downloads through package managers like npm, PyPi, and Maven
-
-Download metrics for source code are an even less reliable measure than binary downloads (although there is no research to demonstrate this). Just imagine that a developer wants to use the most recent version of your source code and has configured their build pipeline to always clone your repository for every build. Now imagine that an automated build process was failing and retrying to build, constantly cloning your repository. You can also imagine a scenario where the metric is lower than expected—say the repository is cached somewhere, and downloads are served by the cache.
-
-**[ Related read [5 metrics to track in your open source community][2] ]**
-
-In conclusion, download metrics are good proxies for detecting trends and providing context around current usage. We cannot define specifically how a download translates to usage. But we can say that an increase in downloads is an indicator of more potential users. For example, if you advertise your software and see that download numbers are higher during the campaign, it would be fair to assume that the advertisement prompted more people to download the software. The source and metadata of the download can also provide additional context for usage patterns. What versions of your software are still in use? What operating system or language-specific versions are more popular? This helps the community prioritize which platforms to support and test.
-
-### Issues
-
-As an open source project, you probably have an issue tracker. When someone opens an issue, two common goals are to report a bug or request a feature. The issue author has likely used your software. As a user, they would have found a bug or identified the need for a new feature.
-
-Obviously, most users don't take the extra step to file an issue. Issue authors are dedicated users and we are thankful for them. Also, by opening an issue, they have become a non-code contributor. They may become a code contributor. A rule of thumb is that for every 10,000 users, you may get 100 who open an issue and one who contributes code. Depending on the type of user, these ratios may differ.
-
-With regard to metrics, you can count the number of issue authors as a lower-bound estimation for usage. Related metrics can include:
-
-- The number of issue authors
-- The number of active issue authors (opened an issue in the last 6 months)
-- The number of issue authors who also contribute code
-- The number of issues opened
-- The number of issue comments written
-
-### User mailing lists, forums, and Q&A sites
-
-Many open source projects have mailing lists for users, a forum, and presence on a Q&A site, such as Stack Overflow. Similar to issue authors, people who post there can be considered the tip of the iceberg of users. Metrics around how active a community is in these mailing lists, forums, and Q&A sites can also be used as a proxy for increasing or decreasing the user base. Related metrics can focus on the activity in these places, including:
-
-- The number of user mailing list subscribers
-- The number of forum users
-- The number of questions asked
-- The number of answers provided
-- The number of messages created
-
-### Call-home feature
-
-To get accurate counts of users, one idea is to have your software report back when it is in use.
-
-This can be creepy. Imagine a system administrator whose firewall reports an unexpected connection to your server. Not only could the report never reach you (it was blocked), but your software may be banned from future use.
-
-Responsible ways to have a call-home feature is an optional service to look for updates and let the user know to use the latest version. Another optional feature can focus on usage telemetry where you ask the user whether your software may, anonymously, report back how the software is used. When implemented thoughtfully, this approach can allow users to help improve the software by their style of using it. A user may have the opinion: "I often don't allow this usage information sharing but for some software I do because I hope the developers will make it better for me in the long term."
-
-### Stars and forks
-
-Stars and forks are features on social coding platforms like GitHub, GitLab, and Gitee. Users on these platforms can star a project. Why do they star projects? GitHub's documentation explains, "You can star repositories and topics to keep track of projects you find interesting and discover related content in your news feed." Starring is the equivalent of bookmarking and also provides a way to show appreciation to a repository maintainer. Stars have been used as an indicator of the popularity of a project. When a project has a big announcement that attracts considerable attention, the star count tends to increase. The star metric does not indicate the usage of the software.
-
-Forks on these social coding platforms are clones of a repository. Non-maintainers can make changes in their fork and submit them for review through a pull request. Forks are more a reflection of community size than stars. Developers may also fork a project to save a copy they can access even after the original repository has disappeared. Due to the use of forks in the contribution workflow, the metric is a good indicator for the developer community. Forks do not typically indicate usage by non-developers because non-developers usually do not create forks.
-
-### Social media
-
-Social media platforms provide gathering places for people with shared interests, including Facebook, Instagram, LinkedIn, Reddit, Twitter, and more. Using a social media strategy, open source projects can attract people with interest and affinity for their projects by setting up respective gathering spaces on these platforms. Through these social media channels, open source projects can share news and updates and highlight contributors and users. They can also be used to meet people who would not otherwise interact with your project.
-
-We are hesitant to suggest the following metrics because they have no clear connection to actual usage of your software and often require analysis for positive, negative, and neutral sentiment. People may be excited about your project for many different reasons and want to follow it without actually using it. However, like other metrics already discussed, showing that you are able to draw a crowd in social media spaces is an indicator of the interest in your project overall. Metrics for different social media platforms may include:
-
-- The number of followers or subscribers
-- The number of messages
-- The number of active message authors
-- The number of likes, shares, reactions, and other interactions
-
-### Web analytics and documentation
-
-Website traffic is a useful metric as well. This metric is influenced more by your outreach and marketing activities than your number of users. However, we have an ace up our sleeve: our user documentation, tutorials, handbooks, and API documentation. We can see what topics on our website draw attention, including documentation. The number of visitors to the documentation would arguably increase with an increase in the number of discrete users of the software. We can therefore detect general interest in the project with visitors to the website and more specifically observe user trends by observing visitors to the documentation. Metrics may include:
-
-- The number of website visitors
-- The number of documentation visitors
-- The duration visitors spend on your website or in documentation
-
-### Events
-
-Event metrics are available if you are hosting events around your project. This is a great way to build community. How many people submit abstracts to speak at your events? How many people show up to your events? This can be interesting for both in-person and virtual events. Of course, how you advertise your event strongly influences how many people show up. Also, you may co-locate your event with a larger event where people travel anyway, and thus, are in town and can easily attend your event. As long as you use a consistent event strategy, you can make a case that a rise in speaker submissions and attendee registrations are indicative of increasing popularity and user base.
-
-You don't need to host your own event to collect insightful metrics. If you host talks about your project at open source events, you can measure how many people show up to your session focused on your project. At events like FOSDEM, some talks are specifically focused on updates or announcements of open source projects and the rooms are filled to the brim (like almost all sessions at FOSDEM).
-
-Metrics you might consider:
-
-- The number of attendees at your project-centric event
-- The number of talks submitted to your project-centric event
-- The number of attendees at your project-centric talks
-
-### Conclusion about approximating usage of open source software
-
-As we've illustrated, there are many metrics that can indicate trends around the usage of your software, and all are imperfect. In most cases, these metrics can be heavily influenced by individual behavior, system design, and noise. As such, we suggest that you never use any of these metrics in isolation, given the relative uncertainty of each one. But if you collect a set of metrics from a variety of sources, you should be able to detect trends in behavior and usage. If you have the means to compare the same set of metrics across multiple open source projects with commonalities—such as similar functionality, strong interdependencies, hosted under the same foundation, and other characteristics—you can improve your sense of behavioral baselines.
-
-Note that in this overview, we've also chosen to highlight metrics that evaluate direct usage. As most software depends on a variety of other software packages, we would be remiss if we did not mention that usage and behavior can also be heavily impacted by indirect usage as part of a dependency chain. As such, we recommend incorporating the count of upstream and downstream dependencies as another layer of context in your analysis.
-
-In closing, as the wielder of data and metrics, we encourage you to recognize the power and responsibility that you have for your stakeholders. Any metric that you publish has the potential to influence behavior. It is a best practice to always share your context—bases, sources, estimations, and other critical contextual information—as this will help others to interpret your results.
-
-We thank the CHAOSS Community for the insightful conversation at CHAOSScon EU 2022 in Dublin, Ireland that sparked the idea for this blog post and to the CHAOSS Community members who reviewed and helped improve this article.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/open-source-usage-metrics
-
-作者:[Georg Link][a]
-选题:[lkxed][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/georglink
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/18/5/metrics-project-success
-[2]: https://opensource.com/article/22/11/community-metrics
From baf3c7acfa927dde6fb6bc0a20b52a72a720af93 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:46:30 +0800
Subject: [PATCH 110/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221219.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Fe?=
=?UTF-8?q?dora=20Media=20Writer=20World-Class=20LIVE=20USB=20Creator=20[T?=
=?UTF-8?q?utorial].md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... Writer World-Class LIVE USB Creator [Tutorial].md | 136 ++++++++++++++++++
1 file changed, 136 insertions(+)
create mode 100644 sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md
diff --git a/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md b/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md
new file mode 100644
index 0000000000..1446699a97
--- /dev/null
+++ b/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md
@@ -0,0 +1,136 @@
+[#]: subject: "Fedora Media Writer: World-Class LIVE USB Creator [Tutorial]"
+[#]: via: "https://www.debugpoint.com/fedora-media-writer/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Fedora Media Writer: World-Class LIVE USB Creator [Tutorial]
+======
+
+**A tutorial on installing and using Fedora Media Writer to create LIVE USB from Linux & Windows.**
+
+![Fedora Media Writer][1]
+
+### Fedora Media Writer
+
+The community and Fedora Linux team develop and maintain the [Fedora Media Writer app][2]. This application writes any ISO image to your flash drive (USB stick). In addition, Fedora Media Writer also has features to download the ISO file directly from the Fedora Mirrors, provided you have a stable internet connection.
+
+Moreover, it gives you a list of options for download – such as Official Editions, Emerging Editions, Spins and Fedora Labs images.
+
+Not only that, but you can also use this nifty utility to write any other ISO images to your flash drive. It need not be the Fedora ISO always.
+
+Although there are other popular utilities available for creating LIVE USBs, such as [Etcher][3], Ventoy, and Rufus – you can still give this utility a try, considering the team develops it from mainstream Fedora Linux with contributors.
+
+So, in summary, here are quick feature highlights of Fedora Media Writer.
+
+#### Features Summary of Fedora Media Writer
+
+- Available for Linux, Windows and macOS
+- Directly download + write the images to a USB flash drive
+- Official Editions (Workstation, IoT, Server) download
+- Emerging Editions (Silverblue, Kinoite) download
+- Spins (KDE Plasma, Xfce, etc)
+- Labs (Fedora Astronomy, Robotic and other flavours)
+- Available as Flatpak for Linux Distros
+- Also, can write any other ISO images (non-Fedora) to a USB stick.
+- Ability to format USB stick, restore flash drive
+- Based on Qt
+
+### How to Install
+
+#### Linux
+
+Fedora Media Writer is available as Flatpak for Linux Distributions. To install it in any Linux (such as Fedora, Ubuntu, or Linux Mint) – [set up Flatpak by following this guide][4].
+
+Then, click on the below link to install. This will launch the official Software application of your Linux Distro (such as Discover, GNOME Software). After installation, you can launch it via Application Menu.
+
+[Install Fedora Media Writer as Flatpak][5]
+
+#### Windows
+
+If you are a Windows user and planning to migrate to Linux (or Fedora), it is a perfect tool. You need to download the exe installer from GitHub (link below) and follow the onscreen instruction for installation.
+
+[Latest Installer for Windows (exe)][6]
+
+After installation, you can launch it from Start Menu.
+
+For macOS, you can get the dmg file in the above link.
+
+### How to use Fedora Media Writer to Create LIVE USB in Linux
+
+The first screen gives you two main options. The automatic download option is for downloading the ISO images on the fly. And the second option is to write the already downloaded ISO files from your disk directly.
+
+If you have already plugged in the USB, you should see it as the third option. The third option is to format and delete all the data from your USB stick and restore it to its factory settings.
+
+Furthermore, you can use this utility for just formatting your USB flash drive as well. You do not need any command or anything fancy. A point to note is that this option is only visible when your USB stick has data. If it’s already formatted, the tool can detect it and won’t show you the option to restore it!! 😲
+
+#### Automatic Download and Write
+
+![Fedora Media Writer - First Screen][7]
+
+The automatic Download option gives you the following screen to download any Fedora ISO you want from mirrors. This is useful for many because it eliminates the hassles of separately downloading ISO files, verifying checksum, etc.
+
+![The automatic download options gives you these options][8]
+
+After choosing the distribution, the final screen gives you the option for version (Fedora 36, 35, etc.) and architecture (x86, ARM, etc.). Also, you should see the USB destination. Click on Download and Write to start the process.
+
+![The final Write screen of Fedora Media Writer][9]
+
+#### Write an existing ISO file from the disk.
+
+When you choose the ‘select iso file’ option, you can select the file from your system. After that, select the destination USB drive and click Write to start the process.
+
+![Direct ISO write via Fedora Media Writer][10]
+
+![Writing is in progress][11]
+
+![Writing Complete][12]
+
+After the write operation is finished, you can see a confirmation message shown above. It took standard time to write a 3GB~ ISO during my test, around 3 to 4 minutes.
+
+### Using Fedora Media Writer to Create LIVE USB in Windows, macOS
+
+The steps are the same to use this utility in Windows and macOS, as shown above for Linux. You can easily find the shortcuts after installation and launch in the same way.
+
+![Running in Windows 11][13]
+
+### Closing Notes
+
+I hope this guide helps you use Fedora Media Writer for your day to day USB writing work. Also, the good thing about this utility is that you can use it for formatting/restoring your USB stick. You do not require GParted or GNOME Disks anymore.
+
+It’s such a terrific utility for Linux, Windows and macOS users.
+
+Cheers.
+
+[Next:How to Get Xfce 4.18 in Xubuntu 22.04 and 22.10][14]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/fedora-media-writer/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2022/05/fmwhead2022.jpg
+[2]: https://github.com/FedoraQt/MediaWriter
+[3]: https://www.debugpoint.com/2021/01/etcher-bootable-usb-linux/
+[4]: https://flatpak.org/setup/
+[5]: https://dl.flathub.org/repo/appstream/org.fedoraproject.MediaWriter.flatpakref
+[6]: https://github.com/FedoraQt/MediaWriter/releases/latest
+[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/Fedora-Media-Writer-First-Screen.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-automatic-download-options-gives-you-these-options.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-final-Write-screen-of-Fedora-Media-Writer.jpg
+[10]: https://www.debugpoint.com/wp-content/uploads/2022/05/Direct-ISO-write-via-Fedora-Media-Writer.jpg
+[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/Writing-is-in-progress.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2022/05/Writing-Complete.jpg
+[13]: https://www.debugpoint.com/wp-content/uploads/2022/05/Running-in-Windows-11.png
+[14]: https://www.debugpoint.com/xfce-4-18-xubuntu-22-04/
From 25c49ea218f38feeb2340eb4efeca84a728209b3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:48:21 +0800
Subject: [PATCH 111/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221220.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Wr?=
=?UTF-8?q?iting=20a=20Macro=20in=20LibreOffice=20Calc=20Getting=20Started?=
=?UTF-8?q?.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ing a Macro in LibreOffice Calc Getting Started.md | 144 ++++++++++++++++++
1 file changed, 144 insertions(+)
create mode 100644 sources/tech/20221220.0 ⭐️⭐️ Writing a Macro in LibreOffice Calc Getting Started.md
diff --git a/sources/tech/20221220.0 ⭐️⭐️ Writing a Macro in LibreOffice Calc Getting Started.md b/sources/tech/20221220.0 ⭐️⭐️ Writing a Macro in LibreOffice Calc Getting Started.md
new file mode 100644
index 0000000000..9ae1c0d10f
--- /dev/null
+++ b/sources/tech/20221220.0 ⭐️⭐️ Writing a Macro in LibreOffice Calc Getting Started.md
@@ -0,0 +1,144 @@
+[#]: subject: "Writing a Macro in LibreOffice Calc: Getting Started"
+[#]: via: "https://www.debugpoint.com/writing-a-macro-in-libreoffice-calc-getting-started/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Writing a Macro in LibreOffice Calc: Getting Started
+======
+
+**Planning to automate stuff in LibreOffice? Start writing your first LibreOffice Calc macro using this guide.**
+
+LibreOffice provides a way to write your macro to automate various repetitive tasks in your office application. You can use Python or basic for your macro development. This tutorial focuses on writing a macro in LibreOffice with a ‘Hello World’ macro in the Basic programming language.
+
+### Write your first macro in LibreOffice Calc
+
+### Macro Objective
+
+We are going to create a macro that would put the string ‘Hello World’ in the first cell of LibreOffice calc, i.e. the cell of row 1 and col A.
+
+### Creating the Macro
+
+- Open LibreOffice Calc from `Applications => Office => LibreOffice Calc`.
+
+![LibreOffice_1][1]
+
+- Go to the option from the menu: `Tools ==> Macros ==> Organize Macros ==> LibreOffice Basic`. Below ‘LibreOffice basic macros’ window will open.
+
+![LibreOffice_2][2]
+
+- Give your desired name in the macro name box and click New. You can use any name you want. For this tutorial, I have used hello_world.
+
+![LibreOffice_3][3]
+
+- Once you have clicked the New button, the macro editor will open. Here are some things to note in this window. This is the place where you should be writing your code, debugging your code, etc. You can see the macro’s name became the function name of your basic macro.
+
+![LibreOffice_4][4]
+
+- Now, it’s time to code the first macro. Let’s declare two variables of type objects.
+
+```
+dim document as object dim dispatcher as object
+```
+
+- Let’s assign two values to the above variables.
+
+```
+document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
+```
+
+`ThisComponent` refers to the current document.
+
+In LibreOffice, everything you do, e.g. type, colour, insert, is “watched” by a controller. The controller then dispatches the changes to the document frame, i.e. the main window area of the Calc. So the document variable refers to the main area of Calc.
+
+The `createUnoService` creates an instance of the `DispatchHelper` service. This service will help us to dispatch the tasks from the macro to the frame. Almost all LibreOffice macro tasks can be executed using the dispatcher.
+
+- Now we will declare an array of properties. Properties are always in a name/value pair. Thus the name contains the property name, and the value contains the value of that property.
+
+```
+dim args1(0) as new com.sun.star.beans.PropertyValue
+```
+
+Our objective is to put ‘Hello World’ in the first Cell. To point to the first cell A1 and put a text, we would use two properties – `ToPoint` and `StringName`.
+
+Once we set the properties, it’s time to call the dispatch to send these to the document. So call the `executeDispatch` event of the dispatcher using two commands: `.uno:GoToCell`, and `.uno:EnterString`.
+
+```
+dim args2(0) as new com.sun.star.beans.PropertyValueargs1(0).Name = "ToPoint" args1(0).Value = "$A$1" args2(0).Name = "StringName" args2(0).Value = "Hello World!"
+```
+
+These commands tell the frame what needs to be executed and also pass the entire property array with values.
+
+![LibreOffice_5][5]
+
+Now put a message box to notify when the execution is completed.
+
+### Running the Macro
+
+- It’s time to run the macro. To run the macro, press `F5` or click Run Macro from the toolbar (see above).
+- After execution, the message box would pop up. If you go back and check the Calc spreadsheet, you should see ‘Hello World!’ written in the first Cell.
+
+![LibreOffice_6][6]
+
+![LibreOffice_7][7]
+
+### Complete Code
+
+```
+REM ***** BASIC *****
+sub hello_world
+
+ dim document as object
+ dim dispatcher as object
+
+ document = ThisComponent.CurrentController.Frame
+ dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
+
+ dim args1(0) as new com.sun.star.beans.PropertyValue
+ dim args2(0) as new com.sun.star.beans.PropertyValue
+
+ args1(0).Name = "ToPoint"
+ args1(0).Value = "$A$1"
+ dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
+
+ args2(0).Name = "StringName"
+ args2(0).Value = "Hello World!"
+ dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
+
+ msgbox "Completed!"
+end sub
+```
+
+### Looking for Something Else?
+
+If you are looking for more LibreOffice macro tutorials Or wants to learn more about it, please follow the below link for a complete Macro Tutorials Index:
+
+[Macro tutorial index][8]
+
+[Next:How to Find Out Ubuntu Version: 6 Methods][9]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/writing-a-macro-in-libreoffice-calc-getting-started/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2015/02/LibreOffice_1_p.png
+[2]: https://www.debugpoint.com/wp-content/uploads/2015/02/LibreOffice_2_p.png
+[3]: https://www.debugpoint.com/wp-content/uploads/2015/02/LibreOffice_3_p.png
+[4]: https://www.debugpoint.com/wp-content/uploads/2015/02/LibreOffice_4_p.png
+[5]: https://www.debugpoint.com/wp-content/uploads/2015/02/LibreOffice_5_p.png
+[6]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_6.png
+[7]: https://www.debugpoint.com/wp-content/uploads/2015/02/LibreOffice_7_p.png
+[8]: http://www.debugpoint.com/libreoffice-basic-macro-tutorial-index/
+[9]: https://www.debugpoint.com/find-ubuntu-version/
From 139e5ccef834543cd4879670fb23157bc7adcd08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:49:18 +0800
Subject: [PATCH 112/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221220.1=20=E2=AD=90=EF=B8=8F=20How=20to=20Downgrade?=
=?UTF-8?q?=20Flatpak=20Packages=20in=20Linux.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... How to Downgrade Flatpak Packages in Linux.md | 115 ++++++++++++++++++
1 file changed, 115 insertions(+)
create mode 100644 sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
diff --git a/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
new file mode 100644
index 0000000000..1d664feba4
--- /dev/null
+++ b/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
@@ -0,0 +1,115 @@
+[#]: subject: "How to Downgrade Flatpak Packages in Linux"
+[#]: via: "https://itsfoss.com/downgrade-flatpak-packages/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Downgrade Flatpak Packages in Linux
+======
+
+Technically, minor or point release updates are released to solve issues. But things may get worse when some updates break your current workflow.
+
+Whether a Flatpak package or Snap, everything breaks at some point when there is an issue. Being a sandboxed packaging solution, it may not affect the entire system, but if you encounter a bug that makes your app experience worse, you may regret the update.
+
+For example, the previous update of [Black Box][1] was bundled with certain bugs, and I could not select text! Developers have solved this issue now, but until they did not, I downgraded that specific package to make things work.
+
+So, if you want to downgrade a specific app installed as a Flatpak, you can follow this guide.
+
+### Downgrade Flatpak packages in Linux
+
+**Disclaimer:** Unlike installing Flatpaks, you need **sudo** privileges to downgrade Flatpak packages. And if your user doesn’t have them, you can follow our detailed guide on [how to give sudo access to users][2].
+
+**Recommended Read**: [How to Apply GTK Themes on Flatpak Applications][3]
+
+Here are the steps below:
+
+#### 1. Get the Application ID of the Package
+
+The first step is to find the Application ID of the package you want to downgrade. You can easily find it by listing the installed packages:
+
+```
+flatpak list --app
+```
+
+![find flatpak package id in linux][4]
+
+Note down the application ID of the package you want to downgrade.
+
+Here, I am going to downgrade the Black Box, so my application ID will be `com.raggesilver.BlackBox`.
+
+#### 2. List previous releases and get the commit code
+
+Once you get the application ID, you’d need to list the previous releases.
+
+You can easily do this by following the given command syntax:
+
+```
+flatpak remote-info --log flathub
+```
+
+![find previous releases in flatpak][5]
+
+Once you find the preferred previous release, copy the commit code as shown above.
+
+#### 3. Downgrade the Flatpack package
+
+Once you follow the first two steps, you should have the following:
+
+- Application ID of the package.
+- Commit code of preferred older release.
+
+Now, you have to put them in the following command:
+
+```
+sudo flatpak update --commit=
+```
+
+As I’m downgrading Black Box to the previous release, I’ll be using the following command:
+
+```
+sudo flatpak update --commit=c4ef3f4be655cbe2559451a9ef5977ab28139c54bb5adbd7db812f3482bd0db5 com.raggesilver.BlackBox
+```
+
+![downgrade flatpak package in linux][6]
+
+And that’s it!
+
+To check whether you have successfully downgraded the package, you can list the packages that need to be updated (considering everything else is up-to-date). It should include the name of the package that you have recently downgraded:
+
+```
+flatpak update
+```
+
+![downgrade flatpak package][7]
+
+And as you can see, the Black Box is outdated and needs to be updated, meaning the package has been downgraded successfully!
+
+### Wrapping Up
+
+In this quick tutorial, I explained how you downgrade Flatpak packages, and I hope you find this helpful.
+
+And if you have any queries or suggestions, let me know in the comments.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/downgrade-flatpak-packages/
+
+作者:[Sagar Sharma][a]
+选题:[lkxed][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/sagar/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/blackbox-terminal/
+[2]: https://itsfoss.com/add-sudo-user-ubuntu/
+[3]: https://itsfoss.com/flatpak-app-apply-theme/
+[4]: https://itsfoss.com/wp-content/uploads/2022/12/find-flatpak-package-id-in-linux.png
+[5]: https://itsfoss.com/wp-content/uploads/2022/12/find-previous-releases-in-flatpak-1.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package-in-linux.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package.png
From 5a779e904f42d19070b6bfa3134dab2e34d47abe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:54:34 +0800
Subject: [PATCH 113/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221220.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Ho?=
=?UTF-8?q?w=20I=20use=20Artipie,=20a=20PyPI=20repo.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...0.2 ⭐️⭐️ How I use Artipie, a PyPI repo.md | 218 ++++++++++++++++++
1 file changed, 218 insertions(+)
create mode 100644 sources/tech/20221220.2 ⭐️⭐️ How I use Artipie, a PyPI repo.md
diff --git a/sources/tech/20221220.2 ⭐️⭐️ How I use Artipie, a PyPI repo.md b/sources/tech/20221220.2 ⭐️⭐️ How I use Artipie, a PyPI repo.md
new file mode 100644
index 0000000000..e79f8ab4fa
--- /dev/null
+++ b/sources/tech/20221220.2 ⭐️⭐️ How I use Artipie, a PyPI repo.md
@@ -0,0 +1,218 @@
+[#]: subject: "How I use Artipie, a PyPI repo"
+[#]: via: "https://opensource.com/article/22/12/python-package-index-repository-artipie"
+[#]: author: "Alena Gerasimova https://opensource.com/users/olena"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How I use Artipie, a PyPI repo
+======
+
+While developing with Python as a student, I found that I needed some private centralized storage. This was so I could store binary and text data files, as well as Python packages. I found the answer in [Artipie][1], an open source self-hosted software repository manager.
+
+At university, my colleagues and I conducted research and worked with a lot of data from experimental measurements. I used Python to process and visualize them. My university colleagues at the time were mathematicians and didn't have experience with software development techniques. They usually just passed data and code on a flash drive or over email. My efforts to introduce them to a versioning system like [Git][2] were unsuccessful.
+
+### Python repository
+
+Artipie supports the [PyPI][3] repository, making it compatible with both [twine][4] and [pip][5]. This means you can work with the Artipie Python repository exactly as you would when installing or publishing packages on the [PyPI][3] and [TestPyPI][6] repositories.
+
+To create your own Python repository, you can use the hosted instance of Artipie called [Artipie Central][7]. Once you sign in, you see a page with your repositories listed (which is empty to begin with) and a form to add a new repository. Choose a name for your new repository (for example, `mypython`), select "Python" as the repository type, and then click the **Add** button.
+
+Next, you see a page with repository settings in the [YAML][8] format:
+
+```
+---
+repo:
+ type: pypi
+ storage: default
+ permissions:
+ olenagerasimova:
+ - upload
+ "*":
+ - download
+```
+
+The `type` mapping in the configuration sets the repository type. In this example, the Python repository is configured with the default Artipie Central storage.
+
+The `storage` mapping defines where all of the repository packages are stored. This can be any file system or S3 storage compatible location. Artipie Central has a preconfigured `default` storage that can be used for tests by anyone.
+
+The `permissions` mapping allows uploads for the user `olenagerasimova`, and allows anyone to download any package.
+
+To make sure this repository exists and works, open the [index page][9] in your browser. The packages list is displayed. If you've just created a new repository but have yet to upload a package, then the repository index page is blank.
+
+### Binary repository
+
+You can store any kind of file in Artipie. The storage type is called file or binary, and I use this as storage for experimental data. I use this as input for Python visualizations. A file repository can be created in Artipie Central the same way as a Python repository. You give it a name, choose the type **binary**, and then click the **Add** button.
+
+```
+---
+repo:
+ type: file
+ storage: default
+ permissions:
+ olenagerasimova:
+ - upload
+ - download
+ "*":
+ - download
+```
+
+The settings are basically the same as for Python. Only the repository type differs. The binary repository, in this example, is called `data`. It contains three text files with some numbers:
+
+```
+6
+3.5
+5
+4
+4.5
+3
+2.7
+5
+6
+3
+1.2
+3.2
+6
+```
+
+The other two files take the same form (only the numbers are different.) To see the files yourself, open the links [one][10], [two][11], and [three][12] in your browser and download the files, or you can perform a GET request using `httpie`:
+
+```
+httpie -a https://central.artipie.com/olenagerasimova/data/y1.dat > ./data/y1.da
+```
+
+These files were uploaded to the Artipie Central `data` repository with PUT requests:
+
+```
+httpie -a olenagerasimova:*** PUT
+https://central.artipie.com/olenagerasimova/data/y1.dat @data/y1.dat
+
+httpie -a olenagerasimova:*** PUT
+https://central.artipie.com/olenagerasimova/data/y2.dat @data/y2.dat
+
+httpie -a olenagerasimova:*** PUT
+https://central.artipie.com/olenagerasimova/data/y3.dat @data/y3.dat
+```
+
+As this binary repository API is very simple (HTTP `PUT` and `GET`requests), it's easy to write a piece of code in any language to upload and download the required files.
+
+### Python project
+
+The source code of an example Python project is available from my [GitHub repository][13]. The main idea of the example is to download three data files from Artipie Central, read the numbers into arrays, and use these arrays to draw a plot. Use pip to install the example package and run it:
+
+```
+$ python3 -m pip install --index-url \
+https://central.artipie.com/olenagerasimova/pypi/ \
+pypiexample
+$ python3 -m pypiexample
+```
+
+By setting the `--index-url` to the Artipie Central Python repository, pip downloads the packages from it rather than the PyPi repository that serves as the usual default. After running the commands, a polar plot with three curves, a visualization of the data files is displayed.
+
+To publish the package to the Artipie Central repository, build it with and use twine to upload it:
+
+```
+commandline
+$ python setup.py sdist bdist_wheel
+
+$ twine upload --repository-url \
+https://central.artipie.com/olenagerasimova/pypi
+-u olenagerasimova -p *** dist/*
+```
+
+That's how easy it is to set up a `files` repositories in Artipie Central, create a sample Python project, publish, and install it. You don't have to use Artipie Central, though. Artipie can be self-hosted, so you can run a repository on your own local network.
+
+### Run Artipie as a container
+
+Running Artipie as a container makes setup as easy as installing either Podman or Docker. Assuming you have one of these installed, open a terminal:
+
+```
+$ podman run -it -p 8080:8080 -p 8086:8086 artipie/artipie:latest
+
+```
+
+This starts a new container running the latest Artipie version. It also maps two ports. Your repositories are served on port 8080. The Artipie Rest API and Swagger documentation are provided on port 8086. A new image generates a default configuration, printing a list of running repositories, test credentials, and a link to the [Swagger][14] documentation to your console.
+
+You can also use the Artipie Rest API to see existing repositories:
+
+- Go to the Swagger documentation page at `http://localhost:8086/api/index-org.html`**.**
+- In the **Select a definition** list, choose **Auth token**
+- Generate and copy the authentication token for the user artipie with the password artipie
+- Switch to the **Repositories** definition and click the **Authorize** button, and then paste in the token
+
+![Image of the Swagger documentation page,][15]
+
+Perform a GET request for `/api/v1/repository/list`. In response, you receive a JSON list with three default repositories:
+
+```
+[
+ "artipie/my-bin",
+ "artipie/my-docker",
+ "artipie/my-maven"
+]
+```
+
+The Python repository isn't included in the default configuration. You can correct that by performing a PUT request to `/api/v1/repository/{user}/{repo}` from the Swagger interface. In this case, `user` is the name of the default user (`artipie`) and `repo` is the name of the new repository. You can call your new Python repository `my-pypi`. Here's an example request body, containing a JSON object with the repository settings:
+
+```
+{
+ "repo": {
+ "type": "pypi",
+ "storage": "default",
+ "permissions": {
+ "*": [
+ "download"
+ ],
+ "artipie": [
+ "upload"
+ ]
+ }
+ }
+}
+```
+
+All the JSON fields are the same as when you create a repository in the dashboard in YAML format. The type of our repository is `pypi`, the default storage is used, and anyone can download but only the user `artipie` can upload.
+
+Make a GET request to `/api/v1/repository/list` again to make sure your repository was created. Now, you have four repositories:
+
+```
+[
+ "artipie/my-bin",
+ "artipie/my-docker",
+ "artipie/my-maven",
+ "artipie/my-pypi"
+]
+```
+
+You've created your own Artipie installation, containing several repositories! The Artipie image can run both on a personal computer or on a remote server inside a private network. You can use it to exchange packages within a company, group, or university. It's an easy way to set up your own software services, and it's not just for Python. Take some time to explore Artipie and see what it can make possible for you.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/python-package-index-repository-artipie
+
+作者:[Alena Gerasimova][a]
+选题:[lkxed][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/olena
+[b]: https://github.com/lkxed
+[1]: https://github.com/artipie
+[2]: https://opensource.com/tags/git
+[3]: https://pypi.org/
+[4]: https://github.com/pypa/twine
+[5]: https://pip.pypa.io/en/stable/
+[6]: https://test.pypi.org/
+[7]: https://central.artipie.com/signin
+[8]: https://www.redhat.com/sysadmin/yaml-beginners
+[9]: https://central.artipie.com/olenagerasimova/pypi
+[10]: https://central.artipie.com/olenagerasimova/data/y1.dat
+[11]: https://central.artipie.com/olenagerasimova/data/y2.dat
+[12]: https://central.artipie.com/olenagerasimova/data/y3.dat
+[13]: https://github.com/artipie/pypi-example
+[14]: https://swagger.io/
+[15]: https://opensource.com/sites/default/files/2022-11/artipie-swagger.png
From 455f737d8bd2c1191e524337d4934906603e3e56 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:55:07 +0800
Subject: [PATCH 114/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221220.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Ex?=
=?UTF-8?q?plore=20the=20features=20of=20the=20Linux=20Double=20Commander?=
=?UTF-8?q?=20file=20manager.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ures of the Linux Double Commander file manager.md | 99 +++++++++++++++++++
1 file changed, 99 insertions(+)
create mode 100644 sources/tech/20221220.3 ⭐️⭐️ Explore the features of the Linux Double Commander file manager.md
diff --git a/sources/tech/20221220.3 ⭐️⭐️ Explore the features of the Linux Double Commander file manager.md b/sources/tech/20221220.3 ⭐️⭐️ Explore the features of the Linux Double Commander file manager.md
new file mode 100644
index 0000000000..94d236bf17
--- /dev/null
+++ b/sources/tech/20221220.3 ⭐️⭐️ Explore the features of the Linux Double Commander file manager.md
@@ -0,0 +1,99 @@
+[#]: subject: "Explore the features of the Linux Double Commander file manager"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-double-commander"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Explore the features of the Linux Double Commander file manager
+======
+
+Double Commander is a graphical dual-pane file manager for Linux, in the tradition of [Midnight Commander][1] (`mc`). While Midnight Commander (like the DOS application **Norton Commander** before it) has its fans, its audience is limited by the fact that it only runs in a terminal window. Not everyone wants to use a "flat" interface embedded in a terminal to browse their file system, and so Double Commander provides a similar interface in a way that feels familiar to many desktop users.
+
+![Image of Double Commander's 2 panel view.][2]
+
+### Install Double Commander
+
+To install Double Commander, visit its [website][3] and download [a package][4]. It's not packaged for a specific Linux distribution, so just download an archive for your CPU architecture.
+
+If you only want to try it out, you can unarchive it and then launch it from your Downloads folder.
+
+To install it permanently, unarchive the package, move it into a location [in your path][5], and then symlink `doublecmd` to the executable in the source directory:
+
+```
+$ tar xvf doublecmd*tar.xz
+$ mv doublecmd ~/.local/bin/doublecmd-X.Y.Z
+$ ln -s ~/.local/bin/doublecmd-X.Y.Z/doublecmd ~~/.local/bin/doublecmd
+```
+
+### How to start Double Commander
+
+To start Double Commander, use the command `doublecmd`.
+
+Alternatively, you can add an entry for Double Commander in your application menu. First, create the file `~/.local/share/applications/doublecmd.desktop` and enter this text into it:
+
+```
+[Desktop Entry]Encoding=UTF-8Name=doublecmdGenericName=Double CommanderComment=doublecmdExec=../bin/doublecmdIcon=/usr/share/icons//Adwaita/scalable/apps/system-file-manager-symbolic.svgTerminal=falseType=ApplicationCategories=System;FileTools;Utility;Core;GTK;FileManager;
+```
+
+Now Double Commander appears in your desktop application menu. Note that this does not make Double Commander your default file manager. It only adds it as an application you can launch when you want to.
+
+### Two panels
+
+Dual-panel file management is a tradition within a subset of file managers, and to some users it's a little unsettling. If you think about it, though, most file management tasks involve a _source_ location and a _destination_ location. You might be used to a workflow that goes something like this:
+
+- Open a file manager and find a file you want to move.
+- Open another file manager window and navigate to the folder you want to move the file into.
+- Drag and drop the file from one window to the other.
+
+You might use a variation of this involving, for instance, a right-click to copy combined with some navigation and another right-click to paste. Either way, the ingredients are the same. You locate the source, you locate the destination, and then you make the transfer.
+
+Given that common factor, it makes sense that a file manager like Double Command has a persistent view of the source location and the destination location. At the very least, it saves you from having to open another window.
+
+### Double Commander interface
+
+Once you get used to the idea of two concurrent views in your file system, there are a lot more features to discover in Double Commander.
+
+- **Menu bar**: At the top of the window is a menu bar. That's pretty standard conceptually, but the menu entries are probably unlike any menu bar you've seen before: **File**, **Mark**, **Commands**, **Network**, **Tabs**, and more. These are task-specific menus, which is great because you can ignore an entire submenu you don't use.
+- **Toolbar**: Under the menu bar, there are buttons for common tasks such as opening a terminal, copying a file, synchronizing two directories, and more.
+- **Locations**: The location bar is situated just under the toolbar. It lists devices and file system locations, including your boot partition, optical media drive, virtual shared locations, the root directory, your home directory (listed as `~`), and more.
+- **File list**: Most of the Double Commander window is occupied by the dual panel view of your file system.
+- **Command**: My favorite feature of Double Commander is the single command field below the file list pane. This allows you to enter an arbitrary command to run within the active pane. This is great for the odd command you need to run in a directory that _no_ file manager expects you to run, and so no file manager has a function for. It's the brute force method of the plugin model: Provide a command line and let users run what they need to run whenever they need to run it.
+- **Functions**: Along the very bottom of the Double Commander window, as with Midnight Commander, there's a list of common functions, each assigned to a Function key on your keyboard.
+
+### Using Double Commander
+
+Using Double Commander is a lot like using any file manager, except that Double Commander is focused on groups of actions. For instance, the **File** menu isn't an obligatory entry with just **New Window** and **New Tab**, it's full of useful functions, like creating a symlink or hard link, changing attributes, comparing contents, bulk renaming, splitting and combining files, and more. Double Commander is direct. It gets straight to the point, serving as a stand-in for all the commands you'd normally run in a terminal.
+
+### Graphical command interface
+
+More than any other file manager I've seen, Double Commander feels like it's meant to be a graphical interface for commands. You can map almost everything in its interface to a command or series of commands you're used to running in a terminal.
+
+Of course, the question then is whether you need a graphical command line. Why not just run the commands in a terminal? Interestingly, I had the opportunity to witness the value of this recently. There are times, as a support person for other computer users, when trying to get a user to navigate the terminal can be overwhelming. This is particularly true when your user is texting on an app on their mobile phone, and you're giving them commands to type into a terminal on their desktop. This introduces several opportunities for mistakes, and what was meant to be "the fast way" of doing something ends up taking an hour.
+
+It's counter-intuitive to a terminal user, and it's not even always true, but there are times when a graphical interface really is easier to give instructions for. Picture it: A zombie apocalypse rages outside your compound, and the file permissions of a vital file need to be changed in order to activate the firewall. "Open a terminal and type chmod a+x /usr/local/bin/foo…no, that's `ch` as in _change_, `mod` as in _mode_ but without the _e_…no, and then a space. Not between the `ch` and the `mod`, just after the `mod`. And then a space. It's `chmod` and _then_ a space. Not the word _space_, just press the spacebar. It's the really long key under your thumb…"
+
+Or you could just say this: "Click on the file, now with that selected, go to the File menu up at the top and click on Change Attributes…"
+
+Double Command's central feature is in its powerful features disguised as a non-threatening graphical file manager. Download and try it out for yourself.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-double-commander
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/22/12/linux-file-manager-midnight-commander
+[2]: https://opensource.com/sites/default/files/2022-10/doublecmd-2panelview.png
+[3]: https://doublecmd.sourceforge.io/
+[4]: https://github.com/doublecmd/doublecmd/releases
+[5]: https://opensource.com/article/17/6/set-path-linux
From 36b7b3c3e33edb68aaeff01cf03d2babfd917ba5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:55:33 +0800
Subject: [PATCH 115/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221220.4=20=E2=AD=90=EF=B8=8F=20EndeavourOS=20'Cassi?=
=?UTF-8?q?ni'=20Releases=20With=20New=20Features=20and=20Linux=20Kernel?=
=?UTF-8?q?=206.0.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ases With New Features and Linux Kernel 6.0.md | 133 ++++++++++++++++++
1 file changed, 133 insertions(+)
create mode 100644 sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md
diff --git a/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md b/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md
new file mode 100644
index 0000000000..c42c37b80c
--- /dev/null
+++ b/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md
@@ -0,0 +1,133 @@
+[#]: subject: "EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0"
+[#]: via: "https://news.itsfoss.com/endeavouros-cassini/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0
+======
+
+EndeavourOS's latest update has arrived!
+
+![EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0][1]
+
+EndeavourOS is a popular Arch-based Linux distribution that aims to make the Arch experience easy.
+
+Code-named 'Cassini', it signifies a new phase in EndeavourOS's development that aims to make the OS better than its previous iterations.
+
+Similar to a [previous release][2], this release is also named after one of NASA's [projects][3].
+
+Let's see what makes this release so unique.
+
+Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][4]Unlocator![][5]
+
+### 🆕 EndeavourOS 'Cassini': What's New?
+
+![endeavouros cassini][6]
+
+The 'Cassini' release packs plenty of improvements, some of the noteworthy highlights include:
+
+- **Improved ARM Support**
+- **Linux Kernel 6.0**
+- **Various User Interface Updates**
+- **Updated Software Packages**
+
+#### Improved ARM Support
+
+![endeavouros cassini arm][7]
+
+EndeavourOS now features support for the [Pinebook Pro][8].
+
+This was made possible by including the new 'linux-eos-arm' kernel that comes with the 'amdgpu' driver for supporting generic ARM devices.
+
+The developers also added that:
+
+> We’ve leveraged existing work and PKGBUIDs of both Manjaro ARM and archlinuxarm-pbp projects to create our Pinebook Pro images and would like to thank them for their continuing work in supporting PineBook Pro for Arch Linux ARM platform.
+
+Furthermore, EndeavourOS also has enhanced support for ARM devices like the [Phytiuim D2000][9], [Raspberry Pi][10], and [Odroid N2+][11].
+
+#### 🎨 Various User Interface Updates
+
+![endeavouros cassini budgie][12]
+
+With this release, EndeavourOS has received quite a few user interface tweaks; some of the highlights include:
+
+- The 'Discover' icon was replaced with a 'Konsole' icon on KDE Plasma.
+- [Qogir theme][13] is being used for icons in Cinnamon and Budgie.
+- In the case of GNOME, the wallpaper follows night and day theme like the Console.
+- The default wallpaper is now set by the 'settings' package instead of 'welcome'.
+- A load of cleanup work for Calamares.
+
+#### Linux Kernel 6.0
+
+EndeavourOS 'Cassini' features Linux Kernel 6.0.12.arch1-1, which enables it to have enhanced support for [OpenRISC][14] and [LoongArch][15] architectures.
+
+Alongside that, there is a noticeable uplift in performance for AMD EPYC, Ryzen Threadripper, and Intel Xeon Ice Lake chips.
+
+You can go through our coverage for more details:
+
+#### Updated Software Packages
+
+This release also features a lot of updated software, including:
+
+- Calamares 3.3.0-alpha3
+- Firefox 108.0.1-1
+- Mesa 22.3.1-1
+- Xorg-Server 21.1.5-1
+- nvidia-dkms 525.60.11-1
+- Grub 2:2.06.r403.g7259d55ff-1
+
+#### 🛠️ Other Changes
+
+There were also a few other changes that I want to mention, such as:
+
+- [dracut][16] has replaced [mkinitcpio][17] to handle the installation process.
+- You can now choose not to install a bootloader.
+- You have two bootloader options to pick from, [systemd-boot][18] and [Grub][19].
+- The Grub submenu is now enabled by default.
+- gedit and GNOME terminal have been replaced by [gnome-text-editor][20] and [GNOME Console][21].
+
+### 📥 Download EndeavourOS Cassini
+
+You can find the latest release on the [official website][22] from one of the available mirrors.
+
+_💬 What do you think of this release? Was it worth the wait?_
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/endeavouros-cassini/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/endeavour-os-cassini-release.png
+[2]: https://news.itsfoss.com/endeavouros-artemis-release/
+[3]: https://solarsystem.nasa.gov/missions/cassini/overview/
+[4]: https://unlocator.com/favicon.ico
+[5]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg
+[6]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini.jpg
+[7]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_ARM.png
+[8]: https://itsfoss.com/pinebook-pro/
+[9]: https://phytium.com.cn/en/article/721
+[10]: https://www.raspberrypi.org
+[11]: https://www.hardkernel.com/shop/odroid-n2-with-4gbyte-ram-2/
+[12]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_2-1.jpg
+[13]: https://github.com/vinceliuice/Qogir-theme
+[14]: https://openrisc.io
+[15]: https://en.wikipedia.org/wiki/Loongson
+[16]: https://dracut.wiki.kernel.org/index.php/Main_Page
+[17]: https://wiki.archlinux.org/title/mkinitcpio
+[18]: https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/
+[19]: https://www.gnu.org/software/grub/
+[20]: https://itsfoss.com/gnome-text-editor/
+[21]: https://gitlab.gnome.org/GNOME/console
+[22]: https://endeavouros.com/latest-release/
From e5c153029d8677ccf8bc8ae089746b4327c26479 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:56:37 +0800
Subject: [PATCH 116/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221220.5=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Li?=
=?UTF-8?q?nux=20Mint=2021.1=20Arrives=20with=20a=20Ton=20of=20Visual=20Ch?=
=?UTF-8?q?anges=20and=20Improvements.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...s with a Ton of Visual Changes and Improvements.md | 152 ++++++++++++++++++
1 file changed, 152 insertions(+)
create mode 100644 sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
diff --git a/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md b/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
new file mode 100644
index 0000000000..965f20f5cb
--- /dev/null
+++ b/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
@@ -0,0 +1,152 @@
+[#]: subject: "Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements"
+[#]: via: "https://news.itsfoss.com/linux-mint-21-1-release/"
+[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements
+======
+
+Linux Mint 21.1 comes with a new default theme and several other refinements.
+
+![Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements][1]
+
+Linux Mint 21 has received its first update as **Linux Mint 21.1 "Vera."** If you want to learn about Linux Mint 21 "Venessa," our official review should get you up to speed:
+
+This release is similar to the usual point releases. However, it includes various changes to the look, feel, and features that could look subtle but will affect the user experience.
+
+Let's take a look at the major highlights. We focus on Linux Mint's Cinnamon edition.
+
+### Linux Mint 21.1 Vera: What's New?
+
+The release will continue to use the **Linux 5.15 LTS** kernel under the hood, based on **Ubuntu 22.04 LTS**.
+
+![][2]
+
+#### 👀 A Refreshed User Interface
+
+When you first boot into the desktop, you should quickly notice the new look of the cursor. It features the new Bibata theme by default.
+
+![linux mint's new cursor icon][3]
+
+The cursor icon theme inventory has new options like Yaru, Breeze, and GoogleDot along with the traditional DMZ theme.
+
+![][4]
+
+Users will also find a unique set of app icon themes to choose from in addition to the traditional Mint-X, Mint-Y, and Mint-Legacy themes. This includes Papirus, Breeze, Numix, and Yaru.
+
+![linux mint aqua theme][5]
+
+Another interesting thing you may notice is the default accent color isn't the traditional green anymore, and that's because the **desktop theme is now switched to Aqua**. The accent color library offers more vibrant colors and gives the desktop a clean and attractive look.
+
+For those who want the legacy look back, there exists a "**Mint-Y-Legacy**" option in the theme options.
+
+Moreover, the **Computer, Home, Networks, and Trash icons** previously visible on the desktop are removed by default and can be accessed in the file manager. The Home folder icon is displayed on the panel instead. If you want to return the old arrangement, you can do so by heading to the **system****preferences**.
+
+#### ✨ Enhanced Drive Manager
+
+The Drive Manager no longer requests a password when you launch it since it runs in user mode.
+
+![linux mint driver manager offline][6]
+
+There are dedicated screens for offline connectivity and when a live USB is detected. You should also find the mounting of the live USB smoother than before.
+
+![usb screen drive manager linux mint][7]
+
+There have been a couple of fixes to it as well.
+
+Packagekit now purges removed drivers and packages. This solves a commonly known issue where users want to switch between different versions of the NVIDIA driver.
+
+Additionally, Debconf has been patched to address an issue for NVIDIA drivers when Secure Boot was enabled.
+
+#### 👨💻 Flatpak Integration and Software Manager Improvements
+
+It is nice to see that both the **Software Manager** and **Update Manager** have received support for Flatpaks.
+
+The procedure for installing and updating Flatpak applications is not very different and should be a breeze.
+
+![][8]
+
+For instance, the Software Manager has been updated to help differentiate which version of an app, Flatpak, or system the user is looking at. There's also a drop-down box for switching between the system and Flatpak versions of an app.
+
+Uninstalling Flatpak applications and shortcuts doesn't require a password anymore. The same applies when multiple operations are being performed.
+
+#### 🔨 Improvements for XApps
+
+Users can now configure the login screen's cursor size and theme. Previously, these settings were set globally.
+
+On the other hand, Warpinator gets better security while the WebApp Manager features additional settings when editing Web Apps, including private browsing and a navigation bar.
+
+#### ⭐ New ISO Verification Tool
+
+In most cases, one wants to verify the integrity of a downloaded ISO image.
+
+Thus to make things easier, you can do this by right-clicking on the ISO image and selecting "**Verify**." This opens up the ISO Verification tool, where you can fill in the necessary details for the verification process.
+
+![][9]
+
+A cool thing to note is that the URLs to the SHA256sum and GPG files are filled in automatically for Linux Mint and Ubuntu ISO images.
+
+#### 🎨 Cinnamon 5.6 Desktop
+
+Linux Mint's flagship desktop environment has received minor visual updates and changes.
+
+On the desktop's panel, you will notice a thin separator between the home menu and the applications. Like Windows, a new corner bar applet has been added to the right-most corner, configurable, and supports innovative actions.
+
+![][10]
+
+Coming to the visuals, Nemo - the default file manager - has undergone a few changes.
+
+- When selecting one or more items, only the name remains highlighted, while the icon doesn't.
+- The dates are now displayed in monospace fonts.
+- The path bar has also received some improvements.
+
+You can effortlessly access the Display Settings as its shortcut has been added to the desktop's context menu.
+
+### 🛠️ Other Improvements
+
+The other two desktop environments have been updated to **MATE 1.26 and XFCE 4.16**, respectively.
+
+The artwork collection has also been expanded to include several cool wallpapers.
+
+While we've only covered key highlights of this release, you can go through the [official changelog][11] for more details.
+
+### Getting Linux Mint 21.1
+
+Existing Mint users should be notified and can easily upgrade to Mint 21.1 through the update manager.
+
+Those looking for a fresh installation of Linux Mint can get the ISO from the [official download page][12].
+
+[Linux Mint 21.1][12]
+
+You can also [get torrent links][13] if you have slow or inconsistent internet.
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/linux-mint-21-1-release/
+
+作者:[Rishabh Moharir][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/rishabh/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-mint-21-1-release.png
+[2]: https://news.itsfoss.com/content/images/2022/12/Home.png
+[3]: https://news.itsfoss.com/content/images/2022/12/bibata.png
+[4]: https://news.itsfoss.com/content/images/2022/12/Themes.png
+[5]: https://news.itsfoss.com/content/images/2022/12/linux-mint-new-look.png
+[6]: https://news.itsfoss.com/content/images/2022/12/Drivemanager1.png
+[7]: https://news.itsfoss.com/content/images/2022/12/DriverManager2.png
+[8]: https://news.itsfoss.com/content/images/2022/12/Software_Manager.png
+[9]: https://news.itsfoss.com/content/images/2022/12/ISOVerify.png
+[10]: https://news.itsfoss.com/content/images/2022/12/Folder.png
+[11]: https://www.linuxmint.com/rel_vera_cinnamon_whatsnew.php
+[12]: https://www.linuxmint.com/download.php
+[13]: https://linuxmint.com/torrents/
From 654497b12c57049237e9425fe76a60e9eba9acbe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:57:12 +0800
Subject: [PATCH 117/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221221.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20En?=
=?UTF-8?q?deavourOS=20Your=20Search=20for=20Perfect=20Arch=20Distro=20End?=
=?UTF-8?q?s=20Here.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...S Your Search for Perfect Arch Distro Ends Here.md | 134 ++++++++++++++++++
1 file changed, 134 insertions(+)
create mode 100644 sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md
diff --git a/sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md b/sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md
new file mode 100644
index 0000000000..dddfcdca15
--- /dev/null
+++ b/sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md
@@ -0,0 +1,134 @@
+[#]: subject: "EndeavourOS: Your Search for Perfect Arch Distro Ends Here"
+[#]: via: "https://www.debugpoint.com/endeavouros-review/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+EndeavourOS: Your Search for Perfect Arch Distro Ends Here
+======
+
+**We review the recent release of EndeavourOS “Cassini” and the distro overall.**
+
+Hundreds of Linux distributions pop up every year by individuals and small teams. They are mostly the direct derivatives of Debian, Ubuntu, Fedora or Arch Linux – with a few customizations. And no wonder majority of them die every year due to a lack of contributions, vision and persistence.
+
+Three years back, a small team of contributors started EndeavourOS to continue the discontinued Antergos project. And since then, it has become popular because of its simplicity of installation, user experience and features.
+
+![EndeavourOS with Xfce desktop][1]
+
+### EndeavourOS Review
+
+A lot went into developing the distribution, which is quite evident if you have ever tried it out. The motto of this distro is to be a “general purpose” Arch Linux distribution for the masses, discarding the Arch Linux installation fear for new users and the superiority of using Arch.
+
+If you ever tried EndeavourOS, you must have “felt” how “easy” things are to perform on a desktop for the end user, being an Arch distro.
+
+#### Installation and desktop options to choose from
+
+The installation is made super easy with the “one and only” Calamares installer. On top of that EndeavourOS team gave extra caution to provide you with most of the options during the installation steps. For example, the LIVE medium boots up directly without user intervention. And it launches the welcome screen. The welcome screen greets you with all the necessary options to install it in your system.
+
+![EndeavourOS Welcome Screen][2]
+
+By default, the ISO provides a lightweight Xfce desktop. However, EndeavourOS also provides you with all the desktop environments and window managers (the major ones – see below). And they are all tested to work fine. If you are connected to the internet during installation – you can install these via the Calamares installer. That means you do not need to reinstall them after the base Xfce setup.
+
+Furthermore, if you are a power user and want just a basic Arch Linux to install without any desktop – then that’s also possible. Just use the “No desktop” option during installation!
+
+Although Arch Linux recently created an automated script archinstall to make the installation easier, still faster and easier to get a base Arch Install via the EndeavourOS ISO.
+
+![EndeavourOS installer showing no desktop and other options][3]
+
+Furthermore, you have the option to choose between three options: GRUB, systemd-boot or “no bootloader” – this is one of the highlight features of the EndeavourOS “Cassini” release. In addition, you can also choose the packages you want to install (online mode only). For example, you might need a basic system to start with. Or, you might want to install some apps related to video/audio or development work. All of these you can select in this version.
+
+The installation is smooth and finished by detecting the other operating systems in my test machine. In this “Cassini” release, the team also swapped the mkinitcpio with [dracut][4] for better performance and less failure on boot-related issues.
+
+#### Flagship “Xfce” flavoured desktop experience
+
+After the first login, you are again greeted with the Welcome app with a list of items which you can do “after install”. A very thoughtful addition from the devs. This includes initial tasks of changing wallpaper, updating Arch mirrors, installing NVIDIA drivers, and more. Many Linux distributions bring a Welcome app, but this app is a complete package, IMO.
+
+![After install items in Welcome app][5]
+
+The default look is the best-customized Xfce desktop you can get. It has been customized to be presented as a well-looking distro, far from what default Xfce actually brings in. This includes the GRUB menu, login screen and desktop.
+
+The main Xfce menu is configured with more items, and the terminal is a little transparent and uses the Qogir icon theme. All of these changes are complemented with stunning wallpapers and Arc-Darker default Xfce theme.
+
+![EndeavourOS Cassini Desktop with Xfce 4.18][6]
+
+#### Performance
+
+The performance of Arch Linux is always better, despite the desktop environment. It always feels faster because it doesn’t bring bloated within. On top of that, the [Xfce desktop 4.18][7] brings in additional performance optimization in the “Cassini” release, which you can feel while browsing through the desktop.
+
+At idle, it uses around 700MB of memory and CPU at an average of 4%. This is the baseline. The resource usage may increase based on the number of apps you open. In my earlier reviews of EndeavourOS, the performance is always similar.
+
+Not only that, it uses only 4GB of disk space for the default Xfce installation. However, you may need to install additional heavy software such as LibreOffice, GIMP, or KDenlive, which would take more disk space.
+
+![EndeavourOS performance Cassini][8]
+
+#### How easy is it to perform day-to-day tasks in EndeavourOS
+
+One of the great features of EndeavourOS is some of the python-based GUI tools which make your life easy in Arch Linux. For example, you get notifications for updates from Arch and EndeavourOS repo, one-click software installation from AUR, and update mirrors and your system with one single click. You do not need to run any commands from the terminal. This is a big help for new users of Arch Linux.
+
+![One click installation of software][9]
+
+![Package cleaner and update manager][10]
+
+#### A unique way of handling the rolling release towards stability
+
+Arch Linux being a rolling release distro, tend to break things. For example, some systems may break during the monthly Kernel refresh of the Arch main repo. Due to its popularity and the developers’ proactiveness, you get notifications and a workaround related to the problem if things break.
+
+The recent GRUB issue in Arch Linux, which caused massive boot problems for users, is really [handled well][11] by the EndeavourOS team through proper communication to the users with a workaround.
+
+Hence, you are not really lost if you end up with an unstable system.
+
+In addition, the pacman configuration is customized with EndeavourOS-selected mirrors to ensure your experience is flawless.
+
+#### Official support for open-source hardware and ARM
+
+In this EndeavourOS “Cassini” release, the official support for Pinebook Pro laptops arrives. The team worked on top of Manjaro packages with the Pine64 team to provide exclusive Arch packages for you so that the laptop works out of the box. In addition, EndeavourOS ARM images are also available to download for Raspberry Pi 4.
+
+#### Community help
+
+One of the greatest benefits of EndeavourOS is community help – which is instant! This is mostly for its dedicated [Telegram channel][12], where you get responses to your any EndeavourOS problems within minutes. I have been to the channel, and the mods/contributors are friendly and helpful.
+
+Furthermore, you can also get help from the official forum and other social channels.
+
+### Wrapping Up
+
+While closing this EndeavourOS review of the [“Cassini” release,][13] I would say it’s one of the best-built distros and well-organized. The developers and the team have a clear roadmap to build a general-purpose Arch Linux distro. Also, the vision is clear with the ARM and Pinebook Pro supports and other initiatives.
+
+To summarise, a perfect distro for everyone who wants a longer-running, stable system in Arch Linux.
+
+You can download EndeavourOS from the [official website][14].
+
+Cheers.
+
+[Next:Linux Mint Upgrade Tool: Usage Guide][15]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/endeavouros-review/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2022/12/Xubuntu-22.04-with-Xfce-4.18-Desktop-2.jpg
+[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-Welcome-Screen.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-installer-showing-22no-desktop22-and-other-options.jpg
+[4]: https://wiki.archlinux.org/title/Dracut
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-install-items-in-Welcome-app.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-22Cassini22-Desktop-with-Xfce-4.18.jpg
+[7]: https://www.debugpoint.com/xfce-4-18-features/
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/EndeavourOS-performance-22Cassini22.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/One-click-installation-of-software.jpg
+[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/Package-cleaner-and-update-manager.jpg
+[11]: https://endeavouros.com/news/full-transparency-on-the-grub-issue/
+[12]: https://endeavouros.com/community/
+[13]: https://endeavouros.com/news/cassini-packed-with-new-features-is-here/
+[14]: https://endeavouros.com/download/
+[15]: https://www.debugpoint.com/mint-upgrade-tool/
From a7687fef3cd680f378d0f51c47c17349e7270fed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:58:06 +0800
Subject: [PATCH 118/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221220.6=20=E2=AD=90=EF=B8=8F=20How=20to=20Update=20?=
=?UTF-8?q?Pi-hole=20Easily.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...21220.6 ⭐️ How to Update Pi-hole Easily.md | 177 ++++++++++++++++++
1 file changed, 177 insertions(+)
create mode 100644 sources/tech/20221220.6 ⭐️ How to Update Pi-hole Easily.md
diff --git a/sources/tech/20221220.6 ⭐️ How to Update Pi-hole Easily.md b/sources/tech/20221220.6 ⭐️ How to Update Pi-hole Easily.md
new file mode 100644
index 0000000000..a667eec761
--- /dev/null
+++ b/sources/tech/20221220.6 ⭐️ How to Update Pi-hole Easily.md
@@ -0,0 +1,177 @@
+[#]: subject: "How to Update Pi-hole Easily"
+[#]: via: "https://itsfoss.com/update-pi-hole/"
+[#]: author: "Abhishek Prakash https://itsfoss.com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Update Pi-hole Easily
+======
+
+Pi-hole is one of the most effective ad-blockers available for you to use. You can install it on your router or a dedicated system and get an ad-free experience for all the devices connected through it.
+
+In an earlier article, I discussed the [steps for installing Pi-hole][1]. But you must update it regularly to win the cat-and-mouse game between ad blockers and ad providers (Google, Facebook, etc). Another aspect is to patch a security vulnerability that might affect you negatively.
+
+The update method depends on the installation method. To recall, I discussed two methods:
+
+- **Method 1**: The existing Pi-hole installation was conducted using a script. The script was `curl -sSL https://install.pi-hole.net | bash` (or something similar).
+- **Method 2**: You installed Pi-hole using either Podman or Docker as a container.
+
+I will cover how to update Pi-hole with both of these methods.
+
+### Method 1: Updating Pi-hole that was installed by a script
+
+You will not believe how easy this is. All you have to do is run the following command in your terminal!
+
+```
+pihole -up
+```
+
+Of course, you have to run this command on the device where you have installed Pi-hole. In other words, you may have to [SSH into your Raspberry Pi][2] or router to run the above-mentioned command.
+
+Doing so will update Pi-hole. Below is the output of running the `pihole -up` command on my computer:
+
+```
+$ pihole -up
+ [✓] Update local cache of available packages
+ [i] Existing PHP installation detected : PHP version 8.1.2-1ubuntu2.8
+ [✓] Checking for git
+ [✓] Checking for iproute2
+ [✓] Checking for dialog
+ [✓] Checking for ca-certificates
+
+ [i] Checking for updates...
+ [i] Pi-hole Core: up to date
+ [i] Web Interface: up to date
+ [i] FTL: up to date
+
+ [✓] Everything is up to date!
+```
+
+💡Though I haven’t encountered this myself, it is still a possibility that Pi-hole might require updates for _other_ packages (like PHP) be installed. So try and run the update command that is applicable for your package manager on a regular basis. Keeping other packages up-to-date is _just as important_ ;)
+
+#### Optional: Automate Pi-hole update with cron job
+
+This says that everything is up to date. But how can a normal person remember to keep everything up to date? Fret not! We can create a cron job to automatically update Pi-hole every day.
+
+But before we edit the cron job, let us find the absolute path of the `pihole` command. This can be done either using the `which` command or the `command` command. You only need to run either one of the two commands listed below:
+
+```
+command -v pihole
+which pihole
+```
+
+Executing either of the commands listed above will give you the absolute path to the `pihole` command. In my case, the absolute path for the `pihole` command is `/usr/local/bin/pihole`.
+
+Next, we will edit the [cron job][3]. To edit cron jobs, type the following command in your terminal (please do **NOT** use `sudo`):
+
+```
+crontab -e
+```
+
+Doing so will open a file in either the `nano` editor or the `vim` editor. Next, _append_ the following lines to the currently opened file:
+
+```
+0 1 * * * /usr/local/bin/pihole -up
+```
+
+All you need to do now is to save and exit the editor.
+
+What we just did was that we made updating Pi-hole an automatic task. This will automatically run the `pihole up` command at 01:00 hours, every day.
+
+### Method 2: Update Pi-hole that was installed via Podman or Docker
+
+If you installed Pi-hole using either Podman or Docker, all you can do initially is to pull the image.
+
+⚠️ If you used a `docker-compose.yml` file to create your container, please have it handy because we need to delete the current container and create a new one. (No data or configuration will be changed if volumes are backed up properly or if bind mounts were used.)
+
+#### Step 1: Check if a newer image is available
+
+To check for updates, you can run either of the following commands based on what you use:
+
+```
+# command for Podman users
+podman pull docker.io/pihole/pihole:latest
+
+# command for Docker users
+docker pull docker.io/pihole/pihole:latest
+```
+
+If there is a newer version of the image, it will be fetched. If a newer version is not available, nothing extra will happen and you should try again later.
+
+#### Step 2: Stop and remove the container
+
+If a new image was downloaded, we can proceed further. Our next step should be to restart the container. To know which container to restart, we can check the output of the `docker ps` or `podman ps` command.
+
+```
+$ docker ps
+CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
+73528d5ca4e8 docker.io/pihole/pihole:latest 14 hours ago Up 14 hours ago 53/tcp pihole-aditi
+```
+
+This shows that I have a container named `pihole-aditi`. Let’s stop and remove this container. This can be done with the following commands:
+
+```
+# command for Podman users
+podman stop pihole-aditi
+docker rm pihole-aditi
+
+# command for Docker users
+docker stop pihole-aditi
+docker rm pihole-aditi
+```
+
+#### Step 4: Create a new container
+
+I hope you took my warning seriously and have your `docker-compose.yml` file handy ;)
+
+Let’s re-create a new container. You can re-create your container using the following command:
+
+```
+docker-compose up -d
+```
+
+Please verify that the Pi-hole container is up and running using either the `podman ps` command or the `docker ps` command.
+
+#### Step 5: Remove old image(s)
+
+Once the Pi-hole container starts up with the updated image, we can remove the old image and free up disk, space.
+
+To remove **all the _unused_ images**, use the following command:
+
+```
+# command for Podman users
+podman image prune
+
+# command for Docker users
+docker image prune
+```
+
+Upon running the above command, **all the _unused_** **images** will be removed. **Please take caution with this command.**
+
+Done! That was all that we needed to do to update our Pi-hole container.
+
+### Conclusion
+
+This article goes over the two methods of updating Pi-hole based on the installation method initially used. I have also discussed setting up auto-updates for Pi-hole which was installed using the official script. There is no such option for the container method, unfortunately.
+
+Do let me know if you face any issues.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/update-pi-hole/
+
+作者:[Abhishek Prakash][a]
+选题:[lkxed][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/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/setup-pi-hole/
+[2]: https://itsfoss.com/ssh-into-raspberry/
+[3]: https://itsfoss.com/cron-job/
From 2c316b7ee7ae9f1db2d3e838121c8406eae52e98 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:58:32 +0800
Subject: [PATCH 119/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221221.1=20=E2=AD=90=EF=B8=8F=20Debugging=20LibreOff?=
=?UTF-8?q?ice=20Basic=20Macro=20using=20Breakpoint=20and=20Watch.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...fice Basic Macro using Breakpoint and Watch.md | 118 ++++++++++++++++++
1 file changed, 118 insertions(+)
create mode 100644 sources/tech/20221221.1 ⭐️ Debugging LibreOffice Basic Macro using Breakpoint and Watch.md
diff --git a/sources/tech/20221221.1 ⭐️ Debugging LibreOffice Basic Macro using Breakpoint and Watch.md b/sources/tech/20221221.1 ⭐️ Debugging LibreOffice Basic Macro using Breakpoint and Watch.md
new file mode 100644
index 0000000000..89ec7eaf19
--- /dev/null
+++ b/sources/tech/20221221.1 ⭐️ Debugging LibreOffice Basic Macro using Breakpoint and Watch.md
@@ -0,0 +1,118 @@
+[#]: subject: "Debugging LibreOffice Basic Macro using Breakpoint and Watch"
+[#]: via: "https://www.debugpoint.com/debugging-libreoffice-macro-basic-using-breakpoint-and-watch/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Debugging LibreOffice Basic Macro using Breakpoint and Watch
+======
+
+**A simple guide for you to learn how to debug LibreOffice basic macro using breakpoint and watch.**
+
+While writing complex macros to automate various tasks in LibreOffice, you definitely encounter errors. Some run-time errors are self-explanatory. But some of them are very generic. To debug those, you need to carefully put breakpoints and step through the code to see where the problem is in your code.
+
+Hence this tutorial. These techniques apply to all the macros written in Calc, Writer or Impress. And should be applied to OpenOffice macros as well.
+
+### Debug a LibreOffice Macro written in Basic
+
+It’s easier to demonstrate this concept using an example.
+
+#### Define
+
+Let’s define three variables which we would use for our exercise.
+
+```
+dim i, j, cnt
+```
+
+Define a `for` loop, which would execute from 1 to 10. Inside the loop, increment two variables as below. This is just for just this demo; however, you can put any logic you want.
+
+```
+for cnt = 1 to 10
+ i = i + 1
+ j = i + 1
+next cnt
+```
+
+#### Adding Breakpoint
+
+Now, we want to put two breakpoints in the statement `"for cnt = 1 to 10"` and `"j = i + 1"`. When you put a breakpoint inside your program, it runs in debug mode and holds the execution at the breakpoint.
+
+To put a breakpoint in a LibreOffice Basic macro, put the cursor in the statement. And then, press `F9` or press the below button from the toolbar.
+
+![Breakpoint toolbar button in LibreOffice Macro editor][1]
+
+Once you do that, you will see a red circle on the left side of the statement, which means a breakpoint has been added _to that statement_. See the below image. In addition, you can add multiple breakpoints as per your needs.
+
+![After adding breakpoints][2]
+
+If you want to remove a breakpoint from a statement, press `F9` again in the statement, OR you can `double-click` the red circle.
+
+#### Adding Watch
+
+Now, we would add a ‘watch’ to the variable `"cnt"`.
+
+When the program executes in debug mode, the watch helps monitor a variable’s value between program steps. To add a watch on `"cnt"`variable, select the variable and press `F7` or click the glass icon in the toolbar.
+
+![Watch button in the toolbar in LibreOffice Macro editor][3]
+
+Once you do that, you will see the variable added to the watch list at the bottom of the editor.
+
+![Watch section appears at the bottom of the editor][4]
+
+#### Execute by Step
+
+We are all set with tools.
+
+Run the program by pressing `F5`. As we already added breakpoints, you would see the execution halts at the first breakpoint with a little **yellow arrow**.
+
+![Execution halts at the breakpoint][5]
+
+Now you have two options.
+
+Press `F5` again to continue the execution of the program, and it will halt again at the next breakpoint.Press `F8` (step execution), which would execute step by step, and you can see the ‘watched’ variable `'cnt'` value is changing as below.
+
+Lets press `F8`. You can see the yellow arrow comes to the next statement, and the compiler waits. Now the fun part, if you take a closer look at the watch window, you can see the `'cnt'`variable’s value is 1.
+
+![Variable contents during execution][6]
+
+So this way, you can debug, add breakpoints and add watch any LibreOffice or OpenOffice macro using its editor.
+
+Furthermore, you can add many watch variables as you want and debug your program for successful execution.
+
+### Closing Notes
+
+Although the above example is specific to LibreOffice macros, the same concept applies to programming and debugging in general. I hope this article helps you to understand the basics of debugging, step execution and watch in programming and macros in LibreOffice.
+
+### Looking for Something Else?
+
+If you are looking for something else in LibreOffice macro tutorials Or wants to learn more about it, please follow the below link for the complete Macro Tutorials Index:
+
+[Macro Tutorial Index][7]
+
+[Next:How to Save and Open Tabs from Last Session in Web Browser][8]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/debugging-libreoffice-macro-basic-using-breakpoint-and-watch/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_Debug_watch_BreakPoint_1.png
+[2]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_Debug_watch_BreakPoint_2.png
+[3]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_Debug_watch_BreakPoint_3.png
+[4]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_Debug_watch_BreakPoint_4.png
+[5]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_Debug_watch_BreakPoint_5.png
+[6]: https://www.debugpoint.com/wp-content/uploads/2014/09/LibreOffice_Debug_watch_BreakPoint_6.png
+[7]: http://www.debugpoint.com/libreoffice-basic-macro-tutorial-index/
+[8]: https://www.debugpoint.com/open-tabs-last-session-browser/
From 9601493ea574943bd085021220be42dd5bd0394a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:58:59 +0800
Subject: [PATCH 120/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221221.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Ho?=
=?UTF-8?q?w=20to=20migrate=20your=20code=20from=20PHP=207.4=20to=208.1.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... How to migrate your code from PHP 7.4 to 8.1.md | 160 ++++++++++++++++++
1 file changed, 160 insertions(+)
create mode 100644 sources/tech/20221221.2 ⭐️⭐️ How to migrate your code from PHP 7.4 to 8.1.md
diff --git a/sources/tech/20221221.2 ⭐️⭐️ How to migrate your code from PHP 7.4 to 8.1.md b/sources/tech/20221221.2 ⭐️⭐️ How to migrate your code from PHP 7.4 to 8.1.md
new file mode 100644
index 0000000000..fe2f579bb3
--- /dev/null
+++ b/sources/tech/20221221.2 ⭐️⭐️ How to migrate your code from PHP 7.4 to 8.1.md
@@ -0,0 +1,160 @@
+[#]: subject: "How to migrate your code from PHP 7.4 to 8.1"
+[#]: via: "https://opensource.com/article/22/12/migrate-php-code"
+[#]: author: "Paul Gilzow https://opensource.com/users/gilzow"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to migrate your code from PHP 7.4 to 8.1
+======
+
+The end-of-life (EOL) for [PHP 7.4][1] was Monday, November 28, 2022. If you’re like me, that date snuck up much faster than anticipated. While your PHP 7.4 code isn’t going to immediately stop working, you do need to begin making plans for the future of this codebase.
+
+### What are your options?
+
+You could continue to remain on PHP 7.4, but there are several benefits to updating. The biggest are security risk and support. As we move farther and farther away from the EOL date, attackers will turn their focus to PHP 7.4 knowing that any vulnerabilities they discover will go unpatched in the majority of systems. Staying on PHP 7.4 drastically increases the risk of your site being compromised in the future. In a similar vein, finding support for issues you encounter with PHP 7.4 will become increasingly more difficult. In addition, you will most likely begin to encounter compatibility issues with third-party code/packages as they update their code to be compatible with later versions and drop support for 7.4. You’ll also be missing out on significant speed and performance improvements [introduced in 8.0][2] and further [improved in 8.1][3]. But upgrading all that legacy code is daunting!
+
+### Where to start?
+
+Luckily, PHP provides an [official migration guide][4] from PHP 7.4 to 8.0 to get you started (and an [8.0 to 8.1 migration guide][5] as well). Be sure to read through the Backward Incompatible Changes and Deprecated Features sections. While these guides are incredibly handy, you may very well have tens of thousands of lines of code to check, some of which you may have inherited. Luckily there are some options to help pinpoint potential problem areas in the migration.
+
+#### PHPCodeSniffer + PHPCompatibility sniffs
+
+[PHPCodeSniffer][6] (PCS) is a package for syntax checking of PHP Code. It checks your code against a collection of defined rules (aka “sniffs”) referred to as “standards”. PHPCodeSniffer ships with a collection of standards you can use including PEAR, PSR1, PSR2, PSR12, Squiz, and Zend. Luckily, you can write your own collection of sniffs to define any set of rules you like.
+
+> PHPCompability has entered the chat
+
+[PHPCompatibility][7] “is a set of sniffs for PHP CodeSniffer that checks for PHP cross-version compatibility” allowing you to test your codebase for compatibility with different versions of PHP, including PHP 8.0 and 8.1. This means you can use PHPCodeSniffer to scan your codebase, applying the rules from PHPCompability to sniff out any incompatibilities with PHP 8.1 that might be present.
+
+### Before I continue…
+
+While PHP8.2 was released on [December 8, 2022][8], and I encourage you to begin looking over the [official 8.1 to 8.2 migration guide][9] and begin making plans to upgrade, most of the checkers I mention in this article have not completed full support for 8.2 at this time. For those reasons, I’ll be focusing on migrating the code to PHP8.1, and not 8.2.
+
+In the process of writing this article, I discovered PHPCompatiblity has a [known issue][10] when checking for compatibility with PHP 8.0/8.1 where it will report issues that should be **Errors** as **Warnings**. The only workaround for now is to use the `develop` branch for PHPCompatibility instead of `master`. While they state it is stable, please be aware that in this article, I’m using the non-stable branch. You may want to weigh the pros and cons of using the `develop` branch before implementing it anywhere else than in a local development environment. While I found PCS+PHPCompatibility to be the most straightforward and comprehensive solution for checking for incompatible code, if you do not want to use a non-stable version of PCS, see the section at the end of the article about alternative options.
+
+For the purposes of this article, I’ll be using the [1.4.6 version of SimpleSAMLphp][11] to test for incompatibilities. This is a six-year-old version of the code base. I do this not to pick on SimpleSAMLphp, but because I wanted something that would _definitely_ have some errors. As it turns out, all of the platform.sh code I tested, as well as my own code was already compatible with PHP8.1 and required no changes.
+
+### Get started
+
+To get started, first clone your codebase, and then create a new branch. You’ll now need to decide if you want to install the dependencies and run the scans on your local machine or in a local development environment using something like [DDEV][12], [Lando][13], or [Docksal][14]. In this demo, I’m using DDEV. I suggest using a local development environment vs running directly on your local machine because while it’s not required to use the version of PHP you want to test against, for the best results, it is recommended you do so. If you don’t have PHP installed, or don’t have the target version installed, a local development environment allows you to create an ephemeral environment with exactly what you need without changing your machine.
+
+After setting up your environment for PHP 8.1, at a terminal prompt (in my case, I’ve run `ddev start` and once the containers are available, shell into the web app using `ddev ssh`), you need to add these new packages so you use them to test with. I’ll be adding them with composer, however, there are [multiple][15][ways][16] to [install][17][them][18] if you would prefer to do so differently. If your codebase isn’t already using composer, you’ll need to do [composer init][19] before continuing.
+
+Because you'll be using the develop branch of PHPCompatibility there are a couple of extra steps to do that aren’t in the regular installation instructions. First is that the develop branch of PHPCompatibility requires an alpha version of `phpcsstandards/phpcsutils`. Because it is marked as alpha, you'll need to let composer know this one package is OK to install even though it is below your minimum stability requirements.
+
+`$ composer require --dev phpcsstandards/phpcsutils:"^1.0@dev"`
+
+Next, install PHPCompatibility targeting the `develop` branch
+
+`$ composer require --dev phpcompatibility/php-compatibility:dev-develop`
+
+The `develop` branch also installs `dealerdirect/phpcodesniffer-composer-installer` so you don’t need to add it manually or direct PCS to this new standard.
+
+To verify our new standards are installed, you'll have PCS display the standards it is aware of.
+
+```
+$ phpcs -i
+The installed coding standards are MySource, PEAR, PSR1, PSR2, PSR12, Squiz, Zend, PHPCompatibility, PHPCS23Utils and PHPCSUtils
+```
+
+Now that you know your standards are available, you can have PCS scan our code. To instruct PCS to use a specific standard, use the `--standard` option and tell it to use `PHPCompatibility`. However, you also need to tell PHPCompatibility which PHP version you want to test against. For that, use PCS’ `--runtime-set` option and pass it the key `testVersion` and value of `8.1`.
+
+Before you start the scan, the one issue remaining is that code you want to scan is in the root of the project (`.`) but the `vendor` directly is also in the project root. You don’t want the code in `vendor` scanned, as those aren’t packages you necessarily control. PCS allows you to tell it to not scan files/directories with the `--ignore` option. Finally, you want to see the progress as PCS parses the file so you'll pass in the `-p` option.
+
+Putting it all together:
+
+`$ phpcs -p . --standard=PHPCompatibility --runtime-set testVersion 8.1 --ignore=*/vendor/*`
+
+This kicks off PCS which will output its progress as it scans through your project’s code. `W` indicates **Warnings**, and `E` indicates **Errors**. At the end of the scan it will output: a full report with the file containing the issue, the line number where the issue occurs, whether the issue is a **Warning** or an **Error**, and the specific issue discovered.
+
+In general, **Errors** are things that will cause a fatal error in PHP 8.1 and will need to be fixed before you can migrate. **Warnings** can be things that have been deprecated in 8.0/8.1 but not yet removed or issues that PCS ran into while trying to parse the file.
+
+![asciicast][20]
+
+Given that the report might be long, and is output all at once into your terminal, there are [numerous options][21] for changing the information that is included in the report, as well as multiple reporting formats.
+
+As you begin to fix your code, you can rerun the report as many times as needed. However, at some point, you’ll need to test the code on an actual PHP8.1 environment with real data. If you’re using [Platform.sh][22], which is as easy as creating a branch, changing a single line in your configuration file, and pushing that branch to us. You can check out [this video][23] to see how easy it is!
+
+### There’s too much to fix!
+
+Now that you have a solid idea of what needs to be updated before you can migrate, you might be facing an incredible amount of work ahead of you. Luckily, you have some options to help you out. PCS ships with a code fixer called [PHP Code Beautifier and Fixer][24] (`phpcbf`). Running phpcbf is almost identical to running phpcs and most of the options are identical. The other option is [Rector][25]. Usage of these tools is beyond the scope of this article, but as with any automation, you’ll want to test and verify before promoting changes to production.
+
+### Alternative options
+
+If for any reason you don’t feel comfortable using a non-stable version of PCS, you do have other options for checking your code.
+
+#### Phan
+
+Phan is a static code analyzer for PHP. It offers multiple levels of analysis and allows for incrementally strengthening that analysis.
+
+“Static analysis needs to be introduced slowly if you want to avoid your team losing their minds.”
+
+Phan doesn’t target just compatibility with newer versions, it can highlight areas of code that will error in later versions. However, there are some caveats when using Phan for checking compatibility:
+
+- Slower than PCS+PHPCompatibility.
+- Phan requires the [ast php extension][26] which is not available by default on Platform.sh (or in DDEV). You’ll need to install it in your local development environment and add it to your php.ini file. Alternatively, you can use the `--allow-polyfill-parser` option, but it is considerably slower.
+- Phan’s default reporting output isn’t as easy to read as other options
+- I came across an issue where if your code base sets a different `vendor` directory via composer’s `[config:vendor-dir](https://getcomposer.org/doc/06-config.md#vendor-dir)` option, it will error out stating it can’t find certain files in the `vendor` directory
+- As mentioned, Phan analyzes much more than just PHP8.1 compatibility. While certainly a strength in other situations, if your goal is to migrate from 7.4 to 8.1 as quickly as possible, you will have to parse through errors that are unrelated to version compatibility.
+- Requires you run it on the PHP version you want to target
+
+#### PHPStan
+
+Similar to Phan, PHPStan is a static code analyzer for PHP that promises to “find bugs without writing tests.” And a similar set of caveats apply:
+
+- Slower than either PCS or Phan
+- Analyzes much more than just PHP8.1 compatibility so depending on your current codebase, you will have to possibly parse through a bunch of errors that are unrelated to version compatibility
+- Requires you run it on the PHP version you want to target
+
+#### PHP Parallel Lint
+
+A very fast PHP linter that can lint your codebase for issues, but can also check for deprecations. While it is exceptionally fast, it is only a linter, and therefore can only surface deprecations that are thrown at compile time, not at runtime. In my example code, it only found 2 deprecations vs the 960 deprecations PCS uncovered.
+
+### Summary
+
+Code migrations, while never fun, are crucial to minimizing organizational risk. Platform.sh gives you the flexibility to test your code using the same data and configurations as your production site, but in a siloed environment. Combine this with the tools above, and you have everything you need for a strong, efficient code migration.
+
+_This article originally published on the [Platform.sh community site][27] and has been republished with permission._
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/migrate-php-code
+
+作者:[Paul Gilzow][a]
+选题:[lkxed][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/gilzow
+[b]: https://github.com/lkxed
+[1]: https://www.php.net/eol.php
+[2]: https://platform.sh/blog/2020/php-80-feature-focus-just-in-time-compilation
+[3]: https://platform.sh/blog/2021/php-81-lays-new-ground-at-platformsh
+[4]: https://www.php.net/manual/en/migration80.php
+[5]: https://www.php.net/manual/en/migration81.php
+[6]: https://github.com/squizlabs/PHP_CodeSniffer
+[7]: https://github.com/PHPCompatibility/PHPCompatibility
+[8]: https://www.php.net/archive/2022.php#2022-12-08-1
+[9]: https://www.php.net/manual/en/migration82.php
+[10]: https://github.com/PHPCompatibility/PHPCompatibility/issues/1344
+[11]: https://github.com/simplesamlphp/simplesamlphp/releases/tag/v1.14.6
+[12]: https://opensource.com/article/22/12/ddev
+[13]: https://lando.dev/
+[14]: https://docksal.io/
+[15]: https://github.com/squizlabs/PHP_CodeSniffer#phive
+[16]: https://github.com/squizlabs/PHP_CodeSniffer#git-clone
+[17]: https://github.com/squizlabs/PHP_CodeSniffer#installation
+[18]: https://github.com/PHPCompatibility/PHPCompatibility#installation-via-a-git-check-out-to-an-arbitrary-directory-method-2
+[19]: https://getcomposer.org/doc/03-cli.md#init
+[20]: https://asciinema.org/a/MGKsC3RkNaWMcGtJGiyMHorWy.svg
+[21]: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Reporting
+[22]: https://platform.sh/
+[23]: https://www.youtube.com/watch?v=mAb8DO7Jp0Q
+[24]: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Fixing-Errors-Automatically#using-the-php-code-beautifier-and-fixer
+[25]: https://github.com/rectorphp/rector
+[26]: https://github.com/nikic/php-ast
+[27]: https://community.platform.sh/t/migrating-php-7-4-code-to-8-1-on-platform-sh/1156
From d214d51019b3acbcb6558836fa29579e3ca4ea98 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 20:59:50 +0800
Subject: [PATCH 121/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221221.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Op?=
=?UTF-8?q?en=20source=20solutions=20for=20EV=20charging.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️⭐️ Open source solutions for EV charging.md | 74 +++++++++++++++++++
1 file changed, 74 insertions(+)
create mode 100644 sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
diff --git a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
new file mode 100644
index 0000000000..249f89ff02
--- /dev/null
+++ b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
@@ -0,0 +1,74 @@
+[#]: subject: "Open source solutions for EV charging"
+[#]: via: "https://opensource.com/article/22/12/open-source-ev-charging"
+[#]: author: "Joshua Pearce https://opensource.com/users/jmpearce"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Open source solutions for EV charging
+======
+
+Maybe you hate pumping gas in the cold (or heat), or you care about the environment. Maybe the latest gas prices and general inflation has you thinking more about stretching your money. Perhaps you simply think electric vehicles (EVs) look cool. No matter the reason, you're excited about your next vehicle being an EV and you're not alone! The EV market share is set to [expand to 30% by 2040][1]. The [US government provides a handy comparison tool][2] to show that the cost of ownership of an EV easily beats owning and operating fossil fuel vehicles. Despite this, EV charging costs can still hit you hard in your wallet.
+
+One of the most elegant ways to solve cost problems in general is to apply open source principles to accelerate innovation. Fortunately for you, this has been done in the EV charging area to find a way to get low-cost electricity and low-cost chargers.
+
+To control the costs of EV charging, first you need low-cost electricity. In the old days, that would mean going from oil to coal, which is not a step up. Today, as it turns out, [solar photovoltaic (PV)][3] devices that convert sunlight directly into electricity normally provide the lowest-cost electricity. Coal companies are going bankrupt because they can no longer compete with clean solar power. This is also why [solar power is seeing explosive growth all over the world][4]. Many homeowners are putting [solar panels on their roofs][5] or on ground mounts in the backyard to cover all of their home’s electric needs. But how can you charge your EV with solar energy if you have limited roof area or a small backyard?
+
+### Open source PV parking canopy
+
+One approach that major corporations are taking is to make a PV canopy over their parking lots. If you want to do this yourself, a new [study][6] provides a full mechanical and economic analysis of three novel open source PV canopy systems:
+
+- Use an exclusively wood, single-parking-spot spanning system
+- Use a wood and aluminum double-parking-spot spanning system
+- Use a wood and aluminum cantilevered system
+
+The designs are presented as 5-by-6 stall builds, but all three systems are scalable to any amount of parking spots required. This includes a 1-stall 6kW system to charge a single car at home (as shown below). All of the racks are rated for a 25-year expected lifetime to match the standard PV warranty.
+
+![Image of a single car PV canopy.][7]
+
+The open source PV canopies are all designed to withstand a brutal Canadian winter. They also follow Canada’s strict building codes. So if you live anywhere else, the system as designed should still work for you. The complete [designs][8]and bill of materials of the canopies are provided, along with basic instructions. They are released with an open source license that enables anyone to fabricate them following the spirit of the free book about DIY solar power collectors [_To Catch the Sun_][9].
+
+The results of the previously mentioned [study][6] show that open source designs are much less expensive than proprietary products. Single-span systems provide cost savings of 82-85%, double-span systems save 43-50%, and cantilevered systems save 31-40%.
+
+Most importantly, the designs give you more than enough energy (if you have a normal commute) to cover your charging needs. In the first year of operation, PV canopies can provide 157% of the energy needed to charge the least efficient EV currently on the market.
+
+![Image of an OpenEVSE charging station.][10]
+
+### Open source EV chargers
+
+Another way to cut the cost of EV ownership is to install an open source EV charger. [OpenEVSE][11] is an Arduino-based charging station composed of [open source software][12] and hardware which can be made DIY-style. They are small, lightweight, and portable, so you can use them at home or on the road.
+
+OpenEVSE powers charging stations for many EV manufacturers all over the world. You can adapt it to fit your requirements. OpenEVSE is now quite mature and supports advanced features including adjustable current, temperature monitoring, and a real-time power display. You can buy the hardware pre-assembled and ready to go. If you want to save more money (and have more fun) buy a kit and build it yourself.
+
+![Image of the OpenEVSE kit.][13]
+
+I hope to see more designs of EV power solutions in the future. Keep your eyes open, roll up your sleeves for some DIY, and enjoy assembling your open source, solar-powered EV charging solutions!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/open-source-ev-charging
+
+作者:[Joshua Pearce][a]
+选题:[lkxed][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/jmpearce
+[b]: https://github.com/lkxed
+[1]: https://about.bnef.com/electric-vehicle-outlook/
+[2]: https://fueleconomy.gov/feg/Find.do?action=sbsSelect
+[3]: https://opensource.com/article/21/11/open-source-solar-power
+[4]: https://www.alliedmarketresearch.com/photovoltaic-market
+[5]: https://opensource.com/article/22/12/open-source-solar-power-home
+[6]: https://doi.org/10.3390/technologies10060114
+[7]: https://opensource.com/sites/default/files/2022-12/Single%20car%20open%20source%20PV%20canopy.png
+[8]: https://www.appropedia.org/Open-source_Photovoltaic_-_Electrical_Vehicle_Carport_Designs
+[9]: https://tocatchthesun.com/
+[10]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20charging%20an%20electric%20car.png
+[11]: https://openevse.com/index.html
+[12]: https://github.com/OpenEVSE
+[13]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20kit.png
From 9b9f8a7b6d0a653c07a31614bf702e3f19986e72 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 21:00:20 +0800
Subject: [PATCH 122/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221221.4=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20My?=
=?UTF-8?q?=204=20favorite=20features=20of=20the=204pane=20file=20manager?=
=?UTF-8?q?=20on=20Linux.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ite features of the 4pane file manager on Linux.md | 100 ++++++++++++++++++
1 file changed, 100 insertions(+)
create mode 100644 sources/tech/20221221.4 ⭐️⭐️ My 4 favorite features of the 4pane file manager on Linux.md
diff --git a/sources/tech/20221221.4 ⭐️⭐️ My 4 favorite features of the 4pane file manager on Linux.md b/sources/tech/20221221.4 ⭐️⭐️ My 4 favorite features of the 4pane file manager on Linux.md
new file mode 100644
index 0000000000..f64399c4eb
--- /dev/null
+++ b/sources/tech/20221221.4 ⭐️⭐️ My 4 favorite features of the 4pane file manager on Linux.md
@@ -0,0 +1,100 @@
+[#]: subject: "My 4 favorite features of the 4pane file manager on Linux"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-4pane"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+My 4 favorite features of the 4pane file manager on Linux
+======
+
+4Pane is a multi-pane file manager for Linux that allows for customized layout, and provides quick access to traditional desktop conveniences as well as common Linux tools. 4Pane aims for speed over visual effects, and places the way you want to work above all else. In honor of its name, I've got a list of my four favorite features of this fine file manager.
+
+### 1. Flexible interface
+
+![The 4Pane file manager is a fast multi-pane application for managing files.][1]
+
+The most prominent feature of the 4Pane window is the same as its name: there are four panes in the window by default. In a way, though, there's actually only two, or said another way, each of the two panes is divided into two columns. The column on the left is a directory tree of your current location (home, by default.) Files are never displayed in the left column. It's only a directory tree.
+
+The adjacent column displays the contents of the selected directory. When you double-click on a file, it opens in its default application. When you double-click on a directory, that directory is revealed in the left column and the right column displays its contents.
+
+This same model is duplicated in the other window pane.
+
+4Pane only has 4 panes by default, but it doesn't enforce that view. If you're overwhelmed by the four-pane view, click on the **View** menu and select **Unsplit panes**. This displays just one pane of two columns. It's a simplified view compared to what's possible, but it's a nice place to start while you're getting used to the column-style for browsing files.
+
+#### Splitting panes
+
+The advantage of a split view is that you don't have to open another window to drag and drop a file or folder from one location to another. This isn't the predominant model for file managers, but it's a popular subset. 4Pane is one of the few, in my experience, that recognizes that it's not always convenient to work laterally. If you prefer to have your second pane at the bottom of the window, go to the **View** menu and select **Split panes horizontally** (meaning that the _split_ is horizontal, so the panes are situated vertically to one another).
+
+![You can create horizontal splits in 4Pane.][2]
+
+### 2. Tooltip preview
+
+One of my favorite features of 4Pane is the tooltip preview. To activate this, click the photo icon in the top toolbar. With this active, all you have to do is roll your mouse over a file to see a preview of its contents in a tooltip. It may not be a feature you want active all the time. The tooltips can be distracting when you're just browsing files. However, if you're looking for something specific or if you're just not sure exactly what's in a directory, a quick wave of your mouse to get an overview of the contents of several files is satisfyingly efficient.
+
+### 3. Menu
+
+The menu bar of 4Pane isn't quite like most file manager menu bars you may be accustomed to. There's a menu dedicated to archiving actions, mounting devices, and popular Linux commands such as [grep][3] and [find][4].
+
+For instance, in the **Archive** menu, you can choose to extract an archive or compressed file, create a new archive, add a file to an existing archive, compress a file, and more. I love [Ark][5] and similar utilities, but I also recognize how useful it is for a file manager to make those utilities unnecessary. Especially when you're on an [old computer][6], the fewer applications you have to launch, the better.
+
+Also impressive are the built-in front ends for `grep` and `find`. I'll admit that I probably won't use it often myself, but I never complain when a developer brings the power of Linux commands to users who aren't [yet] familiar with the terminal.
+
+![4Pane can run grep and locate commands to help you find your data.][7]
+
+The `locate` front end is probably the most useful of the bunch. It's fast and effective. There's just one field in the dialogue box, so it makes a file system search _fast_.
+
+For example, say you're searching for the file `Zombie-Apocalypse-Plan-B.txt` because Plan A fell through, but in the heat of the moment (what with zombies knocking down your door, and all) you can't remember where you saved it. Go to the **Tools** menu and select **locate**. Type `zombie` in the search field, click the `-i` box so that your system ignores capitalization, and click **OK**. This returns both `Zombie-Apocalypse-Plan-A.txt` and `Zombie-Apocalypse-Plan-B.txt`.
+
+Maybe that's good enough for you, or maybe you need a little more precision. In addition to `-i` for case insensitivity, you can click the `-r` option to leverage the power of [regex][8]. Type `zombie.B.` to narrow your search to a file starting with `zombie` and containing the letter `B` somewhere in the filename.
+
+Effective and fast.
+
+### 4. Undo
+
+Finally, my (other) very favorite feature of 4pane is the **Undo** button. When you right click on a file or folder and select **Delete**, the item is sent to a secret location (it's not actually secret, but it's out of sight and out of mind). The item isn't scrubbed from the hard drive until you close the 4pane window. Up until then, you can always click the **Undo** button in the top toolbar to reverse decisions you've come to regret.
+
+This is a separate action from sending a file to your system trash, so it _is_ meant to masquerade as an actual delete action. The difference is that it's a delayed delete. That may not suit you. Some users are disciplined enough to send files to the system trash, but others skip the trash. This feature is designed to protect you from yourself by delaying deletion until you close the window. I find it a reasonable and invaluable feature, and it's the one feature that I've already benefited from several times.
+
+### Install 4Pane on Linux
+
+If you're sold on 4Pane, or at least curious about it, then you should install it and try it out! On Linux, your distribution may package 4Pane in its software repository. If so, you can use your package manager to install. For example, on Fedora, Mageia, OpenMandriva, and similar:
+
+```
+$ sudo dnf install 4pane
+```
+
+On Debian and Debian-based systems:
+
+```
+$ sudo apt install 4pane
+```
+
+If your distribution doesn't carry 4Pane, you can download it from [4pane.co.uk][9].
+
+Once installed, launch 4Pane from your application menu.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-4pane
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/2022-10/4pane.webp
+[2]: https://opensource.com/sites/default/files/2022-10/4pane-split-horizontally.webp
+[3]: https://opensource.com/article/21/3/grep-cheat-sheet
+[4]: https://opensource.com/article/18/4/how-use-find-linux
+[5]: https://opensource.com/article/22/2/archives-files-linux-ark-kde
+[6]: https://opensource.com/article/19/7/how-make-old-computer-useful-again
+[7]: https://opensource.com/sites/default/files/2022-10/4pane-grep.webp
+[8]: https://opensource.com/article/18/5/getting-started-regular-expressions
+[9]: http://www.4pane.co.uk/
From 43d38cc91a20349d1b1a499316156126bedd2db5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 21:01:31 +0800
Subject: [PATCH 123/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221222.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=2011?=
=?UTF-8?q?=20New=20Distros=20to=20look=20forward=20to=20in=202023.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️ 11 New Distros to look forward to in 2023.md | 258 ++++++++++++++++++
1 file changed, 258 insertions(+)
create mode 100644 sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md
diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md
new file mode 100644
index 0000000000..1999c6f859
--- /dev/null
+++ b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md
@@ -0,0 +1,258 @@
+[#]: subject: "11 New Distros to look forward to in 2023"
+[#]: via: "https://news.itsfoss.com/new-distros-2023/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+11 New Distros to look forward to in 2023
+======
+
+What are you looking forward to in 2023? Try these distros!
+
+![11 New Distros to look forward to in 2023][1]
+
+It's time to say goodbye to 2022! 📆
+
+There were many distro releases in 2022, some more extraordinary than others.
+
+With the trend shifting towards focusing more on the user experience and performance side of things, Linux distributions have significantly evolved over the past year.
+
+As for you, the end-user, you now have several options. You can try some [beginner-friendly options][2] or [distros for advanced users][3].
+
+Here, I focus on new options that you can give a try. These distros may not necessarily replace the popular distributions available. But if you want to try something new and different, feel free to go through the list.
+
+So, what can you expect in 2023? 🤔
+
+Well, to answer that. Allow me to take you on a distro journey!
+
+> 💡 New distributions may not be suitable for production use cases. Try these options if you have no issues taking a leap of faith to experiment.
+
+### 1. Vanilla OS
+
+![vanilla os][4]
+
+Vanilla OS is an Ubuntu-based distro that is the brainchild of Mirko Brombin, the creator of [Bottles][5].
+
+It aims to provide a **clean, vanilla GNOME experience with on-demand immutability** and an exceptional first-time setup experience.
+
+You can check it out if you want something new and want to try out the on-demand immutability features that make Vanilla OS so unique.
+
+It is yet to receive a stable release (soon) and is set to receive many improvements in 2023.
+
+[Vanilla OS][6]
+
+### 2. XeroLinux
+
+![xeroxlinux][7]
+
+Steve a.k.a. TechXero, started [XeroLinux][8] as a passion project that was not meant to be a mainstream distro with all the bells and whistles.
+
+An **'eye-candy' version of Arch Linux** offers a pleasant out-of-the-box experience with a few exciting features.
+
+You can try this if you want a more accessible Arch Linux experience.
+
+**From January 2023**, XeroLinux will be switching to a monthly release schedule. So, you can expect plenty of updates in 2023!
+
+[XeroLinux][9]
+
+### 3. Crystal Linux
+
+![crystal linux][10]
+
+Crystal Linux is an upcoming Arch-based distro that wants to **provide an easy-to-use desktop experience coupled with modern Linux technologies**.
+
+In its current form, it may not be welcoming to newcomers, and people with experience using Linux are likelier to like it.
+
+So, for now, I would suggest users who are already familiar with Linux give Crystal Linux a try.
+
+I expect Crystal Linux to have a stable release sometime in 2023 with many features and improvements over the [beta version][11] that is available right now.
+
+[Crystal Linux][12]
+
+#### Recommended Read 📖
+
+### 4. TUXEDO OS
+
+![tuxedo os][13]
+
+[TUXEDO OS][14] is an Ubuntu-based offering from TUXEDO Computers, a Linux-focused hardware manufacturer.
+
+It features the KDE Plasma desktop environment with extras like **TUXEDO Control Center** to fine-tune your hardware and **TUXEDO Tomte**, a configuration service for resolving driver/missing package issues.
+
+I suggest you try this if you want a **different KDE-powered experience**.
+
+Initially, it was only made available as a pre-installed operating system on TUXEDO laptops and computers.
+
+But later, it received a general use release back in September 2022 dubbed as 'TUXEDO OS 1'. It is set to receive plenty of updates in 2023.
+
+[TUXEDO OS][15]
+
+### 5. EuroLinux
+
+![euro linux][16]
+
+An RHEL-based distro with **enterprise perks** is what [EuroLinux][17] is. It provides stability and security in a solid package.
+
+Based on **RHEL 9**, it can provide seamless compatibility with other [RHEL-based server distros][18] such as Rocky Linux, CentOS, AlmaLinux, and more.
+
+It aims to lure in Windows and macOS users with a familiar user interface layout with its implementation of a translucent dock at the bottom of the screen.
+
+You should try this because the overall package is quite adequate and can cater to both Linux and Windows/macOS users.
+
+It is now available as stable release, with updates planned for 2023.
+
+[EuroLinux Desktop][19]
+
+### 6. Zinc
+
+![zinc][20]
+
+[Zinc][21] is an **Ubuntu-based distro** that has been tweaked to provide a unique experience. Existing Ubuntu users may be surprised to see what it has to offer.
+
+Based on the latest LTS release of **Xubuntu**, it uses the XFCE desktop environment with numerous improvements, such as integrated Linux AppImage support, deb-get package installer, BTRFS as the default file system, and more.
+
+This distro can be a viable alternative to replace your daily driver, provided it is set up correctly.
+
+It follows a stable release model, so you can expect significant updates in 2023!
+
+[Zinc][21]
+
+### 7. CachyOS
+
+![cachyos][22]
+
+[CachyOS][23] tries to make **Arch Linux a beginner-friendly affair** that anyone can use. It is popular because of its high level of customizability and also because it has the newest software.
+
+It aims to provide you with a fast and secure operating system that is easy to use.
+
+This OS is for users who want to experiment and try something new.
+
+CachyOS is a rolling-release distro, so you can expect it to receive a ton of updates in 2023.
+
+[CachyOS][23]
+
+### 8. risiOS
+
+![risios][24]
+
+In a sea of Arch and Ubuntu-based Linux distros, [risiOS][25] is a rare sight to see.
+
+Based on Fedora Linux, the project saw its beginnings in Seattle, USA.
+
+It uses the **GNOME desktop environment** to provide users with a highly customizable experience with a **customized ZSH version**.
+
+If you want to try a Fedora-based distro, this can be something new for you!
+
+risiOS gets a stable release with minor updates pushed in between. It has much more to give in 2023.
+
+[risiOS][25]
+
+### 9. Exodia OS
+
+![exodia os][26]
+
+Another Arch-based Linux distro!#$**?
+
+Yes. 🤭 Well, it looks like this year, we have had enough of Arch-based distros, which is not necessarily bad!
+
+Meet [Exodia OS][27], an Arch-based Linux distro that aims to be highly customizable for users in cybersecurity fields.
+
+Its feature set includes pre-installed **tools for all cybersecurity fields, TUI Apps, ElKowars wacky widgets (EWW), zsh, and more**.
+
+If you are a cybersecurity expert or an enthusiast, you can give this a try!
+
+They offer three releases for different use cases. You can expect them to keep pushing essential updates and feature additions in 2023.
+
+[Exodia OS][27]
+
+### 10. Kumandar Linux
+
+![kumander linux][28]
+
+At first glance, you would think that it is Windows 7, but if you look closer, you will find that it is [Kumandar Linux][29].
+
+It is based on **Debian 11 and uses a customized version of XFCE**.
+
+The name stands for 'Commander' in English and pays homage to the developer's first computer, the [Commodore VIC20][30].
+
+If you liked the Windows 7 experience but wanted the same thing on Linux. Then you can give this a try!
+
+Currently, only the early-release candidate has been released. But you can expect a stable release in 2023, hopefully!
+
+[Kumander][29]
+
+### 11. Ubuntu Unity
+
+![ubuntu unity][31]
+
+Declared as an official flavor of Ubuntu [earlier this year][32], Ubuntu Unity is a remix of Ubuntu.
+
+It features the **Unity desktop interface** used in Ubuntu from 2010-2017, which was dropped in favor of GNOME.
+
+The development has been in full swing, with the young lead developer pushing updates and feature additions.
+
+Users who want to try a different flavor of Ubuntu can give this a shot. It offers both LTS and non-LTS releases.
+
+[Ubuntu Unity][33]
+
+**So, wrapping up.**
+
+Even with this comprehensive list, I may have missed out on some. 🤔
+
+But.
+
+Maybe a surprise release will take the headlines in 2023, or some existing distro will try something different.
+
+Until then.
+
+_💬 Do tell me what distribution you are excited about in 2023?_
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/new-distros-2023/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/distros-to-look-forward-in-2023.png
+[2]: https://itsfoss.com/best-linux-beginners/
+[3]: https://itsfoss.com/advanced-linux-distros/
+[4]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-1.png
+[5]: https://usebottles.com
+[6]: https://vanillaos.org
+[7]: https://news.itsfoss.com/content/images/2022/12/XeroLinux.jpg
+[8]: https://itsfoss.com/xerolinux/
+[9]: https://xerolinux.xyz
+[10]: https://news.itsfoss.com/content/images/2022/12/Crystal-Linux.jpg
+[11]: https://git.getcryst.al/crystal
+[12]: https://getcryst.al
+[13]: https://news.itsfoss.com/content/images/2022/12/TuxedoOS.jpg
+[14]: https://news.itsfoss.com/tuxedo-os/
+[15]: https://www.tuxedocomputers.com/en/TUXEDO-OS_1.tuxedo
+[16]: https://news.itsfoss.com/content/images/2022/12/EuroLinux.jpg
+[17]: https://news.itsfoss.com/eurolinux-desktop/
+[18]: https://itsfoss.com/rhel-based-server-distributions/
+[19]: https://en.euro-linux.com/eurolinux/desktop/
+[20]: https://news.itsfoss.com/content/images/2022/12/Zinc.png
+[21]: https://teejeetech.com/tag/zinc/
+[22]: https://news.itsfoss.com/content/images/2022/12/CachyOS.jpg
+[23]: https://cachyos.org
+[24]: https://news.itsfoss.com/content/images/2022/12/risiOS.png
+[25]: https://risi.io
+[26]: https://news.itsfoss.com/content/images/2022/12/Exodia-OS.jpg
+[27]: https://exodia-os.github.io/exodia-website/
+[28]: https://news.itsfoss.com/content/images/2022/12/Kumander-Linux.jpg
+[29]: https://www.kumander.org
+[30]: https://en.wikipedia.org/wiki/VIC-20
+[31]: https://news.itsfoss.com/content/images/2022/12/UbuntuUnity.jpg
+[32]: https://news.itsfoss.com/unity-remix-official-flavor/
+[33]: https://ubuntuunity.org/
From e1705fe10e3f484217645c313ec2d50c4ff54364 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 21:02:38 +0800
Subject: [PATCH 124/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221222.1=20=E2=AD=90=EF=B8=8F=20Tails=205.8=20Arrive?=
=?UTF-8?q?s=20with=20Official=20Wayland=20Support.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...s 5.8 Arrives with Official Wayland Support.md | 74 +++++++++++++++++++
1 file changed, 74 insertions(+)
create mode 100644 sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md
diff --git a/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md b/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md
new file mode 100644
index 0000000000..e55d86badd
--- /dev/null
+++ b/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md
@@ -0,0 +1,74 @@
+[#]: subject: "Tails 5.8 Arrives with Official Wayland Support"
+[#]: via: "https://debugpointnews.com/tails-5-8-release/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Tails 5.8 Arrives with Official Wayland Support
+======
+
+![][1]
+
+**A sizable update arrives in Tails 5.8, bringing Wayland support, newly redesigned persistence storage and more.**
+
+Tails, aka The Amnesic Incognito Live System, is a [privacy-focussed Linux Distribution][2] which uses the Tor network to protect you while browsing the web. Tails are based on Debian stable branch and come with many goodies such as an IRC client, Tor browser, email clients, and messengers to help you roam around on the web anonymously.
+
+![Tails 5.8 desktop][3]
+
+### What’s New in Tails 5.8 Release
+
+At a high level, Tails 5.8 includes significant redesigns of existing features, improved usability, and strengthened security. Also, bringing modern tech aligns with the changing times and needs of the hour.
+
+The persistence storage module gets a complete redesign in this release. In the new version of Persistent Storage, you no longer have to restart after creating a Persistent Storage or activating a new feature. You can also change the password for your Persistent Storage from within the application. Additionally, you can now create a Persistent Storage directly from the Welcome Screen if you don’t already have one. The Persistent Storage had not been updated much since its initial release in 2012 due to challenges in modifying and improving the code.
+
+The Tails team has also replaced the deprecated X.Org display system with Wayland. While you may not notice any visual changes, Wayland provides increased security for Tails by making it harder for a compromised application to compromise or misuse other applications.
+
+![Browse internet securely using Tails 5.8][4]
+
+For example, since Tails 4.8, the Unsafe Browser has been disabled by default due to a security vulnerability that could reveal your IP address and deanonymize you through the use of an invisible Unsafe Browser. Wayland addresses this vulnerability and makes it safe to enable the Unsafe Browser by default again. However, if desired, you can still disable the Unsafe Browser from the Welcome Screen.
+
+In addition to addressing security concerns, Wayland also introduces new features that were previously not supported in the Unsafe Browser, including sound, file uploads and downloads, alternative input methods for non-Latin languages such as Chinese, and accessibility features like the screen reader and virtual keyboard.
+
+The Tails team has also made it easier to enter new Tor bridges by allowing you to scan a QR code. You can obtain a QR code by sending an empty email to [bridges@torproject.org][5] from a Gmail or Riseup email address or by visiting [https://bridges.torproject.org/][6] and printing the QR code on paper.
+
+Furthermore, the entire Debian stable base is bumped up to the latest version, including pre-loaded apps.
+
+A complete changelog is available [here][7] if you want to dive deeper into the changes.
+
+### Download and upgrade
+
+If you are already running a prior version of the Tails 5.0 series, you should automatically get this update once you boot up Tails from the USB stick.
+
+In addition, if you want to install Tails 5.8 fresh, grab the ISO files from the below links:
+
+- [For USB sticks (USB image)][8]
+- [For DVDs and virtual machines (ISO image)][9]
+
+Via [release announcement][10].
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/tails-5-8-release/
+
+作者:[arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2022/12/tails58head.jpg
+[2]: https://www.debugpoint.com/privacy-linux-distributions-2022/
+[3]: https://debugpointnews.com/wp-content/uploads/2022/12/Tails-5.8-desktop.jpg
+[4]: https://debugpointnews.com/wp-content/uploads/2022/12/Browse-internet-securely-using-Tails-5.8.jpg
+[5]: https://debugpointnews.commailto:bridges@torproject.org
+[6]: https://bridges.torproject.org/
+[7]: https://gitlab.tails.boum.org/tails/tails/-/blob/master/debian/changelog
+[8]: https://tails.boum.org/install/download/index.en.html
+[9]: https://tails.boum.org/install/download-iso/index.en.html
+[10]: https://tails.boum.org/news/version_5.8/index.en.html
From da5ae74dfea4460b76543403df98ad176ba7f4ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 22 Dec 2022 21:03:06 +0800
Subject: [PATCH 125/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221222.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=203?=
=?UTF-8?q?=20delightful=20features=20of=20the=20Linux=20QtFM=20file=20man?=
=?UTF-8?q?ager.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ightful features of the Linux QtFM file manager.md | 91 +++++++++++++++++++
1 file changed, 91 insertions(+)
create mode 100644 sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
diff --git a/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
new file mode 100644
index 0000000000..3cdd80fb63
--- /dev/null
+++ b/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
@@ -0,0 +1,91 @@
+[#]: subject: "3 delightful features of the Linux QtFM file manager"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-qtfm"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+3 delightful features of the Linux QtFM file manager
+======
+
+QtFM is a simple file manager that aims to provide the basic features of file management through a fast and intuitive interface. It's available for Linux, BSD, and macOS.
+
+QtFM, as its name suggests, uses the Qt (canonically pronounced "cute") programming toolkit. I've worked with the Qt toolkit both in C++ and Python, and using it is always a pleasure. It's cross-platform, it's got multiple levels of useful abstraction so developers don't have to interact directly with vendor-specific SDKs, and it's highly configurable. From a user's perspective, it's a "natural" and fast experience, whether you're on the latest hardware or on an [old computer][1].
+
+### Using QtFM
+
+There's not much to QtFM. It focuses on being exactly what its name claims: a file manager (FM) for Qt. The layout is what you probably expect from a file manager: a list of common places and devices on the left and a list of files on the right.
+
+![QtFM file manager][2]
+
+It's got just four menus.
+
+- **File**: Create a new file or folder, open a new tab or window, or exit the application.
+- **Edit**: Copy, paste, move to trash, or create a new bookmark in the left panel.
+- **View**: Toggle between the list and icon views, adjust the layout.
+- **Help**: Licensing information, and links to online documentation.
+
+Interacting with QtFM is largely the same experience you're probably used to with any standard-issue file manager. You can click around to navigate, open files in its default application, drag-and-drop files and folders, copy and paste files and folders, launch applications, and whatever else you do when you're interacting with the contents of your computer. It's familiar, so there's basically no learning curve and no unpleasant surprises.
+
+There are, however, several pleasant surprises. Here are three of my favorites.
+
+### 1. Put a command into a contextual menu
+
+With QtFM, you can add any command you can run in a terminal to the right-click contextual menu. For instance, suppose you want an option to convert an image into the [webp format][3] to the right-click menu. There's no complex framework or scripting language to learn, you don't need to develop a plugin. You can do it in just 3 steps:
+
+- Go to the **Edit** menu and select **Settings**
+- Click on the **Custom actions tab**
+- Click the **Add** button and enter the command you want to run, using `%f` for the source file and `%n` for the new file
+
+![QtFM custom actions][4]
+
+The action now appears in your QtFM contextual menu.
+
+### 2. Flexible layout
+
+One of the built-in features of the Qt toolkit is that many of its components are ("widgets") detachable. QtFM takes advantage of this and allows you to unlock its layout from the **View** menu. Once unlocked, you can drag toolbars and side panels, anchoring them in new positions around your window. I was able to combine the menu bar, navigation toolbar, and the URI field into a unified panel, and I placed a file tree on the right side of the window for convenience.
+
+![QtFM unlocking the layout][5]
+
+This requires no special knowledge of application design or even configuration. You just unlock, drag and drop, and lock.
+
+### 3. Tabbed view
+
+Many Linux file managers offer tabs the same way as most web browsers do. It's a simple interface trick that lets you keep several locations handy. I don't know whether it actually saves time, but I always feel like it does. QtFM offers tabs, too, and there are two things I particularly enjoy about the way it implements them.
+
+First of all, the tabs are at the bottom of the window by default (you can change that in **Settings**.) Because I tend to read from left to right and top to bottom, I usually prefer to have "extra" information at the bottom and right ends of a window. Of course, what constitutes "extra" information varies from user to user, so I don't blame any developer for placing widgets and panels in places I wouldn't put widgets and panels. It's nice, though, when a developer accidentally agrees with my preferences.
+
+Secondly, the tabs are responsive. You can drag a file or folder from one tab into another just by hovering over your target tab. It feels as natural as dragging and dropping from one window to another.
+
+### Install QtFM
+
+On Linux, your distribution may package QtFM in its software repository. If so, you can use your package manager to install. For example, on Debian and Debian-based systems:
+
+```
+$ sudo apt install qtfm
+```
+
+If your distribution doesn't offer QtFM, you may find a package for it on its [website][6], or you can download the source code from its [Git repository][7].
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-qtfm
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity
+[2]: https://opensource.com/sites/default/files/2022-12/qtfm.webp
+[3]: https://opensource.com/article/20/4/webp-image-compression
+[4]: https://opensource.com/sites/default/files/2022-12/qtfm-custom-action.webp
+[5]: https://opensource.com/sites/default/files/2022-12/qtfm-layout-unlock.webp
+[6]: https://qtfm.eu/
+[7]: https://github.com/rodlie/qtfm/
From a82ea4f2944cf8ddc894c65297f7f19cde687667 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Fri, 23 Dec 2022 09:48:30 +0800
Subject: [PATCH 126/266] RP
@geekpi
https://linux.cn/article-15374-1.html
---
...⭐️ Install open source solar power at home.md | 64 +++++++++++++++++++
...⭐️ Install open source solar power at home.md | 61 ------------------
2 files changed, 64 insertions(+), 61 deletions(-)
create mode 100644 published/20221209.0 ⭐️⭐️ Install open source solar power at home.md
delete mode 100644 translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
diff --git a/published/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/published/20221209.0 ⭐️⭐️ Install open source solar power at home.md
new file mode 100644
index 0000000000..6a2cd140e4
--- /dev/null
+++ b/published/20221209.0 ⭐️⭐️ Install open source solar power at home.md
@@ -0,0 +1,64 @@
+[#]: subject: "Install open source solar power at home"
+[#]: via: "https://opensource.com/article/22/12/open-source-solar-power-home"
+[#]: author: "Joshua Pearce https://opensource.com/users/joshuapearce"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15374-1.html"
+
+在家里安装开源光伏支架
+======
+
+![][0]
+
+> 看看这两个你可以为你的家庭建造的开源的光伏支架设计。
+
+你可能已经考虑过用太阳能为你的家供电。将太阳光直接转化为电能的太阳能光伏电池板的成本已大幅下降,因此在任何地方都具有经济意义。这就是为什么大公司投入大量太阳能,甚至电力公司也开始安装大型太阳能发电场的原因,因为它的成本低于过时的化石燃料。像大多数房主一样,你想省钱并节省电费,但你可能对前期费用有点畏缩。为了大致了解成本,一个 5 千瓦系统,以 3 美元/瓦的价格为普通家庭供电,成本约为 15,000 美元,而更大的家庭可能需要 10 千瓦才能满足所有电力购买,成本为 30,000 美元。如果你想要电池,成本加倍(你不需要电池,因为大多数太阳能电池阵列连接到电网,但如果电网瘫痪,你的太阳能电池阵列也会瘫痪,直到它重新开启)。支付你未来几十年所有的电费是一种投资,即使你存了很多钱。
+
+有一些好消息。首先,美国和加拿大都对太阳能实行了 30% 的税收抵免。此项优惠将价格降至约 2 美元/瓦。其次,[我们之前讨论][1] 过你可以获得一本免费书籍 《[捕捉阳光][2]》,它会引导你完成如何设计自己的系统(你仍然需要一个合格的电工和检查来把它连接到电网)。如果你有一点手艺,你可以将剩余成本削减约 50%。这些成本主要用于材料,包括太阳能电池板、布线、电子设备和支架。令人惊讶的是,对于小型太阳能系统(比如你家的太阳能系统)来说,太阳能电池板的成本下降得如此之低,以至于支架(支撑太阳能电池板的机械结构)的成本可能比面板还高!
+
+### 开源再次拯救
+
+将开源开发范式应用于软件可以加快创新速度、改进产品并降低成本。开源硬件也是如此,甚至在光伏支架这个相对不为人知的领域也是如此。几乎所有的商业光伏支架都是由专有的奇特铝型材制成。它们会花很多钱。如果你有一些没有遮挡的后院,有一些开源的支架解决方案可以选择。
+
+### 开源太阳能支架设计
+
+第一个 DIY 太阳能支架设计符合以下标准:(1) 由当地可获得的可再生材料制成,(2) 25 年的使用寿命与太阳能保修相匹配,(3)能够由普通消费者制造,(4)能够符合加拿大结构建筑规范(如果你住在没有雪的地方,这有点矫枉过正,但是,嘿,你可能有其他极端天气需要应对,例如飓风),(5)低成本,(6)它是共享的,使用开源许可证。[开源的木质固定倾斜地面安装双面光伏支架设计][3] 在整个北美都适用。与商业专有支架相比,该支架系统可节省 49% 至 77%。然而,支架设计高度依赖于世界各地不同的木材成本。
+
+在深入研究这个开源设计之前,请检查你当地的木材成本。
+
+![Non-tilting solar rack plans][4]
+
+如果你更喜欢冒险,你可能会考虑第二种允许改变倾斜角度的设计。[第二项研究][5] 的结果表明,具有最佳可变季节性倾斜角的支架系统具有最佳的终身能量产生,与固定倾斜系统相比,产生的能量多 5.2%(或者,如果最大倾斜角限制为 60°,能量多 4.8%)。固定和可变木制支架系统的电力成本相似,仅为专有商业金属货架的 29%。可变倾斜支架提供了最低成本的选择,即使包括适度的劳动力成本,也可能为 [农业光伏][6] 等应用提供特定优势(即,你可以在面板下面种菜,对于莴苣等耐阴作物来说,能惊人地增加产量)。此设计已通过 [具有 CERN-OHL-S-2.0 许可证的 OSHWA][7] 的认证。
+
+![Tilt-adjustable solar racks][8]
+
+所示的 2 个光伏模块架中的每一个大约有 1 千瓦。所以一所房子大约需要五个。这两篇论文都提供了完整的计算和分步建造说明。
+
+正如拥有太阳能系统的任何人都会告诉你的那样,获得负电费是非常有益的。如果你的系统规模能满足你所有的负荷,并且住在该国的净计量地区,就会出现这种情况。请注意,电力公司不会向你付款;额度会一直延续到你在冬天使用它为止。
+
+享受一点开源太阳能带来的乐趣!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/open-source-solar-power-home
+
+作者:[Joshua Pearce][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/joshuapearce
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/21/11/open-source-solar-power
+[2]: https://tocatchthesun.com/
+[3]: https://doi.org/10.3390/designs6030041
+[4]: https://opensource.com/sites/default/files/2022-11/nontilt.png
+[5]: https://doi.org/10.3390/designs6030054
+[6]: https://www.academia.edu/18406368/The_potential_of_agrivoltaic_systems
+[7]: https://certification.oshwa.org/ca000013.html
+[8]: https://opensource.com/sites/default/files/2022-11/tilt.png
+[0]: https://img.linux.net.cn/data/attachment/album/202212/23/094653pn7mn3j22ymwymuw.jpg
\ No newline at end of file
diff --git a/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
deleted file mode 100644
index c73b0ee49b..0000000000
--- a/translated/tech/20221209.0 ⭐️⭐️ Install open source solar power at home.md
+++ /dev/null
@@ -1,61 +0,0 @@
-[#]: subject: "Install open source solar power at home"
-[#]: via: "https://opensource.com/article/22/12/open-source-solar-power-home"
-[#]: author: "Joshua Pearce https://opensource.com/users/joshuapearce"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-在家里安装开源太阳能
-======
-
-你可能已经考虑过用太阳能为您的家供电。将太阳光直接转化为电能的太阳能光伏电池板的成本已大幅下降,因此在任何地方都具有经济意义。这就是为什么大公司投入大量太阳能,甚至电力公司也开始安装大型太阳能发电场的原因,因为它的成本低于过时的化石燃料。像大多数房主一样,你想省钱并节省电费,但你可能对前期费用有点畏缩。为了大致了解成本,以 3 美元/瓦的价格为普通家庭供电的 5kW 系统的成本约为 15,000 美元,而更大的家庭可能需要 10kW 才能抵消所有电力购买,成本为 30,000 美元。如果你想要电池,成本加倍(你不需要电池,因为大多数太阳能电池阵列连接到电网,但如果电网瘫痪,你的太阳能电池阵列也会瘫痪,直到它重新开启)支付你未来几十年所有的电费是一种投资,即使你存了很多钱。
-
-有一些好消息。首先,美国和加拿大都对太阳能实行了 30% 的税收抵免。此项优惠将价格降至约 2 美元/W。其次,[Opensource.com 之前讨论][1]过你可以获得一本免费书籍[_捕捉阳光_][2],它会引导你完成如何设计自己的系统(你仍然需要一个合格的电工和检查来把它连接到电网)。如果你有一点手艺,你可以将剩余成本削减约 50%。这些成本主要用于材料,包括太阳能电池板、布线、电子设备和支架。令人惊讶的是,对于小型太阳能系统(比如你家的太阳能系统)来说,太阳能电池板的成本下降得如此之低,以至于支架(支撑太阳能电池板的机械结构)的成本可能比面板还高!
-
-### 开源再次拯救
-
-将开源开发范式应用于软件可以加快创新速度、改进产品并降低成本。开源硬件也是如此,甚至在光伏支架这个相对不为人知的领域也是如此。几乎所有的商业光伏支架都是由专有的奇特铝型材制成。它们会花很多钱。如果你有一些没有遮挡的后院,你有一些开源的支架解决方案可以选择。
-
-### 开源太阳能支架设计
-
-第一个 DIY 太阳能支架设计符合以下标准:(1) 由当地可获得的可再生材料制成,(2) 25 年的使用寿命与太阳能保修相匹配,(3) 能够由普通消费者制造,(4) 能够 符合加拿大结构建筑规范(如果你住在没有雪的地方,这有点矫枉过正,但是,嘿,你可能有其他极端天气需要应对,例如飓风),(5)低成本,(6)它是共享的 使用开源许可证。[开源的木质固定倾斜地面安装双面光伏支架设计][3]在整个北美都适用。与商业专有支架相比,该支架系统可节省 49% 至 77%。然而,支架设计高度依赖于世界各地不同的木材成本。
-
-在深入研究这个开源设计之前,请检查你当地的木材成本。
-
-![Non-tilting solar rack plans][4]
-
-如果你更喜欢冒险,你可能会考虑第二种允许改变倾斜角度的设计。[第二项研究][5]的结果表明,具有最佳可变季节性倾斜角的支架系统具有最佳的终身能量产生,与固定倾斜系统相比,产生的能量多 5.2%(或者,如果最大倾斜角限制为 60°,能量多 4.8%)。固定和可变木制支架系统的电力成本相似,仅为专有商业金属货架的 29%。可变倾斜支架提供了最低成本的选择,即使包括适度的劳动力成本,也可能为[农业光伏][6]等应用提供特定优势(即,你可以在面板下面种菜,对于莴苣等耐阴作物来说,能惊人地增加产量)。此设计已通过[具有 CERN-OHL-S-2.0 许可证的 OSHWA][7] 的认证。
-
-图片
-
-![Tilt-adjustable solar racks][8]
-
-所示的 2 个 PV 模块架中的每一个大约有 1kW。所以一所房子大约需要五个。这两篇论文都提供了完整的计算和分步建造说明。
-
-正如拥有太阳能系统的任何人都会告诉你的那样,获得负电费是非常有益的。如果你的系统规模能满足你所有的负荷,并且住在该国的净计量地区,就会出现这种情况。请注意,电力公司不会向你付款; 额度会一直延续到你在冬天使用它为止。
-
-享受一点开源太阳能带来的乐趣!
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/open-source-solar-power-home
-
-作者:[Joshua Pearce][a]
-选题:[lkxed][b]
-译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/joshuapearce
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/21/11/open-source-solar-power
-[2]: https://tocatchthesun.com/
-[3]: https://doi.org/10.3390/designs6030041
-[4]: https://opensource.com/sites/default/files/2022-11/nontilt.png
-[5]: https://doi.org/10.3390/designs6030054
-[6]: https://www.academia.edu/18406368/The_potential_of_agrivoltaic_systems
-[7]: https://certification.oshwa.org/ca000013.html
-[8]: https://opensource.com/sites/default/files/2022-11/tilt.png
From 2fef3e44535ea93aadb9b7d318831f822a196d85 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Fri, 23 Dec 2022 10:07:21 +0800
Subject: [PATCH 127/266] RP
@duoluoxiaosheng
https://linux.cn/article-15375-1.html
---
...️ Improve your documentation with JavaScript.md | 32 +++++++++++--------
1 file changed, 19 insertions(+), 13 deletions(-)
rename {translated/tech => published}/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md (83%)
diff --git a/translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md b/published/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
similarity index 83%
rename from translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
rename to published/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
index 66c50a8515..b33db8f545 100644
--- a/translated/tech/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
+++ b/published/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
@@ -3,31 +3,36 @@
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
[#]: collector: "lkxed"
[#]: translator: "duoluoxiaosheng"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15375-1.html"
-
-使用 JavaScript 增强您的文档
+使用 JavaScript 增强你的文档
======
-开源软件项目通常拥有非常多样化的用户人群。有些用户非常擅长使用该系统,并且只需要很少的文档。对于这些实力派的用户。文档只需要提供必要的提示,并且可以包含更多的技术信息,比如说在 shell 中运行的命令行。有些用户可能只是初学者。这些用户需要更多的帮助来设置系统并学习如何使用它。
+![][0]
+
+> 让你的开源项目文档充满活力,从而吸引各种经验水平的用户。
+
+开源软件项目通常拥有非常多样化的用户人群。有些用户非常擅长使用该系统,并且只需要很少的文档。对于这些实力派用户,文档只需要提供必要的提示,并且可以包含更多的技术信息,比如说在 Shell 中运行的命令行。有些用户可能只是初学者。这些用户需要更多的帮助来设置系统并学习如何使用它。
写一个同时适合这两个用户群体的文档是令人生畏的。网站文档需要在 “提供详细的技术信息” 和 “提供更多的概述和指导” 之间寻求一个平衡。这是一个很难找到的平衡。如果你的文档不能同时满足这两个用户人群,那么考虑一下另外一个选择 —— 动态文档。
探索在网页中添加一点 [JavaScript][1] 使用户可以选择自己想看的内容。
-### 构建您的内容
+### 构建你的内容
-你可以把例程添加的你的文档中需要同时满足 专家expert 和 初学者novice 的地方。在这个例程中,你可以使用一个叫做 AwesmeProject 的虚构的音乐播放器。
+你可以把例程添加的你的文档中需要同时满足 专家expert 和 初学者novice 的地方。在这个例程中,我们可以使用一个虚构的名为 AwesmeProject 的音乐播放器。
-你可以用 HTML 编写一个简短的安装文档,通过 HTML 的 类class 功能同时为专家和初学者提供操作指南。例如,你可以用下面的代码来为专家定义一个段落:
+你可以用 HTML 编写一个简短的安装文档,通过 HTML 的 类class 功能同时为专家和初学者提供操作指南。
+
+例如,你可以用下面的代码来为专家定义一个段落:
```
@@ -70,7 +75,7 @@ most Linux distributions. Check your graphical package manager and search for Aw
![Image of html in black text.][2]
-我们可在文档中添加一些简单的样式来为 读者reader,专家expert 或者 初学者novice 突出任何元素。为了使不同的文本更容易区分,让我们把读者类的背景颜色设置成米白色,专家类的字体颜色设置为深红色,初学者的字体颜色则设置为深蓝色。
+我们可在文档中添加一些简单的样式来为 读者reader、专家expert 或者 初学者novice 突出任何元素。为了使不同的文本更容易区分,让我们把读者类的背景颜色设置成米白色,专家类的字体颜色设置为深红色,初学者的字体颜色则设置为深蓝色。
```
@@ -104,7 +109,7 @@ color: darkblue;
How to install the software
```
-当你在浏览器中查看这个网页时,这些样式有助于这两个段落的突出。安装指导的所有段落都有一个米白色背景,因为他们都有 读者reader 这个类。第一个段落的字体是深红色的,这是由 专家expert 这个类定义的。第二个段落的字体是深蓝色的,则是由 初学者novice 这个类定义的。
+当你在浏览器中查看这个网页时,这些样式有助于突出这两个段落。安装指导的所有段落都有一个米白色背景,因为他们都有 读者reader 这个类。第一个段落的字体是深红色的,这是由 专家expert 这个类定义的。第二个段落的字体是深蓝色的,则是由 初学者novice 这个类定义的。
![Image of html in red and black text.][3]
@@ -223,7 +228,7 @@ via: https://opensource.com/article/22/12/dynamic-documentation-javascript
作者:[Jim Hall][a]
选题:[lkxed][b]
译者:[duoluoxiaosheng](https://github.com/duoluoxiaosehng)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -235,3 +240,4 @@ via: https://opensource.com/article/22/12/dynamic-documentation-javascript
[4]: https://opensource.com/sites/default/files/2022-12/publishone.novicexpert.png
[5]: https://opensource.com/sites/default/files/2022-12/publishone.blue_.png
[6]: https://opensource.com/sites/default/files/2022-12/publishone.red_.png
+[0]: https://img.linux.net.cn/data/attachment/album/202212/23/100615quu385qf83bu3p35.jpg
\ No newline at end of file
From 33badf157254835c0f18ef4051f8eb9b7eed6ac5 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 24 Dec 2022 15:23:52 +0800
Subject: [PATCH 128/266] RP
@MjSeven
https://linux.cn/article-15377-1.html
---
... How To Securely Transfer Files With SCP In Linux.md | 149 ++++++++----------
1 file changed, 70 insertions(+), 79 deletions(-)
rename {translated/tech => published}/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md (69%)
diff --git a/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
similarity index 69%
rename from translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
rename to published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
index b450a31ef7..ca5f6ac817 100644
--- a/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
+++ b/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
@@ -3,18 +3,20 @@
[#]: author: "sk https://ostechnix.com/author/sk/"
[#]: collector: "lkxed"
[#]: translator: "MjSeven"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15377-1.html"
如何在 Linux 中使用 SCP 安全地传输文件
======
+![][0]
+
在网络上文件传输可以通过各种不同的方式和协议来完成。**远程复制文件**最常用的协议是 **Rsync**、**SCP** 和 **SFTP**。在本文中,我们将了解**什么是 SCP** 以及如何在 Linux 和类 Unix 操作系统中**使用 SCP 在本地和远程计算机之间安全地传输文件**。
-### 什么是 SCP?
+### 什么是 SCP?
-SCP,代表**安全复制**,它是一个命令行程序,在 Linux 和类 Unix 操作系统中以安全的方式在本地和远程系统之间,或在两个远程系统之间复制文件和目录。
+SCP,代表 安全复制Secure Copy,它是一个命令行程序,在 Linux 和类 Unix 操作系统中以安全的方式在本地和远程系统之间,或在两个远程系统之间复制文件和目录。
使用 `scp` 命令,你可以安全地复制文件或目录:
@@ -22,7 +24,7 @@ SCP,代表**安全复制**,它是一个命令行程序,在 Linux 和类 Un
- 从远程系统到本地
- 在两个远程系统之间
-使用 scp 命令传输数据时,文件和目录都是加密的。因此,即使网络被破坏,犯罪者也无法获得任何有意义的数据。
+使用 `scp` 命令传输数据时,文件和目录都是加密的。因此,即使网络被破坏,作恶者也无法获得任何有意义的数据。
SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文件。几乎所有现代 Linux 和 Unix 发行版都预装了 OpenSSH,所以不必费心安装它。
@@ -30,7 +32,7 @@ SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文
根据 openSSH 开发人员的**官方公告**:
-> **scp 协议已经过时了**,它不灵活且不易修复。我们建议使用更现代的协议,如 sftp 和 rsync 来代替。
+> **scp 协议已经过时了**,它不灵活且不易修复。我们建议使用更现代的协议,如 `sftp` 和 `rsync` 来代替。
>
> 参考 - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1]
@@ -38,8 +40,8 @@ SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文
另外,SCP 的工作原理与 `cp` 命令完全相同,而 `rsync` 则会判断源目录是否有**结尾斜杠**而出现不同的行为。看一看下面的命令:
-- `rsync source destination/` - 将 source 目录复制到 destination 文件夹内。
-- `rsync source/ destination/` - 将 source 目录的内容复制到 destination 文件夹中。
+- `rsync source destination/` - 将 `source` 目录复制到 `destination` 文件夹内。
+- `rsync source/ destination/` - 将 `source` 目录的内容复制到 `destination` 文件夹中。
所以,你必须反复检查是否在路径中添加了斜杠。
@@ -49,7 +51,7 @@ SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文
SCP 的通用语法如下:
-```bash
+```
scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target
```
@@ -91,9 +93,9 @@ scp -r User@RemoteHost:RemoteDirectoryPath DestinationDirectory
scp User@RemoteHost1:RemoteFile1 User@RemoteHost2:RemotePath
```
-注意,当你在两个远程系统之间复制文件时,流量不会通过本地系统。操作直接在两个远程系统之间进行。但是,你可以使用 `-3` 参数传递运行 scp 命令的系统的流量。
+注意,当你在两个远程系统之间复制文件时,流量不会通过本地系统。操作直接在两个远程系统之间进行。但是,你可以使用 `-3` 参数让流量经过你运行 `scp` 命令的系统。
-本地将目录从一个远程系统复制到另一个远程系统:
+从你的本地系统将一个远程系统的目录复制到另一个远程系统:
```
scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath
@@ -103,17 +105,17 @@ scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath
SCP 命令最常用的参数有:
-- **`-C`** : 启用压缩。C 代表压缩。使用此参数时,数据传输速度会更快,因为数据是压缩的。SCP 将自动在源系统上压缩,并在目标系统上解压缩。
-- **`-c `** : c 代表加密。默认情况下,SCP 使用 **AES-128** 加密方法对数据进行加密。你可以使用 `-c` 参数更改加密方法。
-- **`-i `** : i 代表身份文件或私钥。如你所知,SSH 中使用基于密码或密钥的身份验证。如果希望在传输文件时使用基于密钥的身份验证,可以使用 -i 参数指定身份文件或私钥。
-- **`-l limit`** : l 代表极限带宽。通过此参数,可以设置传输数据的最大带宽。它的单位是 **`Kbit/s`**。
-- **`-F `** : 有时你可能需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器,这种情况下,你可以使用 `-F` 参数使用不同的 `ssh_config` 文件。
-- **`-P port`** - P 代表端口。注意,这是大写的 P。默认情况下,SSH 使用端口 22。但出于安全原因,你可能已经更改了目标主机中的端口号。这种情况下,你应该使用 `-P` 参数显示指定新端口号。
-- **`-p`** : 如果希望保留原始文件的修改时间、访问时间和模式,你需要使用 -p 参数。注意是小写 p。
-- **`-r`** : 递归复制整个目录。
-- **`-B`** : B 代表批处理模式。它用于在传输文件时选择批处理模式。可以防止询问密码。
-- **`-S program`** : 用于加密连接的程序名称。
-- **`-v`** : v 代表详细。当使用 `-v` 参数时,命令将会在终端屏幕上打印进度。你会看到文件传输时到底发生了什么。它在调试连接、身份验证和配置问题时非常有用。
+- `-C`:启用压缩。`C` 代表 压缩Compression。使用此参数时,数据传输速度会更快,因为数据是压缩的。SCP 将自动在源系统上压缩,并在目标系统上解压缩。
+- `-c `:`c` 代表 加密Cipher。默认情况下,SCP 使用 **AES-128** 加密方法对数据进行加密。你可以使用 `-c` 参数更改加密方法。
+- `-i `:`i` 代表 身份Identity 文件或私钥。如你所知,SSH 中使用基于密码或密钥的身份验证。如果希望在传输文件时使用基于密钥的身份验证,可以使用 `-i` 参数指定身份文件或私钥。
+- `-l limit`:`l` 代表 限制Limit 带宽。通过此参数,可以设置传输数据的最大带宽。它的单位是 `Kbit/s`。
+- `-F `:有时你可能需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器,这种情况下,你可以使用 `-F` 参数使用不同的 `ssh_config` 文件File。
+- `-P port`:`P` 代表 端口Port。注意,这是大写的 `P`。默认情况下,SSH 使用端口 22。但出于安全原因,你可能已经更改了目标主机中的端口号。这种情况下,你应该使用 `-P` 参数显示指定新端口号。
+- `-p`:如果希望 保留Preserve 原始文件的修改时间、访问时间和模式,你需要使用 `-p` 参数。注意是小写 `p`。
+- `-r`:递归Recursively 复制整个目录。
+- `-B`:`B` 代表 批处理Batch 模式。它用于在传输文件时选择批处理模式。可以防止询问密码。
+- `-S program`:用于加密连接的 程序Program 名称。
+- `-v`:`v` 代表 详细Verbose。当使用 `-v` 参数时,命令将会在终端屏幕上打印进度。你会看到文件传输时到底发生了什么。它在调试连接、身份验证和配置问题时非常有用。
SCP 有很多参数,你可以查看它的手册页来了解其他参数。让我们看一些**有用的 scp 命令示例**。
@@ -122,14 +124,14 @@ SCP 有很多参数,你可以查看它的手册页来了解其他参数。让
- `scp` 命令依赖于 `ssh` 进行安全的文件传输。因此,你必须有一个 **ssh 密钥**或**密码**才能向远程系统进行身份验证。
- 为了能传输文件,你必须对**源文件有读权限**,对**目标位置有写权限**。
- `scp` 命令在写入前不会检查目标位置。目标位置中具有相同名称的任何文件都将被**覆盖而不通知**。
-- 为了能够区分本地和远程位置,使用**冒号**(`:`)。
+- 为了能够区分本地和远程位置,使用**冒号**(`:`)。
- 传输大文件时,建议在 **[Screen][3]** 或 **[Tmux][4]** 会话内启动任务。
### 在 Linux 中使用 SCP 传输文件
正如我所说,我们可以使用 `scp` 命令将文件或目录从本地复制到远程系统,反之亦然,或者在两台远程系统之间复制文件或目录。
-### 1. 使用 SCP 从本地系统复制文件到远程系统
+#### 1. 使用 SCP 从本地系统复制文件到远程系统
使用 `scp` 命令将文件从本地复制到远程系统,运行:
@@ -137,7 +139,7 @@ SCP 有很多参数,你可以查看它的手册页来了解其他参数。让
$ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/
```
-**示例输出:**
+示例输出:
```
ostechnix@192.168.1.40's password:
@@ -146,10 +148,10 @@ File1.txt 100% 104 814.0KB
让我们分析一下上面的命令,看看每个参数都做了什么。
-- **`File1.txt`** - 源文件
-- **`ostechnix`** - 远程系统的用户名
-- **`192.168.1.40`** - 远程系统的 IP 地址
-- **`/home/ostechnix/`** - 远程系统中的目标目录。这是我们想要传输源文件的绝对路径,如 `File.txt`。
+- `File1.txt` - 源文件
+- `ostechnix` - 远程系统的用户名
+- `192.168.1.40` - 远程系统的 IP 地址
+- `/home/ostechnix/` - 远程系统中的目标目录。这是我们想要传输源文件的绝对路径,如 `File.txt`。
你还可以修改目标文件的名称。下面的命令将 `File1.txt` 传输到目的地,保存为 `myfile.txt`。
@@ -159,17 +161,15 @@ $ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/myfile.txt
![将文件从本地复制到远程系统][5]
-将文件从本地复制到远程系统
-
#### 2. 使用 SCP 从本地系统复制多个文件到远程系统
使用 `scp` 命令将多个文件从本地系统传输到远程系统,运行:
-```bash
+```
$ scp File1.txt File2.txt ostechnix@192.168.1.40:/home/ostechnix/
```
-**示例输出:**
+示例输出:
```
ostechnix@192.168.1.40's password:
@@ -179,13 +179,11 @@ File2.txt 100% 496 6.3MB
![从本地复制多个文件到远程系统][6]
-从本地复制多个文件到远程系统
-
这里:
-- **`File1.txt`** 和 **`File2.txt`** - 源文件名
-- **`ostechnix@192.168.1.40`** - 远程系统的用户名和 IP 地址
-- **`/home/ostechnix`** - 目标文件的路径
+- `File1.txt` 和 `File2.txt` - 源文件名
+- `ostechnix@192.168.1.40` - 远程系统的用户名和 IP 地址
+- `/home/ostechnix` - 目标文件的路径
如果文件具有相同的扩展名,你可以使用以下替代命令来实现相同的目标。
@@ -201,24 +199,22 @@ $ scp *.txt ostechnix@192.168.1.40:/home/ostechnix/
#### 3. 使用 SCP 从本地到远程系统递归复制目录
-递归地将整个目录(包括子目录及其内容)从本地复制到远程系统,使用 **`-r`** 参数。
+递归地将整个目录(包括子目录及其内容)从本地复制到远程系统,使用 `-r` 参数。
-```bash
+```
$ scp -r Documents/ ostechnix@192.168.1.40:/home/ostechnix/
```
![从本地复制目录到远程系统][7]
-从本地复制目录到远程系统
-
-上述命令将整个 **`Documents`** 目录包括其内容复制到目标系统。
+上述命令将整个 `Documents` 目录包括其内容复制到目标系统。
其中,
-- `-r` : 递归复制文件和目录,包括子目录及其内容
-- `Documents` : 源目录名称
-- **`ostechnix@192.168.1.40`** : 远程系统的用户名和 IP 地址
-- **`/home/ostechnix`** : 目标目录的路径
+- `-r` - 递归复制文件和目录,包括子目录及其内容
+- `Documents` - 源目录名称
+- `ostechnix@192.168.1.40` - 远程系统的用户名和 IP 地址
+- `/home/ostechnix` - 目标目录的路径
#### 4. 用 SCP 将文件从远程系统传输到本地
@@ -232,14 +228,12 @@ $ scp ostechnix@192.168.1.40:/home/ostechnix/File1.txt Downloads/
其中
-- **`ostechnix@192.168.1.40`** : 远程系统的用户名和 IP 地址
-- `/home/ostechnix/File.txt` : 远程系统文件的绝对路径
+- `ostechnix@192.168.1.40` - 远程系统的用户名和 IP 地址
+- `/home/ostechnix/File.txt` - 远程系统文件的绝对路径
- `Downloads` - 本地保存复制文件的位置
![从远程系统传输文件到本地][8]
-从远程系统传输文件到本地
-
#### 5. 使用 SCP 将多个文件从远程系统传输到本地
将多个文件从远程系统复制到本地,在**花括号内**注明文件的绝对路径,如下所示:
@@ -250,21 +244,19 @@ $ scp ostechnix@192.168.1.40:/home/ostechnix/\{File1.txt,File2.txt\} Downloads/
![将多个文件从远程系统传输到本地][9]
-将多个文件从远程系统传输到本地
-
上述命令将从远程系统的 `/home/ostechnix/` 目录中复制 `File1.txt` 和 `File2.txt` 到本地的 `Downloads` 目录中。
注意,**花括号内的逗号后面没有空格**。
#### 6. 从远程系统递归复制目录到本地
-使用 `scp` 从远程系统递归复制整个目录(包括子目录及其内容)到本地系统,使用 **`-r`** 参数。
+使用 `scp` 从远程系统递归复制整个目录(包括子目录及其内容)到本地系统,使用 `-r` 参数。
```
$ scp -r ostechnix@192.168.1.40:/home/ostechnix/Documents Downloads/
```
-上述命令将从远程系统将整个 **`Documents`** 目录复制到本地的 **`Downloads`** 目录。
+上述命令将从远程系统将整个 `Documents` 目录复制到本地的 `Downloads` 目录。
#### 7. 使用 SCP 在两台远程计算机之间复制文件
@@ -280,12 +272,12 @@ $ scp senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kuma
- `senthil@192.168.1.40` - 文件源端远程系统的用户名和 IP 地址
- `/home/senthil/File1.txt` - 复制的文件名及其位置
-- **`kumar@192.168.1.20`** - 复制文件到目标端的用户名和 IP 地址
+- `kumar@192.168.1.20` - 复制文件到目标端的用户名和 IP 地址
- `/home/kumar` - 在目标端上保存复制文件的位置
上述命令将从远程主机 `192.168.1.40` 复制 `/home/senthil/File1.txt` 到 `192.168.1.20` 上的 `/home/kumar/` 目录。
-在这种方法中,数据将直接从一个远程系统传输到另一个远程系统。如果你想通过本地机器路由流量,使用 **`-3`** 参数,如下所示:
+在这种方法中,数据将直接从一个远程系统传输到另一个远程系统。如果你想通过本地机器路由流量,使用 `-3` 参数,如下所示:
```
$ scp -3 senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/
@@ -293,7 +285,7 @@ $ scp -3 senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/k
#### 8. 使用 SCP 复制文件时启用压缩
-到目前为止,我们在没有压缩的情况下传输了文件。现在我们将使用 **`-C`** 参数在传输文件时启用压缩。
+到目前为止,我们在没有压缩的情况下传输了文件。现在我们将使用 `-C` 参数在传输文件时启用压缩。
```
$ scp -C File1.txt ostechnix@192.168.1.40:/home/ostechnix/
@@ -305,7 +297,7 @@ $ scp -C File1.txt ostechnix@192.168.1.40:/home/ostechnix/
#### 9. 使用 SCP 传输文件时限制带宽
-我们可以使用 `-l` 参数限制带宽。注意,最大带宽单位为 Kbits/s。1 字节 = 8 bit。因此,如果你想将带宽限制在 200KB/s,`-l` 的值将是 **1600**(200*8)。
+我们可以使用 `-l` 参数限制带宽。注意,最大带宽单位为 Kbits/s。1 Byte = 8 bit。因此,如果你想将带宽限制在 200KB/s,`-l` 的值将是 **1600**(200*8)。
```
$ scp -l 1600 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
@@ -315,7 +307,7 @@ $ scp -l 1600 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
#### 10. 使用 SCP 复制文件时使用不同端口
-作为系统管理员,出于安全原因,你可能在远程服务器上[**更改了 SSH 协议的默认端口**][10]。这种情况下,你可以在传输文件时使用 `-P` 参数指定端口号。注意:**大写的 P**。
+作为系统管理员,出于安全原因,你可能在远程服务器上 [更改了 SSH 协议的默认端口][10]。这种情况下,你可以在传输文件时使用 `-P` 参数指定端口号。注意:大写的 `P`。
```
$ scp -P 2022 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
@@ -323,7 +315,7 @@ $ scp -P 2022 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
#### 11. 使用 SCP 复制文件时使用不同的加密方法
-默认情况下,SCP 使用 **`AES-128`** 对文件进行加密。如果你想使用不同的加密方法,使用 **`c`** 参数。
+默认情况下,SCP 使用 `AES-128` 对文件进行加密。如果你想使用不同的加密方法,使用 `c` 参数。
例如,如果你想使用 **3des-cbc** 加密方法,命令如下所示:
@@ -337,7 +329,7 @@ $ scp -c 3des-cbc File1.txt ostechnix@192.168.1.40:/home/ostechnix/
$ ssh -Q cipher localhost | paste -d, -s -
```
-**示例输出:**
+示例输出:
```
3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
@@ -345,7 +337,7 @@ $ ssh -Q cipher localhost | paste -d, -s -
#### 12. 在详细模式下使用 SCP 复制文件
-如果你想知道使用 scp 复制文件时幕后发生了什么,你可以使用 **`-v`** 参数。使用详细模式传输文件时,终端上会显示执行 SCP 命令执行的每一步过程。这在故障排除时很方便。
+如果你想知道使用 `scp` 复制文件时幕后发生了什么,你可以使用 `-v` 参数。使用详细模式传输文件时,终端上会显示执行 `scp` 命令执行的每一步过程。这在故障排除时很方便。
```
$ scp -v File1.txt ostechnix@192.168.1.40:/home/ostechnix/
@@ -353,13 +345,11 @@ $ scp -v File1.txt ostechnix@192.168.1.40:/home/ostechnix/
在详细模式下发送文件时,你将看到大量输出,如下所示:
-![在 Verbose 模式下使用 SCP 复制文件][11]
-
-在详细模式下使用 SCP 复制文件
+![在详细模式下使用 SCP 复制文件][11]
#### 13. 在安静模式下使用 SCP 传输文件
-我们可以使用 **`-q`** 参数在安静模式下传输文件。在安静模式下共享文件时,不会在输出中显示进度、警告或诊断信息。
+我们可以使用 `-q` 参数在安静模式下传输文件。在安静模式下共享文件时,不会在输出中显示进度、警告或诊断信息。
```
$ scp -q File1.txt ostechnix@192.168.1.40:/home/ostechnix/
@@ -367,7 +357,7 @@ $ scp -q File1.txt ostechnix@192.168.1.40:/home/ostechnix/
#### 14. 使用 SCP 传输文件时保留文件属性
-使用 **`-p`** 参数可以保留文件修改时间、访问时间和模式等文件属性。注意,这是**小写的 p**。
+使用 `-p` 参数可以保留文件修改时间、访问时间和模式等文件属性。注意,这是**小写的 p**。
```
$ scp -p File1.txt ostechnix@192.168.1.40:/home/ostechnix/
@@ -377,7 +367,7 @@ $ scp -p File1.txt ostechnix@192.168.1.40:/home/ostechnix/
SSH 同时支持基于密码和密钥的身份验证。密钥是 Linux 环境中使用最广泛的身份验证方法。
-如果你想在传输文件时使用基于密钥的身份验证,使用 **`-i`** 参数指定身份文件或私钥。
+如果你想在传输文件时使用基于密钥的身份验证,使用 `-i` 参数指定身份文件或私钥。
```
$ scp -i my_private_key.pem File1.txt ostechnix@192.168.1.40:/home/ostechnix/
@@ -385,7 +375,7 @@ $ scp -i my_private_key.pem File1.txt ostechnix@192.168.1.40:/home/ostechnix/
#### 16. 使用不同的 ssh 配置文件
-在某些情况下,你需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器。这在情况下,你可以配合 **`-F`** 参数使用不同的 `ssh_config` 文件。
+在某些情况下,你需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器。这在情况下,你可以配合 `-F` 参数使用不同的 `ssh_config` 文件。
```
$ scp -F /home/ostechnix/my_ssh_config File1.txt ostechnix@192.168.1.40:/home/ostechnix/
@@ -393,7 +383,7 @@ $ scp -F /home/ostechnix/my_ssh_config File1.txt ostechnix@192.168.1.40:/home/os
#### 17. 使用 IPv4 或 IPv6 复制文件
-在复制文件时,我们可以强制 SCP 只使用 IPv4 或 IPv6 地址。IPv4 网络添加 **`-4`** 参数,IPv6 网络添加 **`-6`** 参数可以实现这一点。
+在复制文件时,我们可以强制 SCP 只使用 IPv4 或 IPv6 地址。IPv4 网络添加 `-4` 参数,IPv6 网络添加 `-6` 参数可以实现这一点。
```
$ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
@@ -403,7 +393,7 @@ $ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
#### 问题 1:什么是 SCP?
-**回答:** SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。
+**回答:SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。
#### 问题 2: 如何使用 SCP 将文件从本地复制到远程计算机?
@@ -461,7 +451,7 @@ scp *.txt User@RemoteHost:/some/remote/directory
#### 问题 6:可以压缩文件吗?
-当然。使用 **`-C`** 压缩文件。文件会在源端压缩,在目标端自动解压缩。
+当然。使用 `-C` 压缩文件。文件会在源端压缩,在目标端自动解压缩。
```
scp -C /some/large/file User@RemoteHost:/some/remote/directory
@@ -469,7 +459,7 @@ scp -C /some/large/file User@RemoteHost:/some/remote/directory
#### 问题 7:可以保留文件属性吗?
-保留原始文件的修改时间、访问时间和模式等文件属性,使用 **`-p`** 参数。
+保留原始文件的修改时间、访问时间和模式等文件属性,使用 `-p` 参数。
```
scp -p file.txt User@RemoteHost:/some/remote/directory
@@ -477,7 +467,7 @@ scp -p file.txt User@RemoteHost:/some/remote/directory
#### 问题 8: 可以使用其他端口吗?
-当然。SCP 配合 **`-P`** 参数允许你使用其他端口。
+当然。SCP 配合 `-P` 参数允许你使用其他端口。
```
scp -P 2022 file.txt User@RemoteHost:/some/remote/directory
@@ -485,7 +475,7 @@ scp -P 2022 file.txt User@RemoteHost:/some/remote/directory
#### 问题 9: 可以使用不同的加密方法吗?
-当然。使用 **`-c`** 参数。
+当然。使用 `-c` 参数。
```
scp -c 3des-cbc User@RemoteHost:/some/remote/directory
@@ -505,7 +495,7 @@ ssh -Q cipher localhost | paste -d, -s -
#### 问题 12:可以从 Windows 系统传输文件到 Linux 吗?
-当然。使用 **PSCP** 程序将文件从 windows 传输到 Linux 平台,你也可以使用 **WinSCP**。
+当然。使用 `PSCP` 程序将文件从 windows 传输到 Linux 平台,你也可以使用 `WinSCP`。
### 总结
@@ -520,7 +510,7 @@ via: https://ostechnix.com/securely-transfer-files-with-scp-in-linux/
作者:[sk][a]
选题:[lkxed][b]
译者:[MjSeven](https://github.com/MjSeven)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -537,3 +527,4 @@ via: https://ostechnix.com/securely-transfer-files-with-scp-in-linux/
[9]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Multiple-Files-from-Remote-System-to-Local-System.png
[10]: https://ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/
[11]: https://ostechnix.com/wp-content/uploads/2022/11/Copying-Files-with-SCP-in-Verbose-Mode.png
+[0]: https://img.linux.net.cn/data/attachment/album/202212/24/152224vy4glx9x39mtth9b.jpg
\ No newline at end of file
From 106ea7e63a340ff135eb3192121afdfdafd1bb8a Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 24 Dec 2022 15:30:55 +0800
Subject: [PATCH 129/266] R
---
...6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
index ca5f6ac817..bc00a197f5 100644
--- a/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
+++ b/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
@@ -393,7 +393,7 @@ $ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/
#### 问题 1:什么是 SCP?
-**回答:SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。
+SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。
#### 问题 2: 如何使用 SCP 将文件从本地复制到远程计算机?
From 3e58f67620e6e7b62d0746d8606ce66a1ee8ee51 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 24 Dec 2022 16:15:50 +0800
Subject: [PATCH 130/266] RP
@geekpi
https://linux.cn/article-15378-1.html
---
...your Linux PC with the PCManFM file manager.md | 25 +++++++++++--------
1 file changed, 15 insertions(+), 10 deletions(-)
rename {translated/tech => published}/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md (65%)
diff --git a/translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md b/published/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
similarity index 65%
rename from translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
rename to published/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
index 760c9511e0..1c0ce3b0b9 100644
--- a/translated/tech/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
+++ b/published/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
@@ -3,13 +3,17 @@
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15378-1.html"
-使用 PCManFM 文件管理器简化你的 Linux PC
+使用 PCManFM 文件管理器让你的 Linux PC 轻装上阵
======
+![][0]
+
+> PCMan 文件管理器是一个让旧电脑感觉更有效率的好选择。
+
PCMan 文件管理器,或简称 PCManFM,是一个功能齐全的快速轻量级文件管理器。它是为 [LXDE][1] 桌面环境开发的,但它是一个独立的应用,可以与你选择的桌面或窗口管理器一起使用。
### 安装 PCManFM
@@ -28,9 +32,9 @@ $ sudo apt install pcmanfm
![Image of the PCMan file manager.][2]
-PCManFM 不必替换你的桌面文件管理器,但某些发行版假定当你安装“第三方”文件管理器时,你希望它优先于默认设置。根据你使用的桌面,有不同的方法来设置默认文件管理器。通常,它位于**默认应用**下的**系统设置**中。
+不必用 PCManFM 替换你的桌面文件管理器,但某些发行版认为当你安装“第三方”文件管理器时,你会希望它优先于默认的文件管理器。根据你使用的桌面,有不同的方法来设置默认文件管理器。通常,它位于 系统设置System Settings 下的 默认应用Default Applications 中。
-如果你的桌面环境或窗口管理器没有选择默认应用的界面,你可以在 `~/.local/share/applications/mimeapps.list` 文件中设置你的首选项。要将文件管理器指定为默认,请将其放在 `[Default Applications]` 部分的顶部,首先指定文件类型,然后指定你像用于打开的应用文件的名称(在 `/usr/share/applications` 下):
+如果你的桌面环境或窗口管理器没有选择默认应用的界面,你可以在 `~/.local/share/applications/mimeapps.list` 文件中设置你的首选项。要将一个文件管理器指定为默认的,请将其放在 `[Default Applications]` 部分的顶部,首先指定文件类型,然后指定你想用于打开的应用文件的名称(在 `/usr/share/applications` 下):
```
inode/directory=myfilemanager.desktop;
@@ -38,9 +42,9 @@ inode/directory=myfilemanager.desktop;
### PCManFM
-如果您是 GNOME 2 或 Mate 项目的 [Caja 文件管理器][3]的粉丝,那么 PCManFM 是一个不错的选择。PCManFM 在设计上很像 Caja,但它不像 Caja 那样绑定到桌面,所以它甚至可以在最新的 GNOME 桌面上使用。
+如果你是 GNOME 2 或 Mate 项目的 [Caja 文件管理器][3] 的粉丝,那么 PCManFM 是一个不错的选择。PCManFM 在设计上很像 Caja,但它不像 Caja 那样绑定到桌面,所以它甚至可以在最新的 GNOME 桌面上使用。
-PCManFM 的默认布局在窗口顶部附近有一个有用的工具栏,一个提供对常用目录和驱动器的快速访问的侧面板,以及一个包含有关你当前选择的详细信息的状态栏。你可以使用**视图**菜单隐藏或显示这些元素中的任何一个。
+PCManFM 的默认布局在窗口顶部附近有一个有用的工具栏,一个提供对常用目录和驱动器的快速访问的侧面板,以及一个包含有关你当前选择的详细信息的状态栏。你可以使用 视图View 菜单隐藏或显示这些元素中的任何一个。
### 选项卡和面板
@@ -56,7 +60,7 @@ PCManFM 界面的另一个不错的功能是它能够将一个窗口分成两个
### 使用 PCMan 进行文件管理
-PCManFM 是一款很棒的小型文件管理器,具有你日常所需的所有基本功能。它是你可能会觉得过于复杂的文件管理器的自然替代品,也是[旧计算机][5]上的一个很好的选择,这些电脑可能对不断绘制缩略图、刷新和生成动画的文件管理器感到挣扎。PCMan 专注于文件管理器的核心任务:管理文件。在你的 Linux 电脑上试试吧。
+PCManFM 是一款很棒的小型文件管理器,具有你日常所需的所有基本功能。它是你可能会觉得过于复杂的文件管理器的自然替代品,也是 [老旧计算机][5] 上的一个很好的选择,这些电脑可能对不断绘制缩略图、刷新和生成动画的文件管理器举步维艰。PCMan 专注于文件管理器的核心任务:管理文件。在你的 Linux 电脑上试试吧。
--------------------------------------------------------------------------------
@@ -65,7 +69,7 @@ via: https://opensource.com/article/22/12/linux-file-manager-pcmanfm
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -76,3 +80,4 @@ via: https://opensource.com/article/22/12/linux-file-manager-pcmanfm
[3]: https://opensource.com/article/22/12/linux-file-manager-caja
[4]: https://opensource.com/sites/default/files/2022-10/%E2%80%8BDual.panel_.in%20PCManFM.png
[5]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity
+[0]: https://img.linux.net.cn/data/attachment/album/202212/24/161333mssnim76ssugskie.jpg
\ No newline at end of file
From 6f08d9239d6f447c26953e1a5e0cc49c61dd9aaa Mon Sep 17 00:00:00 2001
From: wangcharley
Date: Sat, 24 Dec 2022 20:16:52 +0800
Subject: [PATCH 131/266] =?UTF-8?q?=E7=94=B3=E9=A2=86=E5=8E=9F=E6=96=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../20221221.3 ⭐️⭐️ Open source solutions for EV charging.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
index 249f89ff02..9521dc5b64 100644
--- a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
+++ b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/12/open-source-ev-charging"
[#]: author: "Joshua Pearce https://opensource.com/users/jmpearce"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "duoluoxiaosheng"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
@@ -52,7 +52,7 @@ via: https://opensource.com/article/22/12/open-source-ev-charging
作者:[Joshua Pearce][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
+译者:[duoluoxiaosheng](https://github.com/duoluoxiaosheng)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From 17ebde2bd7f73ee541d022d49ad11e591faec7ff Mon Sep 17 00:00:00 2001
From: wangcharley
Date: Sat, 24 Dec 2022 21:14:33 +0800
Subject: [PATCH 132/266] 202212242114
---
.../20221221.3 ⭐️⭐️ Open source solutions for EV charging.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
index 9521dc5b64..45bf829d5e 100644
--- a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
+++ b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
@@ -12,6 +12,8 @@ Open source solutions for EV charging
Maybe you hate pumping gas in the cold (or heat), or you care about the environment. Maybe the latest gas prices and general inflation has you thinking more about stretching your money. Perhaps you simply think electric vehicles (EVs) look cool. No matter the reason, you're excited about your next vehicle being an EV and you're not alone! The EV market share is set to [expand to 30% by 2040][1]. The [US government provides a handy comparison tool][2] to show that the cost of ownership of an EV easily beats owning and operating fossil fuel vehicles. Despite this, EV charging costs can still hit you hard in your wallet.
+你讨厌在寒冷或者酷热的时候加油,你关心环境问题。最新的油价和通货膨胀让你更多考虑挣钱的问题
+
One of the most elegant ways to solve cost problems in general is to apply open source principles to accelerate innovation. Fortunately for you, this has been done in the EV charging area to find a way to get low-cost electricity and low-cost chargers.
To control the costs of EV charging, first you need low-cost electricity. In the old days, that would mean going from oil to coal, which is not a step up. Today, as it turns out, [solar photovoltaic (PV)][3] devices that convert sunlight directly into electricity normally provide the lowest-cost electricity. Coal companies are going bankrupt because they can no longer compete with clean solar power. This is also why [solar power is seeing explosive growth all over the world][4]. Many homeowners are putting [solar panels on their roofs][5] or on ground mounts in the backyard to cover all of their home’s electric needs. But how can you charge your EV with solar energy if you have limited roof area or a small backyard?
From e8aa3554bfa93af67c92b52244c45f393f3e65a0 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 25 Dec 2022 11:41:50 +0800
Subject: [PATCH 133/266] =?UTF-8?q?=E8=BF=87=E6=9C=9F=E6=96=B0=E9=97=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... Unfortunately, Komodo IDE is now Open Source!.md | 89 -------------------
...2.12 (S15Pup) Arrives Based on Slackware 15.md | 82 -----------------
... Open Source Marking the End of the Project.md | 73 ---------------
3 files changed, 244 deletions(-)
delete mode 100644 sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md
delete mode 100644 sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md
delete mode 100644 sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md
diff --git a/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md b/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md
deleted file mode 100644
index 96da969f33..0000000000
--- a/sources/news/20221212.3 ⭐️⭐️ Unfortunately, Komodo IDE is now Open Source!.md
+++ /dev/null
@@ -1,89 +0,0 @@
-[#]: subject: "Unfortunately, Komodo IDE is now Open Source!"
-[#]: via: "https://news.itsfoss.com/komodo-ide-open-source/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Unfortunately, Komodo IDE is now Open Source!
-======
-
-Komodo IDE is now open-source and not at a great time. Curious to take a peek at the source code? Learn more here.
-
-![Unfortunately, Komodo IDE is now Open Source!][1]
-
-Komodo IDE is a popular integrated development environment for dynamic programming languages that was introduced back in May 2000.
-
-Used by many programmers around the world, it has proved to be quite helpful over the years.
-
-Unfortunately, all good things end.
-
-This is the case with Komodo IDE, it has now been retired, and all development has ceased.
-
-But there's a silver lining to this 😃
-
-The company behind it, called '[ActiveState][2]', has now made the code openly available for anyone to use and modify.
-
-> 💡 Similar to "Komodo Edit" application, which was made open-source in 2008.
-
-They have cited numerous factors for their decision, which I will explain.
-
-### So, Why Open-Source it Now?
-
-![komodo ide][3]
-
-ActiveState felt that it was becoming difficult to maintain Komodo IDE without encountering various compatibility issues on newer systems.
-
-**What were the contributing factors?:** There were many factors that led to this. Take, for instance, the frameworks on which Komodo was built, '_XUL and XULRunner_'; they were retired by Mozilla back in 2016.
-
-Then there was the amount of effort needed to make Komodo compatible with newer systems. They would have to completely rewrite Komodo using a newer framework they felt was not feasible.
-
-And the final nail in the coffin was the fact that there are already a lot of free code editors available on the market right now doing better. They feel that '_it’s not a good business to be in anymore_'.
-
-**What now?:** ActiveState have made the whole Komodo IDE codebase available on their [GitHub repo][4] without the revision history.
-
-They have provided 3.2 million lines of code that consist of various programming languages such as Python, JavaScript, XUL, HTML, C++, and more.
-
-Anyone can copy, change, and use the code as they see fit.
-
-The forums for Komodo will be kept open for a year from their [original announcement][5], as it contains a treasure trove of information relating to Komodo.
-
-They are also open to moving the content to a different platform if anyone is willing to take on the task of managing it.
-
-On this topic, one of the employees from the Komodo dev team, Carey Hoffman, had this to add:
-
-> The extensive existing help information in the forums can act as a significant knowledge base for users and continue to be a central place to ask questions of the community and receive answers. I’ll very likely be there periodically on my own time to help where I can, such as when people are trying to build Komodo at home, or having difficulty making any kind of code edits.
-
-### Community Gets a Chance
-
-This can come in pretty handy for the community in general, as people can now try their hand at creating something truly special out of the code for Komodo.
-
-A Reddit user, [yvrelna][6] mentions:
-
-> I never used Komodo, but it's great to hear that Komodo is now freed from its cage. Companies should do this more often. If they're unwilling to support a software anymore, they should just release it as open source.It would've been better if the software is open source to begin with of course, but there's really no reason for a company to retain their codebase closed if they have no interest in maintaining it.Only thing is that they should've done it sooner, when there are still enough people that still cares about the software to possibly pick it up to maintain it.
-
-Indeed, the user is not wrong here; companies should go the extra mile by making code for their deprecated software open so that the community has a chance to create something out of it or even maintain it for the long term.
-
-ActiveState seems to have understood this sentiment and has thanked its users by open-sourcing Komodo.
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/komodo-ide-open-source/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/komodo-ide-goes-open-source.png
-[2]: https://www.activestate.com/
-[3]: https://news.itsfoss.com/content/images/2022/12/Komodo_IDE.png
-[4]: https://github.com/ActiveState/OpenKomodoIDE
-[5]: https://www.activestate.com/blog/activestate-komodo-ide-now-open-source/
-[6]: https://www.reddit.com/user/yvrelna/
diff --git a/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md b/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md
deleted file mode 100644
index 980ad2ec0a..0000000000
--- a/sources/news/20221213.0 ⭐️ Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15.md
+++ /dev/null
@@ -1,82 +0,0 @@
-[#]: subject: "Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15"
-[#]: via: "https://debugpointnews.com/puppy-linux-22-12-s15pup/"
-[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Puppy Linux 22.12 (S15Pup) Arrives Based on Slackware 15
-======
-
-![][1]
-
-**A new Puppy Linux flavour (Puppy Linux 22.12 S15Pup) is now available based on Slackware 15.**
-
-Puppy Linux is a super lightweight distro which runs entirely on RAM and requires a very low memory footprint. It is almost loaded with all the necessary applications for everything you need. It is quite remarkable that the Puppy Linux team managed to package all these applications, which run in low memory and surprisingly within 400 MB of ISO size. There are many variants of Puppy Linux based on Ubuntu and other distros – thanks to the fantastic Puppy Builder Woof-CE.
-
-### Puppy Linux 22.12 (s15pup): What’s New
-
-The recent release of Puppy Linux 22.12 is based on the Slackware 15.0 components, which were released in February 2022. At its core, the JWM (Joe’s Window Manager) provides flexibility and good performance in Puppy Linux because it runs off the RAM.
-
-![Puppy Linux 22.12 based on Slackware 15][2]
-
-Based on Slackware, Puppy 22.12 comes with Linux Kernel LTS series 5.15 for the 64-bit. And the 5.10 for the 32-bit system. The desktop feel is the same as other Puppy flavours based on the JWM 2.4.3. The JWM is used in other distro-based Puppy flavours as well.
-
-In addition, FFmpeg is loaded with Mplayer for your media playing needs – if at all required in a LIVE system. Also, the “Light” web browser, based on Firefox, gives you easy and performant access to the internet. Alternative browser installation options are also present.
-
-Furthermore, Puppy Linux 22.12 s15pup pre-loads most of the LXDE apps and components for the overall lightweight experience, such as Lxrandr 0.3.2, Lxtask 0.1.10 and Lxterminal 0.4.0.
-
-ISO of this Slackware flavour is less than 400 MB in size, and, amazingly, all of the following applications are pre-loaded on it. Here’s a summary of the key packages in this version:
-
-| Abiword 3.0.1 | Gparted 1.3.1 | Parcellite 1.2.1 |
-| Bash 5.1.016 | Grep 3.7 | Rox-filer 17w |
-| Busybox 1.35.0 | Gtk+2 2.24.33 | Samba 4.12.15 |
-| Cups 2.4.2 | Gtk+3 3.24.31 | Sed 4.8 |
-| Curl 7.86.0 | Gtkdialog 0.8.5a | Sylpheed 3.7.0 |
-| Dhcpcd 9.4.1 | Icu4c 69.1 | Syslinux 4.07 |
-| Didiwiki 0.8 | Jwm 2.4.3 | Transmission 2.60 |
-| Evince 2.32.0 | Lxrandr 0.3.2 | Util-linux 2.37.4 |
-| Ffmpeg 4.4.3 | Lxtask 0.1.10 | Viewnior 1.7 |
-| Gcc 11.2.0 | Lxterminal 0.4.0 | Xdelta 30.16 |
-| Geany 1.35 | Mesa 21.3.5 | Xsane 0.999 |
-| Ghostscript 9.55.0 | MPlayer 1.4 |
-| Glib2 2.70.3 | Mtpaint 3.50.09 |
-| Glibc 2.33 | Ncurses 6.3 |
-| Gnumeric 1.10.17 | Openssl 1.1.1s |
-
-### Download
-
-Puppy Linux is one of those few distros which still provides a 32-bit installation file alongside 64-bit. You can download this version from the following links for the respective architectures.
-
-- [S15Pup 64-bit – based on Slackware 15.0][3]
-- [S15Pup 32-bit – based on Slackware 15.0][4]
-- [ScPup 64-bit – based on Slackware current][5]
-- [ScPup 32-bit – based on Slackware current][6]
-
-If you are running it on a virtual machine, make sure to change the CPU architecture to 64-bit before installing it.
-
-_Via [release announcement][7] & [release notes][8]_
-
---------------------------------------------------------------------------------
-
-via: https://debugpointnews.com/puppy-linux-22-12-s15pup/
-
-作者:[arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://debugpointnews.com/author/dpicubegmail-com/
-[b]: https://github.com/lkxed
-[1]: https://debugpointnews.com/wp-content/uploads/2022/12/pups15head.jpg
-[2]: https://debugpointnews.com/wp-content/uploads/2022/12/Puppy-Linux-22.12-based-on-Slackware-15.jpg
-[3]: https://sourceforge.net/projects/spup/files/S15Pup64/
-[4]: https://sourceforge.net/projects/spup/files/S15Pup32/
-[5]: https://sourceforge.net/projects/spup/files/ScPup64/
-[6]: https://sourceforge.net/projects/spup/files/ScPup/
-[7]: https://forum.puppylinux.com/viewtopic.php?t=7464&sid=5ee2c343a8dbc0babc476139d188c50f
-[8]: http://distro.ibiblio.org/puppylinux/puppy-s15pup/release-S15Pup-22.12.htm
diff --git a/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md b/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md
deleted file mode 100644
index d18a3e8871..0000000000
--- a/sources/news/20221214.1 ⭐️ Microsoft Soundscape to Go Open Source Marking the End of the Project.md
+++ /dev/null
@@ -1,73 +0,0 @@
-[#]: subject: "Microsoft Soundscape to Go Open Source Marking the End of the Project"
-[#]: via: "https://news.itsfoss.com/microsoft-soundscape-open-source/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Microsoft Soundscape to Go Open Source Marking the End of the Project
-======
-
-Microsoft makes an excellent decision to open-source its innovative audio app.
-
-![Microsoft Soundscape to Go Open Source Marking the End of the Project][1]
-
-The [Soundscape project][2] was a fascinating experimental research effort undertaken by Microsoft to use sound-based technology to help visually impaired people navigate their surroundings.
-
-Launched back in 2017, it used 3D audio cues and augmented reality to enhance a user's awareness by guiding them through places.
-
-Soon after, they also launched an iOS app to showcase their progress.
-
-The app could use the iPhone's sensors to read out points of interest as the user walked past something or even roads and intersections to help them figure out where they were.
-
-**Unfortunately,** with a [recent announcement][3], Microsoft has decided not to continue further with the development of this project and will be making the **code open-source**.
-
-### Microsoft Soundscape Source Code to be Available on GitHub
-
-![Microsoft Soundscape - an Illustrated Demonstration][4]
-
-**What Happened?:** Well, according to Microsoft, it's natural to either stop or transition a few projects as they evolve their research portfolio.
-
-With this move, Microsoft hopes the community will take over and benefit from the 'novel experiences' they helped develop.
-
-They also add that:
-
-> As Microsoft Research continues to expand into new accessibility innovation areas, we hope the open-source software release of the Soundscape code supports the community in further developing confidence and utility of spatial audio navigation experiences.
-
-You know, this move is quite similar to the one made by ActiveState recently, where they discontinued Komodo IDE and made the code open-source to say thank you to its users.
-
-**What's Next?:** Starting **January 3, 2023**, the source code for Soundscape will be made available on GitHub. Developers are free to use the code in any manner they see fit.
-
-Furthermore, the iOS app will also be discontinued, and existing users can use it until June 2023.
-
-They will also stop taking new feature requests and only focus on bug fixes and general maintenance of the iOS app until the time comes.
-
-As for the Microsoft Soundscape Authoring app, it will no longer be available after January 17, 2023.
-
-Microsoft has also clarified that its other offerings would remain unaffected.
-
-### Community-Driven Approach Wins
-
-As was the case with Komodo IDE, a community-driven approach can be of great help for deprecated software.
-
-Where the community can get together and create something truly unique while also helping the end users add value to their lives.
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/microsoft-soundscape-open-source/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/microsoft-soundscape-goes-open-source.png
-[2]: https://www.microsoft.com/en-us/research/product/soundscape/
-[3]: https://www.microsoft.com/en-us/research/blog/microsoft-soundscape-new-horizons-with-a-community-driven-approach/
-[4]: https://youtu.be/v5DXykmOdJ8
From 60425c91ec1adae0860d2b8a63e047914dd0148d Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 25 Dec 2022 12:10:31 +0800
Subject: [PATCH 134/266] ALL
@wxy
https://linux.cn/article-15380-1.html
---
...e Picker Adds Thumbnail View After 18 Years.md | 88 +++++++++++++++++
...e Picker Adds Thumbnail View After 18 Years.md | 94 -------------------
2 files changed, 88 insertions(+), 94 deletions(-)
create mode 100644 published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
delete mode 100644 sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
diff --git a/published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md b/published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
new file mode 100644
index 0000000000..945591e75c
--- /dev/null
+++ b/published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
@@ -0,0 +1,88 @@
+[#]: subject: "Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years"
+[#]: via: "https://news.itsfoss.com/gnome-file-picker/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15380-1.html"
+
+虽迟但到!GNOME 的文件选取器在 18 年后增加了缩略图视图
+======
+
+> 一个长期缺位、也是急需的功能请求,终于通过了!
+
+![][1]
+
+如今,程序的用户界面是非常重要的;即使是最简单的交互也能决定用户的体验。
+
+GNOME 的文件选取器在查看文件时缺乏适当的缩略图预览,而是依赖于一个普通的列表视图。这对许多人来说可能是不直观的。
+
+多年来,缺乏这一功能也成了许多段子和讨论的主题。
+
+但是现在,在最初的 [功能请求][2] 提出 18 年之后,GNOME 终于可以支持一个合适的缩略图视图了。
+
+让我们来看看这个即将到来的对 GNOME 文件选取器的改变。
+
+### 该功能将随着 GNOME 44 到来
+
+![GNOME 文件缩略图视图][3]
+
+正如这个由 GNOME 开发者 [Matthias Clasen][4] 提供的早期构建截图所展示的。GNOME 上的文件选取器将具有一个缩略图视图。
+
+这就是它在 GNOME 43 上的样子:
+
+![GNOME 43 的文件选取器][5]
+
+**如何访问它?** 在 GNOME 上文件选取器的网格视图里,可以显示文件和文件夹的缩略图预览。
+
+现在将很容易区分文件管理器中的项目;不再需要打开一个文件来查看它包含的内容了!
+
+![GNOME 文件缩略图视图选取器][6]
+
+当这个功能到来时,你可以通过点击右上方的新视图切换按钮来启用它。
+
+**有什么变化?** 对于一个简单的功能添加来说,18 年是一个很长的时间。众多的技术原因使其实施成为一项艰巨的任务。
+
+但我很高兴,它终于来了。😃
+
+使之成为可能的原因之一是最近在 GTK 代码库中进行的废弃和现代化工作。
+
+> 💡 GTK 是 GNOME 的一切的核心的工具箱。
+
+而且,这些变化导致 [GtkListView][7] 和 [GtkGridView][8] 使用相同的数据模型来实现这个功能。
+
+**预期何时?** 这个历史上的 [合并请求][9] 已经被接受,并为其引入 GNOME 铺平道路。
+
+你可以期待它在 2023 年的某个时候与 GNOME 44 一起到来。
+
+我很期待!😁
+
+我们将把它作为 GNOME 44 功能提供的一部分来报道。所以,请继续关注我们的报道吧!
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/gnome-file-picker/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/gtk-file-chooser-gets-thumbnail-preview-support.png
+[2]: https://bugzilla.gnome.org/show_bug.cgi?id=141154
+[3]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail.png
+[4]: https://twitter.com/matthias_clasen
+[5]: https://news.itsfoss.com/content/images/2022/12/file-picker-now.png
+[6]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail-2.png
+[7]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtklistview.c
+[8]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkgridview.c
+[9]: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5163
+[10]: https://mastodon.social/@itsfoss
+[11]: https://twitter.com/itsfoss2
+[12]: https://notion.grsm.io/front-static/logo-ios.png
+[13]: https://www.notion.so/front-static/meta/default.png
diff --git a/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md b/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
deleted file mode 100644
index 2917f3aed7..0000000000
--- a/sources/news/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
+++ /dev/null
@@ -1,94 +0,0 @@
-[#]: subject: "Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years"
-[#]: via: "https://news.itsfoss.com/gnome-file-picker/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years
-======
-
-A long-lost request, and a much-needed one, finally made its way through!
-
-![Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years][1]
-
-Nowadays, the user interface of a program is extremely important; even the simplest of interactions can make or break the user's experience.
-
-The GNOME file picker lacked a proper thumbnail preview for viewing files, instead relying on a plain list view. This may have been unintuitive for many.
-
-The lack of this feature was also the topic of many memes and debates over the years.
-
-But now, finally, after 18 long years since the original [feature request][2] was put out, GNOME is set to receive support for a proper thumbnail view.
-
-Let's look at this upcoming change to GNOME's file picker.
-
-#### Recommended Read 📖
-
-### Feature to Arrive With GNOME 44
-
-![gnome file thumbnail view][3]
-
-As demonstrated by this early build screenshot provided by GNOME developer [Matthias Clasen][4]. The file picker on GNOME is going to feature a thumbnail view.
-
-This is how it looks like with GNOME 43 on board:
-
-![file picker with gnome 43][5]
-
-**How to access it?:** It is a grid view for the file picker on GNOME that shows the thumbnail previews of files and folders.
-
-It will now be easy to differentiate items in the file manager; no more opening a file to see what it contains!
-
-![gnome file thumbnail view selector][6]
-
-When this feature arrives, you can enable it by clicking on the new view toggle button at the top right.
-
-**What Changed?:** 18 years for a simple feature addition is a long time. Numerous technical reasons made the implementation of this an arduous task.
-
-But I am glad that it is finally here. 😃
-
-One of the reasons that made this possible was the recent deprecations and modernization work carried out in the GTK code base.
-
-> 💡 GTK is the toolkit that is at the core of all things GNOME.
-
-And, those changes resulted in [GtkListView][7] and [GtkGridView][8] using the same data models to make this feature work.
-
-**When to expect?:** The historical [merge request][9] has already been accepted and is paving the way for its introduction to GNOME.
-
-You can expect this to arrive with GNOME 44 sometime in 2023.
-
-I'm looking forward to that! 😁
-
-We would be covering it as part of GNOME 44's feature offerings. So, stay tuned to our coverage for that!
-
-_Don't forget to follow us on [Mastodon][10] and [Twitter][11]! Feel free to share your thoughts on this in the comments below._
-
-Notion – One workspace. Every team.We’re more than a doc. Or a table. Customize Notion to work the way you do.![][12]Notion![][13]
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/gnome-file-picker/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/gtk-file-chooser-gets-thumbnail-preview-support.png
-[2]: https://bugzilla.gnome.org/show_bug.cgi?id=141154
-[3]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail.png
-[4]: https://twitter.com/matthias_clasen
-[5]: https://news.itsfoss.com/content/images/2022/12/file-picker-now.png
-[6]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail-2.png
-[7]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtklistview.c
-[8]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkgridview.c
-[9]: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5163
-[10]: https://mastodon.social/@itsfoss
-[11]: https://twitter.com/itsfoss2
-[12]: https://notion.grsm.io/front-static/logo-ios.png
-[13]: https://www.notion.so/front-static/meta/default.png
From 468881e48c4ab5cba1e733b6cfb244d9454f8451 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 25 Dec 2022 15:49:51 +0800
Subject: [PATCH 135/266] RP
@FYJNEVERFOLLOWS
https://linux.cn/article-15381-1.html
---
...in Ubuntu and other Linux Distributions.md | 85 +++++++++----------
1 file changed, 42 insertions(+), 43 deletions(-)
rename {translated/tech => published}/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md (59%)
diff --git a/translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md b/published/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
similarity index 59%
rename from translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
rename to published/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
index 7287e7da5c..4cd33a4e74 100644
--- a/translated/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
+++ b/published/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
@@ -3,30 +3,33 @@
[#]: author: "Abhishek Prakash https://itsfoss.com/"
[#]: collector: "lkxed"
[#]: translator: "FYJNEVERFOLLOWS"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15381-1.html"
-如何在 Ubuntu 和其他 Linux 发行版中录制流音频
+如何在 Ubuntu 中录制流媒体音频
======
-如何在 Ubuntu 和其他 Linux 发行版中录制音频?
-如果你想通过计算机的麦克风录制语音,可以使用 `GNOME Sound Recorder` 或 `Audacity`。
+![][0]
-使用 `GNOME Sound Recorder` 很简单,但它缺乏功能。`Audacity` 最初可能会让人无法抗拒,但它有很多专业级录音的功能。然而,在本教程中,我不会详细讨论这个问题。
+> 如何在 Ubuntu 和其他 Linux 发行版中录制音频?
-`GNOME Sound Recorder` 能与麦克风配合使用。还有一个叫做 `Audio recorder` 的工具,除了麦克风输入,你可以使用它来录制流媒体音乐(来自 Sptify、YouTube、互联网广播、Skype 和其他大多数来源)。
+如果你想通过计算机的麦克风录制语音,可以使用 GNOME 录音机Sound Recorder 或 Audacity。
+
+使用 GNOME 录音机很简单,但它功能不足。Audacity 最初可能会让人无从入手,但它有很多专业级录音的功能。不过,在本教程中,我不打算详细讨论这个问题。
+
+GNOME 录音机能与麦克风配合使用。还有一个叫做 Audio recorder 的工具,除了麦克风输入,你可以使用它来录制流媒体音乐(来自 Sptify、YouTube、互联网广播、Skype 和其他大多数来源)。
总而言之,我将向你展示以下步骤:
-* 使用 `GNOME Sound Recorder` 录制声音
-* 使用 `Audio Recorder` 录制流音频
+* 使用 GNOME 录音机录制声音
+* 使用 Audio Recorder 录制流音频
-### 使用 `Sound Recorder` 从麦克风录制音频
+### 使用 GNOME 录音机从麦克风录制音频
-`GNOME` 桌面环境有很多有用的应用程序。Sound Recorder 就是其中之一。
+GNOME 桌面环境有很多有用的应用程序,录音机就是其中之一。
-你可以从 `Ubuntu` 软件中心安装 [Sound Recorder][1]。
+你可以从 Ubuntu 软件中心安装 [录音机][1]。
![Sound Recorder can be installed from the Ubuntu Software Center][2]
@@ -36,52 +39,47 @@
sudo apt install gnome-sound-recorder
```
-安装后,你可以在系统菜单中找到它并从那里开始。
+安装后,你可以在系统菜单中找到它,并从那里启动它。
![GNOME Sound Recorder][3]
-在开始使用它之前,应确保在系统设置中选择了正确的输入源
+在开始使用它之前,应确保在系统设置中选择了正确的输入源:
![Ensure that you have chosen correct input in system settings][4]
-一打开 `Sound Recorder`,它将显示如下界面。
+打开录音机,它将显示如下界面:
![Hit the Record button to start audio recording][5]
-点击录制按钮,它立即开始录制音频。录制时,你可以选择暂停、停止或取消录制。
+点击“录制Record”按钮,它立即开始录制音频。录制时,你可以选择暂停、停止或取消录制。
![Options while recording audio][6]
你的录音将保存并可从应用程序界面本身获得。单击保存的录音以突出显示。
-你可以回放或删除录音。你可以通过单击保存/下载按钮选择将其保存到其他位置。你也可以使用编辑按钮重命名录音。
+你可以回放或删除该录音。你可以通过单击“保存/下载”按钮选择将其保存到其他位置。你也可以使用“编辑”按钮重命名该录音。
![Saved recordings][7]
这很方便,对吧?你可以选择以 `MP3`、`FLAC` 和多种格式录制。
-#### 删除 GNOME Sound Recorder
+#### 删除 GNOME 录音机
不喜欢它或发现它缺乏功能?
-你可以从 `Ubuntu` 软件中心删除 `GNOME Sound Recorder` 或使用以下命令:
+你可以从 Ubuntu 软件中心删除 GNOME 录音机,或使用以下命令:
```
sudo apt remove gnome-sound-recorder
```
-`GNOME Sound Recorder` 的应用受到限制。它只从麦克风录制,在某些情况下这不是你想要的。
+GNOME 录音机应用功能有限,它只从麦克风录制,在某些情况下这不是你想要的。
-想象一下你想录制 Skype 通话或在应用程序或网络浏览器中播放的内容?在这种情况下,漂亮的 `Audio Recorder` 会有所帮助。
+想象一下你想录制 Skype 通话或在应用程序或网络浏览器中播放的内容?在这种情况下,漂亮的 Audio Recorder 会有所帮助。
-### 使用 Audio Recorder 来录制流音频
+### 使用 Audio Recorder 来录制流媒体音频
-你可以观看以下视频以了解如何使用 `Audio Recorder`。它有点旧,但步骤是一样的。
-
-![A Video from YouTube][8]
-
-[Subscribe to our YouTube channel for more Linux videos][9]
-你可以使用 [官方 PPA][10] 在 Ubuntu 和 LinuxMint 中安装 `Audio Recorder`。在终端中依次使用以下命令(`Ctrl+Alt+T`):
+你可以使用 [官方 PPA][10] 在 Ubuntu 和 LinuxMint 中安装 `Audio Recorder`。在终端中依次使用以下命令:
```
sudo apt-add-repository ppa:audio-recorder/ppa
@@ -89,25 +87,25 @@ sudo apt update
sudo apt install audio-recorder
```
-或者,你可以从[启动台][11]下载源代码。安装后,你可以从“活动概述”里启动应用程序:
+或者,你可以从 [启动台][11] 下载源代码。安装后,你可以从“活动概述Activity Overview”里启动应用程序:
![Audio Recorder][12]
#### 记录不同来源的各种声音
-`Audio Recorder` 记录计算机产生的各种声音。
+Audio Recorder 记录计算机产生的各种声音。
它记录通过系统声卡、麦克风、浏览器、网络摄像头等播放的音频。
-换句话说,即使你的系统打喷嚏,它也会记录(如果你想记录的话)。它允许你选择录制设备,如网络摄像头、麦克风、Skype等。
+换句话说,即使你的系统打喷嚏,它也会记录(如果你想记录的话)。它允许你选择录制设备,如网络摄像头、麦克风、Skype 等。
-要录制流媒体音乐,请选择适当的源。例如,如果你正在Rhythmbox 中播放流媒体广播,请选择 Rythbox。
+要录制流媒体音乐,请选择适当的源。例如,如果你正在 Rhythmbox 中播放流媒体广播,请选择 Rythmbox。
![Audio-Recorder Audio Settings][13]
#### 在你方便的时候录制
-`Audio Recorder` 还提供了设置计时器的选项。你可以在给定的时钟时间或预定义的间隔开始、停止或暂停录制。你还可以设置录制文件大小的限制。
+Audio Recorder 还提供了设置计时器的选项。你可以在给定的时钟时间或预定义的间隔开始、停止或暂停录制。你还可以设置录制文件大小的限制。
此外,你可以在没有音频(或声音很低)时暂停(和停止),并在声音恢复时继续。
@@ -123,17 +121,17 @@ sudo apt install audio-recorder
另一个宝藏。你可以将录制的文件保存为你喜爱的文件格式。支持的文件格式有 OGG 音频、Flac、MP3、SPX 和 WAV。我录音时更喜欢用 MP3 格式。
-**录制的文件存储在 `~/Audio`** 中,即主目录中的 `Audio` 文件夹中。
+录制的文件存储在 `~/Audio` 中,即主目录中的“音频”文件夹中。
![Audio-recorder Audio Formats][16]
-#### `Audio Recorder` 有多好?
+#### Audio Recorder 有多好?
-我在 Ubuntu 中使用 `Audio Recorder` [录制YouTube上播放的音乐][17]。我用 MP3 格式保存了一段 2 分钟的视频,占用了 934 KB 的空间。但我必须说,我没想到录制的音质会这么好。老实说,我无法将它与 YouTube 上的原始歌曲区分开来。
+我在 Ubuntu 中使用 Audio Recorder [录制 YouTube 上播放的音乐][17]。我用 MP3 格式保存了一段 2 分钟的视频,占用了 934 KB 的空间。但我必须说,我没想到录制的音质会这么好。老实说,我无法将它与 YouTube 上的原始歌曲区分开来。
-#### 删除 `Audio Recorder`
+#### 删除 Audio Recorder
-如果你不喜欢 `Audio Recorder`,可以使用以下命令将其删除:
+如果你不喜欢 Audio Recorder,可以使用以下命令将其删除:
```
sudo apt remove audio-recorder
@@ -147,9 +145,9 @@ sudo apt-add-repository -r ppa:audio-recorder/ppa
### 结论
-Linux 中可能还有其他几种用于音频录制的工具。像 `GNOME` 一样,其他桌面环境也可能有录音应用程序。我知道 `Deepin` 肯定有一个。
+Linux 中可能还有其他几种用于音频录制的工具。像 GNOME 一样,其他桌面环境也可能有录音应用程序。我知道深度操作系统肯定有一个。
-`GNOME Sound Recorder` 是一个不错的工具,用于从麦克风录制声音。对于录制各种来源的声音,`Audio Recorder` 是一个不错的选择。
+GNOME 录音机是一个不错的工具,用于从麦克风录制声音。对于录制各种来源的声音,Audio Recorder 是一个不错的选择。
我希望这篇文章能满足你的录音需求。如果你有什么建议,请告诉我。
@@ -159,8 +157,8 @@ via: https://itsfoss.com/record-streaming-audio/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/FYJNEVERFOLLOWS)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[FYJNEVERFOLLOWS](https://github.com/FYJNEVERFOLLOWS)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -184,3 +182,4 @@ via: https://itsfoss.com/record-streaming-audio/
[16]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-formats.png
[17]: https://itsfoss.com/youtube-dl-audio-only/
[18]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/
+[0]: https://img.linux.net.cn/data/attachment/album/202212/25/154829ol11lp47i8o6222c.jpg
\ No newline at end of file
From aee51df69a91fb9956f7f2d4c9c13b23cf340c58 Mon Sep 17 00:00:00 2001
From: toknow-gh
Date: Mon, 26 Dec 2022 00:18:28 +0800
Subject: [PATCH 136/266] Translated
tech\20210917 Open source game achievements.md
---
.../20210917 Open source game achievements.md | 82 -------------------
.../20210917 Open source game achievements.md | 82 +++++++++++++++++++
2 files changed, 82 insertions(+), 82 deletions(-)
delete mode 100644 sources/tech/20210917 Open source game achievements.md
create mode 100644 translated/tech/20210917 Open source game achievements.md
diff --git a/sources/tech/20210917 Open source game achievements.md b/sources/tech/20210917 Open source game achievements.md
deleted file mode 100644
index c8ae732235..0000000000
--- a/sources/tech/20210917 Open source game achievements.md
+++ /dev/null
@@ -1,82 +0,0 @@
-[#]: subject: "Open source game achievements"
-[#]: via: "https://fedoramagazine.org/open-source-game-achievements/"
-[#]: author: "Dennis Payne https://fedoramagazine.org/author/dulsi/"
-[#]: collector: "lujun9972"
-[#]: translator: "toknow-gh"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Open source game achievements
-======
-
-![][1]
-
-Photo by [Michał Parzuchowski][2] on [Unsplash][3]
-
-Learn how Gamerzilla brings an achievement system to open source games and enables all developers to implement achievements separate from the game platform.
-
-Some open source games rival the quality of commercial games. While it is hard to match the quality of triple-a games, open source games compete effectively against the indie games. But, gamer expectations change over time. Early games included a high score. Achievements expanded over time to promote replay. For example, you may have completed a level but you didn’t find all the secrets or collect all the coins. The Xbox 360 introduced the first multi-game online achievement system. Since that introduction, many game platforms added an achievement system.
-
-Open source games are largely left out of the achievement systems. You can publish an open source game on Steam, but it costs money and they focus on working with companies not the free software community. Additionally, this locks players into a non-free platform.
-
-Commercial game developers are not well served either, since some players enjoy achievements and refuse to purchase from other stores due to the inability to share their accomplishments. This lock-in gives the power to the platform holder. Each platform has a different system forcing the developer to implement support and testing multiple times. Smaller platform are likely to be skipped entirely. Furthermore, the platform holder has access to the achievement data on all companies using their system which could be used for competitive advantage.
-
-### Architecture of Gamerzilla
-
-[Gamerzilla][4] is an open source game achievement system which attempts to correct this situation. The design considered both open source and commercial games. You can run your own Gamerzilla server, use one provided by a game store, or even distributions, or other groups could run them. Where you buy the game doesn’t matter. The achievement data uploads to your Gamerzilla server.
-
-Game achievements require two things, a game, and a Gamerzilla server. As game collections grow, however, that setup has a disadvantage. Each game needs to have credentials to upload to the Gamerzilla server. Many gamers turn to game launchers due to their large number of games and ability to synchronize with one or more stores. By adding Gamerzilla support to the launcher, the individual games no longer need to know your credentials. Session results will relay from the game launcher to the Gamerzilla server.
-
-At one time, freegamedev.net provided the Hubzilla social networking system. We created an addon allowing us to jump start Gamerzilla development. Unfortunately server upgrades broke the service so freegamedev.net stopped offering it.
-
-For Gamerzilla servers, two implementations exist. Maintaining Hubzilla is a complex task, so we developed a standalone Gamerzilla service using *.*Net and React. The API used by games remains the same so it doesn’t matter which implementation you connect to.
-
-Game launchers development and support often lags. To facilitate adding support, we created libgamerzilla. The library handles all the interaction between the game launcher, games, and the Gamerzilla server. Right now only _GameHub_ has an implementation with Gamerzilla support and merging into the project is pending. On Fedora Linux, libgamerzilla-server package serves as a temporary solution. It does not launch games but listens for achievements and relays them to your server.
-
-Game support continues growing. As with game launchers, developers use libgamerzilla to handle the Gamerzilla integration. The library, written in C, is in use in a variety of languages like Python and nim. Games which already have an achievement system typically take only a few days to add support. For other games ,collecting all the information to award the achievements occupies the bulk of the implementation time.
-
-### Setting up a server
-
-The easiest server to setup is the Hubzilla addon. That, however, requires a working Hubzilla site which is not the simplest thing to setup. The new .Net and React server can be setup relatively easily on Fedora Linux, although there are a lot of steps. The [readme][5] details all the steps. The long set of steps is, in part, due to the lack of a built release. This means you need to build the .Net and the React code. Once built, React code serves up directly in Apache. A new service runs the .Net piece. Apache proxies all requests to the Gamerzilla API for the new service.
-
-With the setup steps done, Gamerzilla runs but there are no users. There needs to be an easy way to create an administrator and register new users. Unfortunately this piece does not exist yet. At this time, users must be entered directly using the sqlite3 command line tool. The instructions are in the [readme][5]. Users can be publicly visible or not. The approval flag allows new users to not use the system immediately but web registration still needs to be implemented The user piece is designed with replacement in mind. It would not be hard to replace backend/Service/UserService.cs to integrate with an existing site. Gaming web sites could use this to offer Gamerzilla achievements to their users.
-
-Currently the backend uses a sqlite database. No performance testing has been done. We expect that larger installations may need to modify the system to use a more robust database system.
-
-### Testing the system
-
-There is no game launcher easily available at the moment. If you install libgamerzilla-server, you will have the command _gamerzillaserver_ available from the command line. The first time you run it, you enter your url and login information. Subsequent executions will simply read the information from the configuration file. There is currently no way to correct a mistake except deleting the file at _.local/share/ga_merzillaserver/server.cfg and running _gamerzillaserver_ again.
-
-Most games have no built releases with Gamerzilla support. [Pinball Disc Room on itch.io][6] does have support built in the Linux version. The web version has no achievements There are only two achievements in the game, one for surviving for ten seconds and the other for unlocking and using the tunnel. With a little practice you can get an achievement. You need to check your Gamerzila server as the game provides no visual notification of the achievement.
-
-Currently no game packaged in Fedora Linux supports Gamerzilla. SuperTuxKart merged support but is still awaiting a new release. Seahorse adventures and Shippy 1984 added achievements but new releases are not packaged yet. Some games with support, we maintain independently as the developers ignore pull requests or other attempt to contact them.
-
-### Future work
-
-Gamerzilla needs more games. A variety of games currently support the system. An addition occurs nearly every month. If you have a game you like, ask the developer to support Gamerzilla. If you are making a game and need help adding support, please let us now.
-
-Server development proceeds at a slow pace and we hope to have a functional registration system soon. After that we may setup a permanent hosting site. Right now you can see our [test server][7]. Some people expressed concern with the .Net backend. The API is not very complex and could be rewritten in Python fairly easily.
-
-The largest unknown remains game launchers. GameHub wants a generic achievement interface. We could try to work with them to get that implemented. Adding support to the itch.io app could increase interest in the system. Another possibility is to do away with the game launcher entirely. Perhaps adding something like the gamerzillaserver to Gnome might be possible. You would then configure your url and login information on a settings page. Any game launched could then record achievements.
-
---------------------------------------------------------------------------------
-
-via: https://fedoramagazine.org/open-source-game-achievements/
-
-作者:[Dennis Payne][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://fedoramagazine.org/author/dulsi/
-[b]: https://github.com/lujun9972
-[1]: https://fedoramagazine.org/wp-content/uploads/2021/09/game_acheivements-816x345.jpg
-[2]: https://unsplash.com/@mparzuchowski?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
-[3]: https://unsplash.com/s/photos/jenga?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
-[4]: http://identicalsoftware.com/gamerzilla/
-[5]: https://github.com/dulsi/gamerzilla.net#readme
-[6]: https://dulsi.itch.io/pinball-disc-room
-[7]: http://108.49.106.217/
diff --git a/translated/tech/20210917 Open source game achievements.md b/translated/tech/20210917 Open source game achievements.md
new file mode 100644
index 0000000000..efd95d3dba
--- /dev/null
+++ b/translated/tech/20210917 Open source game achievements.md
@@ -0,0 +1,82 @@
+[#]: subject: "Open source game achievements"
+[#]: via: "https://fedoramagazine.org/open-source-game-achievements/"
+[#]: author: "Dennis Payne https://fedoramagazine.org/author/dulsi/"
+[#]: collector: "lujun9972"
+[#]: translator: "toknow-gh"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Gamerzilla:一个开源游戏成就系统
+======
+
+![][1]
+
+Photo by [Michał Parzuchowski][2] on [Unsplash][3]
+
+了解开源游戏成就系统 Gamerzilla。它使游戏开发者能够独立于游戏平台实现成就系统。
+
+一些开源游戏的质量已经媲美商业游戏。尽管还难以比肩 3A 大作,开源游戏在独立游戏中已颇具竞争力。但是游戏玩家预期是随时间变化的。早期的游戏只有高分成就。不断增加的成就种类促使玩家反复重玩游戏。比如你可能达到了满级,却还没有找到所有隐藏物品或没有完成全物品收集。Xbox 360 推出了首个在线多游戏成就系统。随后其它游戏平台也纷纷推出了自己的成就系统。
+
+开源游戏在很大程度被游戏平台的成就系统排除在外。你可以在 Stream 上发布自己的游戏,但这需要付费。游戏平台主要与公司合作,而不是与自由软件社区合作。这也进一步把玩家锁定在了非自由的游戏平台上。
+
+商业游戏开发商也没有得到太多好处。由于不能共享成就,一些享受成就的玩家拒绝从其他商店购买游戏。这种锁定效应增强了游戏平台的话语权。由于各个游戏平台使用不同的系统,开发者不得不针对它们分别进行适配和测试。较小的游戏平台则可能完全被忽略掉。并且平台方能够访问到所有使用该平台的公司的成就数据,这些数据可以被用来扩大竞争优势。
+
+### Gamerzilla 的架构
+
+[Gamerzilla][4] 是一个致力于改善这种现状的开源游戏成就系统。Gamerzilla 在设计上同时考虑了开源游戏和商业游戏。你可以运行自己的 Gamerzilla 服务器,使用游戏商店提供的服务器,甚至 Linux 发行版中的服务器。服务器也可以由其他团体来运行。在哪里购买游戏不再重要。成就数据都会上传到你的 Gamerzilla 服务器上。
+
+一个基本的成就系统需要两个要素:游戏和 Gamerzilla 服务器。然而随着游戏数量增长,这种设计会暴露出其缺点。每个游戏都需要证书才能上传数据到服务器。由于拥有大量的游戏资源,并且能够在不同游戏商店之间同步数据,游戏启动器成为了众多玩家的选择。通过让启动器支持 Gamerzilla,游戏本身就不再需要证书了。游戏结果直接从启动器上传到 Gamerzilla 服务器。
+
+freegamedev.net 曾提供了社交网络系统 Hubzilla。我们基于此开发了一个插件来进行 Gamerzilla 的开发。不幸的是 Hubzilla 的一次升级导致了 freegamedev.net 的服务故障,因此 freegamedev.net 决定不再提供它了。
+
+目前 Gamerzilla 服务器有两种实现。维护 Hubzilla 是一项复杂的工作,所以我们用 .Net 和 React 开发了一个独立的 Gamerzilla 服务器。游戏调用的 API 是相同的,所以不用关心连接的服务器是哪种实现。
+
+游戏启动器的开发和支持工作通常是滞后的。为了方便启动器增加对 Gamerzilla 的支持,我们开发了 libgamerzilla。这个库负责处理启动器、游戏和 Gamerzilla 服务器之间的交互。目前只有 _GameHub_ 实现了一个支持 Gamerzilla 的版本,并将在近期整合到项目中。Fedora 上的 libgamerzilla-server 是一个临时解决方案。它不启动游戏,而是监听成就并把成就上传到服务器。
+
+支持 Gamerzilla 的游戏在不断增长。与游戏启动器一样,开发者使用 libgamerzilla 来完成 Gamerzilla 的集成工作。这个库由 C 语言实现,已经被 Python 和 nim 等多种编程语言使用。对于那些已经有成就系统的游戏,只需要花几天时间就可以完成对 Gamerzilla 的支持。其他游戏想要支持 Gamerzilla,大部分时间将会花在收集信息和授予成就上。
+
+### 架设服务器
+
+架设服务器最容易的方式是使用 Hubzilla 插件。但是运行 Hubzilla 站点却不是一件轻松的事情。在 Fedora 上架设基于 .Net 和 React 的服务器相对来说要容易一些,尽管这仍然需要许多步骤。详细步骤请参考 [readme][5]。需要这么多步骤的一部分原因是目前没有预编译好的发布版本。这意味着你需要自己安装 .Net,动手构建 React 源码部分。构建完成之后,React 代码会直接运行在 Apache 中。.Net 后端则运行在单独的服务上。Apache 作为代理负责把所有 Gamerzilla API 请求转发给后端服务。
+
+按上面的步骤操作,Gamerzilla 已经运行起来了,但是现在还没有用户。当然应该有一个简单的方式来创建管理员和注册新用户。但是该功能还没有完成。目前只能通过 sqlite3 命令行来录入用户信息。具体步骤请参考 [readme][5]。用户可以是公开可见的,也可以是隐藏的。批准标记可以让新用户不立刻使用该系统,但是网络注册是必须的。在设计时我们已经考虑了用户相关模块的可替换性。通过替换 backend/Service/UserService.cs 就可以与其他站点进行集成。游戏网站也可以通过这种方式来为用户提供 Gamerzilla 成就系统。
+
+目前 Gamerzilla 的后端使用的是 sqlite 数据库。我们还没有对它进行过性能测试。我们预计较大型的应用安装需要改进系统以使用更鲁棒的数据库。
+
+### 测试
+
+目前要找一个支持 Gamerzilla 的游戏启动器太难了。如果你安装了 libgamerzilla-server,就可以在命令行中运行 _gamerzillaserver_ 命令。首次运行该命令时需要输入 url 和 登录信息。以后再运行时会直接从配置文件读取这些信息。目前更正错误的唯一方法是删除 _.local/share/gamerzillaserver/server.cfg_ 再重新运行 _gamerzillaserver_ 命令。
+
+大多数游戏还没有支持 Gamerzilla 的发行版。[itch.io 上的 Pinball Disc Room][6],它的 Lniux 版本支持 Gamerzilla,但是它的网页版是没有成就的。这款游戏只有两个成就:一个是存活 10 秒钟,另一个是解锁并使用隧道。只需要稍加练习,你就能获得一个成就。由于这款游戏没有可视化的成就提示消息,你需要查看 Gamerzila 服务器才能确认成就。
+
+目前打包到 Fedora 中的游戏都还不支持 Gamerzila。SuperTuxKart 已经整合了对 Gamerzila 的支持,正在等待发布新版本。 Seahorse adventures 和 Shippy 1984 添加了成就,但是新发布版本还没有打包。还有一部分游戏由我们独立完成了对 Gamerzila 的支持,但我们的拉取请求pull request或其它联系尝试还没有得到开发者的回应。
+
+### 后续工作
+
+Gamerzilla 需要更多游戏的支持。目前已经有很多游戏支持 Gamerzilla,并且正在以大约每月一个的速度增长。如果你有喜欢的游戏,可以请求开发方支持 Gamerzilla。如果你是游戏开发者,并且在支持 Gamerzilla 上需要技术支持,请联系我们。
+
+服务器的开发工作在缓步开展中,我们希望不久之后就会有一个可用的注册系统。在那之后我们可能会建立一个永久托管站点。目前你可以看到我们的[测试服务器][7]。一些人对于使用 .Net 作为后端表示担忧。我们的 API 并不复杂,可以很容易用 Python 重写。
+
+最大的不确定性来自游戏启动器方面。GameHub 希望有一个通过用的成就接口。未来我们可能会在这方面与他们开展合作。增加对 itch.io 应用的支持可以提升系统的关注度。另一种方案是完全抛开启动器。也许可以将 gamerzillaserver 添加到 Gnome 中。然后你就可以在一个设置页面里配置 url 和登录信息。这样任何启动的游戏都可以记录成就了。
+
+--------------------------------------------------------------------------------
+
+via: https://fedoramagazine.org/open-source-game-achievements/
+
+作者:[Dennis Payne][a]
+选题:[lujun9972][b]
+译者:[译者ID](https://github.com/toknow-gh)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://fedoramagazine.org/author/dulsi/
+[b]: https://github.com/lujun9972
+[1]: https://fedoramagazine.org/wp-content/uploads/2021/09/game_acheivements-816x345.jpg
+[2]: https://unsplash.com/@mparzuchowski?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
+[3]: https://unsplash.com/s/photos/jenga?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
+[4]: http://identicalsoftware.com/gamerzilla/
+[5]: https://github.com/dulsi/gamerzilla.net#readme
+[6]: https://dulsi.itch.io/pinball-disc-room
+[7]: http://108.49.106.217/
From 58c8eb1bde9e50422f12e1c2aa02dd3c12dff9cb Mon Sep 17 00:00:00 2001
From: geekpi
Date: Mon, 26 Dec 2022 10:03:47 +0800
Subject: [PATCH 137/266] translated
---
...atform Music Player With Essential Features.md | 107 ------------------
...atform Music Player With Essential Features.md | 105 +++++++++++++++++
2 files changed, 105 insertions(+), 107 deletions(-)
delete mode 100644 sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
create mode 100644 translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
diff --git a/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
deleted file mode 100644
index ddb9a321c0..0000000000
--- a/sources/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
+++ /dev/null
@@ -1,107 +0,0 @@
-[#]: subject: "Harmonoid: A Beautiful Cross-Platform Music Player With Essential Features"
-[#]: via: "https://itsfoss.com/harmonoid/"
-[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Harmonoid: A Beautiful Cross-Platform Music Player With Essential Features
-======
-
-Fortunately, there’s no shortage of [good open-source music players for Linux][1]. We have covered a variety of options in the past.
-
-Here, I highlight a music player that is free to use, open-source, and available for multiple platforms, including **Linux, Windows, and Android**.
-
-### Harmonoid: Intuitive User Experience With Material Design
-
-![harmonoid player][2]
-
-Harmonoid is written in Dart programming language. It utilizes [libmpv][3] and [mpv][4] for its media playback capabilities on desktop platforms.
-
-It provides an excellent user interface to work with. And does not use electron.js. So, if you hate Electron, this is something you can try.
-
-Usually, you see apps feature material design UI on Android. If you did not know, Material is Google’s open-source design system.
-
-![harmonoid player info][5]
-
-Not a lot of creators use it for desktop applications. For a change, Harmonoid features a material design user experience that can be snappy and intuitive simultaneously.
-
-This lets Harmonoid present a unique user experience to Linux users. The animations feel smooth and easy to navigate and offer plenty of valuable features to help manage your music library.
-
-![harmonoid url][6]
-
-If you want a music player with a good UI and feature set, I recommend trying Harmonoid.
-
-**Recommended Read**: [Best Music Players for Linux Users][1]
-
-### Features of Harmonoid
-
-![harmonoid player options][7]
-
-[Harmonoid][8] may look like a simple music player, but it comes packed with some of the most valuable features. They include:
-
-- **Sing along feature where it finds lyrics, or you can manually add them**
-- **Edit song details, including artist, year, genre, track number, album, and title**
-- Easy sorting and ordering of your music list
-- A quick search feature to find what you are looking for
-- Caches metadata to offer a fast experience every time you load it
-- Good integration support with Windows and Linux
-- Discord rich presence support to show your music along with artwork and play buttons
-- Adjust the speed, volume, and pitch of the music
-- Raw metadata reader to read tags of any file or song in your library
-- Playback is powered by MPV
-- .LRC file compatibility
-- **Online URL (YouTube) and radio stream supported**
-- Cross-platform
-- Multiple artist support
-- Dark/light mode
-
-In addition to these, several subtle abilities go a long way, like **gapless playback and context menu integration, and it is a lightweight application** in general.
-
-Harmonoid should fit perfectly for users who want to play music or want to organize their collection simultaneously. I would say that it offers the best of both worlds.
-
-![harmonoid settings][9]
-
-### Install Harmonoid on Linux
-
-You can grab the **.deb/.rpm** package from its [download page][10] and install it on Ubuntu-based distros or Fedora.
-
-Additionally, you need to install mpv and libmpv using the following command (for Ubuntu):
-
-```
-sudo apt install mpv lipmpv-dev
-```
-
-Ensuring to install these packages will let you handle all kinds of files for playback with Harmonoid.
-
-You can also find Harmonoid on [AUR][11] for Arch-based distributions. To explore more about the player, head to its [GitHub page][12] and the [official website][8].
-
-_Have you tried Harmonoid to play and organize music on your Linux system? What’s your favorite music player for Linux? Let me know your thoughts in the comments down below._
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/harmonoid/
-
-作者:[Ankush Das][a]
-选题:[lkxed][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/ankush/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/best-music-players-linux/
-[2]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player.png
-[3]: https://github.com/mpv-player/mpv/tree/master/libmpv
-[4]: https://mpv.io
-[5]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-info.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-url.png
-[7]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-options.png
-[8]: https://harmonoid.com
-[9]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-settings.png
-[10]: https://harmonoid.com/downloads
-[11]: https://aur.archlinux.org/packages/harmonoid-bin
-[12]: https://github.com/harmonoid/harmonoid
diff --git a/translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
new file mode 100644
index 0000000000..4c071ba0e5
--- /dev/null
+++ b/translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
@@ -0,0 +1,105 @@
+[#]: subject: "Harmonoid: A Beautiful Cross-Platform Music Player With Essential Features"
+[#]: via: "https://itsfoss.com/harmonoid/"
+[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Harmonoid:具有基本功能的漂亮跨平台音乐播放器
+======
+
+幸运的是,[Linux 的优秀开源音乐播放器][1]并不缺乏。过去我们已经介绍了多种选择。
+
+在这里,我重点介绍一款免费使用、开源且可用于多种平台(包括 **Linux、Windows 和 Android**)的音乐播放器。
+
+### Harmonoid:Material Design 的直观用户体验
+
+![harmonoid player][2]
+
+Harmonoid 是用 Dart 语言编写的。它利用 [libmpv][3] 和 [mpv][4] 在桌面平台上实现媒体播放功能。
+
+它提供了一个优秀的用户界面。并且不使用 electron.js。所以,如果你讨厌 Electron,你可以试试这个。
+
+通常,你会在 Android 上看到应用具有 Material Design UI。如果你不知道,Material 是 Google 的开源设计系统。
+
+![harmonoid player info][5]
+
+没有多少创作者将它用于桌面应用。作为一种改变,Harmonoid 具有 Material Design 用户体验,可以同时做到快速和直观。
+
+这让 Harmonoid 为 Linux 用户呈现了独特的用户体验。动画感觉流畅且易于导航,并提供大量有价值的功能来帮助管理你的音乐库。
+
+![harmonoid url][6]
+
+如果你想要一个有良好 UI 和功能集的音乐播放器,我建议您尝试 Harmonoid。
+
+### Harmonoid 的特点
+
+![harmonoid player options][7]
+
+[Harmonoid][8] 可能看起来像一个简单的音乐播放器,但它包含了一些最有价值的功能。他们包括:
+
+- **在找到歌词的地方跟唱,或者你可以手动添加它们**
+- **编辑歌曲详细信息,包括艺术家、年份、流派、曲目编号、专辑和标题**
+- 轻松分类和排序你的音乐列表
+- 一个快速搜索功能来找到你要找的东西
+- 缓存元数据以在你每次加载时提供快速体验
+- 与 Windows 和 Linux 的良好集成支持
+- 支持Discord丰富的存在,以显示你的音乐以及艺术品和播放按钮
+- 调整音乐的速度、音量和音高
+- 原始元数据读取器可读取你库中任何文件或歌曲的标签
+- 播放由 MPV 提供
+- .LRC 文件兼容性
+- **支持在线 URL (YouTube) 和广播流**
+- 跨平台
+- 多位艺术家支持
+- 深色/浅色模式
+
+除了这些之外,还有一些小功能可以发挥很大的作用,例如**无缝播放和上下文菜单集成,并且它通常是一个轻量级应用**。
+
+Harmonoid 应该非常适合想要同时播放音乐或整理收藏的用户。我会说它提供了两全其美的方法。
+
+![harmonoid settings][9]
+
+### 在 Linux 上安装 Harmonoid
+
+你可以从其[下载页面][10]获取 **.deb/.rpm** 包并将其安装在基于 Ubuntu 的发行版或 Fedora 上。
+
+此外,你需要使用以下命令安装 mpv 和 libmpv(对于 Ubuntu):
+
+```
+sudo apt install mpv lipmpv-dev
+```
+
+确保安装这些软件包可以让你用 Harmonoid 处理所有类型的文件进行播放。
+
+你还可以在 [AUR][11] 上找到基于 Arch 的发行版的 Harmonoid。要探索有关该播放器的更多信息,请访问其 [GitHub 页面][12]和[官方网站][8]。
+
+_你是否尝试过 Harmonoid 在你的 Linux 系统上播放和整理音乐? 你最喜欢的 Linux 音乐播放器是什么? 在下面的评论中让我知道你的想法。_
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/harmonoid/
+
+作者:[Ankush Das][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/ankush/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/best-music-players-linux/
+[2]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player.png
+[3]: https://github.com/mpv-player/mpv/tree/master/libmpv
+[4]: https://mpv.io
+[5]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-info.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-url.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-options.png
+[8]: https://harmonoid.com
+[9]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-settings.png
+[10]: https://harmonoid.com/downloads
+[11]: https://aur.archlinux.org/packages/harmonoid-bin
+[12]: https://github.com/harmonoid/harmonoid
\ No newline at end of file
From 27a10dfb246420aff85c8d2606a5457f39017f43 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Mon, 26 Dec 2022 10:16:48 +0800
Subject: [PATCH 138/266] translating
---
...⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
index 3cdd80fb63..d4a70a8ab2 100644
--- a/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
+++ b/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/12/linux-file-manager-qtfm"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From cd3d04d0c0a24e620a5004bb3a28bef8e3e61ee4 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 26 Dec 2022 16:21:58 +0800
Subject: [PATCH 139/266] ALL
@wxy
https://linux.cn/article-15383-1.html
---
...s with a Ton of Visual Changes and Improvements.md | 156 ++++++++++++++++++
...s with a Ton of Visual Changes and Improvements.md | 152 -----------------
2 files changed, 156 insertions(+), 152 deletions(-)
create mode 100644 published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
delete mode 100644 sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
diff --git a/published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md b/published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
new file mode 100644
index 0000000000..c9f1a84de3
--- /dev/null
+++ b/published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
@@ -0,0 +1,156 @@
+[#]: subject: "Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements"
+[#]: via: "https://news.itsfoss.com/linux-mint-21-1-release/"
+[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15383-1.html"
+
+Linux Mint 21.1 发布:大量的视觉变化和改进
+======
+
+> Linux Mint 21.1 带有一个新的默认主题和其他一些改进。
+
+![][1]
+
+Linux Mint 21 已经收到了它的第一个更新,即 **Linux Mint 21.1 “Vera”**。
+
+如果你想了解 Linux Mint 21 “Venessa”,我们的官方点评应该能让你尽快了解:
+
+> **[Linux Mint 21:最好的发行版变得更好了](https://itsfoss.com/linux-mint-21-review/)**
+
+这个版本与通常的小版本相似。它包括了对外观、感觉和功能的各种变化,这些变化可能看起来很细微,但会影响用户体验。
+
+让我们来看看主要的亮点。我们关注的是 Linux Mint 的 Cinnamon 版。
+
+### Linux Mint 21.1 Vera:有什么新内容?
+
+基于 **Ubuntu 22.04 LTS**,该版本的底层将继续使用 **Linux 5.15 LTS** 内核。
+
+![][2]
+
+#### 👀 焕然一新的用户界面
+
+当你第一次启动进入桌面时,你应该很快注意到光标的新外观。它默认采用了新的 Bibata 主题。
+
+![][3]
+
+光标、图标主题列表增加了一些新的主题,如 Yaru、Breeze 和 GoogleDot,以及传统的 DMZ 主题。
+
+![][4]
+
+除了传统的 Mint-X、Mint-Y 和 Mint-Legacy 主题外,用户还可以找到一组独特的应用图标主题,这包括 Papirus、Breeze、Numix 和 Yaru。
+
+![][5]
+
+另一件你可能会注意到的有趣的事情,默认的强调色不再是传统的绿色,这是因为 **桌面主题现在换成了 Aqua**。强调色库提供了更多鲜艳的颜色,使桌面看起来更干净、更有吸引力。
+
+对于那些希望恢复传统外观的人,你可以在主题中选择 “Mint-Y-Legacy”。
+
+此外,以前在桌面上可见的 **电脑、主文件夹、网络和垃圾箱图标** 被默认删除,它们可以在文件管理器中访问。主文件夹的图标则显示在面板上。如果你想恢复以前的方式,你可以通过进入 系统首选项System Preferences 来恢复。
+
+#### ✨ 增强的驱动器管理器
+
+由于驱动器管理器在用户模式下运行,所以当你启动它时不再要求输入密码。
+
+![][6]
+
+有专门的屏幕来显示离线连接和检测到 现场 USBLive USB 时的情况。你也应该发现挂载现场 USB 比以前更顺畅了。
+
+![][7]
+
+对它也进行了一些修复。
+
+Packagekit 现在可以清除已删除的驱动程序和软件包。这解决了一个众所周知的问题,即用户想要在不同版本的英伟达驱动之间进行切换。
+
+此外,Debconf 也进行了修补,以解决启用安全启动时英伟达驱动程序的一个问题。
+
+#### 👨💻 Flatpak 集成和软件管理器的改进
+
+很高兴看到 软件管理器Software Manager 和 更新管理器Update Manager 都支持 Flatpak 了。
+
+安装和更新 Flatpak 应用程序的过程没有什么不同,应该是很容易的。
+
+![][8]
+
+例如,软件管理器已被更新,以帮助区分用户正在查看的应用程序是哪个版本:Flatpak 版本还是系统版本。还有一个下拉框,用于在一个应用程序的系统版本和 Flatpak 版本之间切换。
+
+卸载 Flatpak 应用程序和快捷方式不再需要密码了。在进行多项操作时也是如此。
+
+#### 🔨 对 XApp 的改进
+
+用户现在可以配置登录屏幕的光标大小和主题。以前,这些设置是全局设置。
+
+另一方面,Warpinator 获得了更好的安全性,而 WebApp 管理器WebApp Manager 在编辑 WebApp 时具有额外的设置,包括私人浏览和导航栏。
+
+#### ⭐ 新的 ISO 验证工具
+
+在大多数情况下,人们想验证一个下载的 ISO 镜像的完整性。
+
+因此,更简单方便的方法是,你可以通过右击 ISO 镜像,选择 “验证Verify”来完成。这就打开了 ISO 验证ISO Verification工具,你可以在那里填写必要的细节来进行验证。
+
+![][9]
+
+值得注意的是,对于 Linux Mint 和 Ubuntu 的 ISO 镜像,SHA256sum 和 GPG 文件的 URL 是自动填写的。
+
+#### 🎨 Cinnamon 5.6 桌面
+
+Linux Mint 的旗舰桌面环境也有一些微小的视觉更新和变化。
+
+在桌面的面板上,你会注意到主菜单和应用程序之间有一个细细的分隔线。像 Windows 一样,在最右边的角落里增加了一个新的角栏小程序,可配置,并支持创新的操作。
+
+![][10]
+
+说到视觉效果,默认的文件管理器 Nemo 已经经历了一些变化:
+
+- 当选择一个或多个项目时,只有名称保持高亮,而图标则没有。
+- 日期现在以等宽字体显示。
+- 路径栏也得到了一些改进。
+
+你可以毫不费力地访问 显示设置Display Settings,因为它的快捷方式已被添加到桌面的上下文菜单中。
+
+### 🛠️ 其他改进措施
+
+其他两个桌面环境已经分别更新到 **MATE 1.26** 和 **XFCE 4.16**。
+
+美术作品集也得到了扩展,包括几张很酷的壁纸。
+
+虽然我们只介绍了这个版本的主要亮点,但你可以通过 [官方更新日志][11] 了解更多细节。
+
+### 获得 Linux Mint 21.1
+
+现有的 Mint 用户应该得到通知,可以通过更新管理器轻松升级到 Mint 21.1。
+
+那些想要重新安装 Linux Mint 的人可以从 [官方下载页面][12] 获得 ISO。
+
+> **[Linux Mint 21.1][12]**
+
+如果你的网络较慢或不稳定,你也可以 [使用 Torrent 链接][13]。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/linux-mint-21-1-release/
+
+作者:[Rishabh Moharir][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/rishabh/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-mint-21-1-release.png
+[2]: https://news.itsfoss.com/content/images/2022/12/Home.png
+[3]: https://news.itsfoss.com/content/images/2022/12/bibata.png
+[4]: https://news.itsfoss.com/content/images/2022/12/Themes.png
+[5]: https://news.itsfoss.com/content/images/2022/12/linux-mint-new-look.png
+[6]: https://news.itsfoss.com/content/images/2022/12/Drivemanager1.png
+[7]: https://news.itsfoss.com/content/images/2022/12/DriverManager2.png
+[8]: https://news.itsfoss.com/content/images/2022/12/Software_Manager.png
+[9]: https://news.itsfoss.com/content/images/2022/12/ISOVerify.png
+[10]: https://news.itsfoss.com/content/images/2022/12/Folder.png
+[11]: https://www.linuxmint.com/rel_vera_cinnamon_whatsnew.php
+[12]: https://www.linuxmint.com/download.php
+[13]: https://linuxmint.com/torrents/
diff --git a/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md b/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
deleted file mode 100644
index 965f20f5cb..0000000000
--- a/sources/news/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
+++ /dev/null
@@ -1,152 +0,0 @@
-[#]: subject: "Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements"
-[#]: via: "https://news.itsfoss.com/linux-mint-21-1-release/"
-[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements
-======
-
-Linux Mint 21.1 comes with a new default theme and several other refinements.
-
-![Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements][1]
-
-Linux Mint 21 has received its first update as **Linux Mint 21.1 "Vera."** If you want to learn about Linux Mint 21 "Venessa," our official review should get you up to speed:
-
-This release is similar to the usual point releases. However, it includes various changes to the look, feel, and features that could look subtle but will affect the user experience.
-
-Let's take a look at the major highlights. We focus on Linux Mint's Cinnamon edition.
-
-### Linux Mint 21.1 Vera: What's New?
-
-The release will continue to use the **Linux 5.15 LTS** kernel under the hood, based on **Ubuntu 22.04 LTS**.
-
-![][2]
-
-#### 👀 A Refreshed User Interface
-
-When you first boot into the desktop, you should quickly notice the new look of the cursor. It features the new Bibata theme by default.
-
-![linux mint's new cursor icon][3]
-
-The cursor icon theme inventory has new options like Yaru, Breeze, and GoogleDot along with the traditional DMZ theme.
-
-![][4]
-
-Users will also find a unique set of app icon themes to choose from in addition to the traditional Mint-X, Mint-Y, and Mint-Legacy themes. This includes Papirus, Breeze, Numix, and Yaru.
-
-![linux mint aqua theme][5]
-
-Another interesting thing you may notice is the default accent color isn't the traditional green anymore, and that's because the **desktop theme is now switched to Aqua**. The accent color library offers more vibrant colors and gives the desktop a clean and attractive look.
-
-For those who want the legacy look back, there exists a "**Mint-Y-Legacy**" option in the theme options.
-
-Moreover, the **Computer, Home, Networks, and Trash icons** previously visible on the desktop are removed by default and can be accessed in the file manager. The Home folder icon is displayed on the panel instead. If you want to return the old arrangement, you can do so by heading to the **system****preferences**.
-
-#### ✨ Enhanced Drive Manager
-
-The Drive Manager no longer requests a password when you launch it since it runs in user mode.
-
-![linux mint driver manager offline][6]
-
-There are dedicated screens for offline connectivity and when a live USB is detected. You should also find the mounting of the live USB smoother than before.
-
-![usb screen drive manager linux mint][7]
-
-There have been a couple of fixes to it as well.
-
-Packagekit now purges removed drivers and packages. This solves a commonly known issue where users want to switch between different versions of the NVIDIA driver.
-
-Additionally, Debconf has been patched to address an issue for NVIDIA drivers when Secure Boot was enabled.
-
-#### 👨💻 Flatpak Integration and Software Manager Improvements
-
-It is nice to see that both the **Software Manager** and **Update Manager** have received support for Flatpaks.
-
-The procedure for installing and updating Flatpak applications is not very different and should be a breeze.
-
-![][8]
-
-For instance, the Software Manager has been updated to help differentiate which version of an app, Flatpak, or system the user is looking at. There's also a drop-down box for switching between the system and Flatpak versions of an app.
-
-Uninstalling Flatpak applications and shortcuts doesn't require a password anymore. The same applies when multiple operations are being performed.
-
-#### 🔨 Improvements for XApps
-
-Users can now configure the login screen's cursor size and theme. Previously, these settings were set globally.
-
-On the other hand, Warpinator gets better security while the WebApp Manager features additional settings when editing Web Apps, including private browsing and a navigation bar.
-
-#### ⭐ New ISO Verification Tool
-
-In most cases, one wants to verify the integrity of a downloaded ISO image.
-
-Thus to make things easier, you can do this by right-clicking on the ISO image and selecting "**Verify**." This opens up the ISO Verification tool, where you can fill in the necessary details for the verification process.
-
-![][9]
-
-A cool thing to note is that the URLs to the SHA256sum and GPG files are filled in automatically for Linux Mint and Ubuntu ISO images.
-
-#### 🎨 Cinnamon 5.6 Desktop
-
-Linux Mint's flagship desktop environment has received minor visual updates and changes.
-
-On the desktop's panel, you will notice a thin separator between the home menu and the applications. Like Windows, a new corner bar applet has been added to the right-most corner, configurable, and supports innovative actions.
-
-![][10]
-
-Coming to the visuals, Nemo - the default file manager - has undergone a few changes.
-
-- When selecting one or more items, only the name remains highlighted, while the icon doesn't.
-- The dates are now displayed in monospace fonts.
-- The path bar has also received some improvements.
-
-You can effortlessly access the Display Settings as its shortcut has been added to the desktop's context menu.
-
-### 🛠️ Other Improvements
-
-The other two desktop environments have been updated to **MATE 1.26 and XFCE 4.16**, respectively.
-
-The artwork collection has also been expanded to include several cool wallpapers.
-
-While we've only covered key highlights of this release, you can go through the [official changelog][11] for more details.
-
-### Getting Linux Mint 21.1
-
-Existing Mint users should be notified and can easily upgrade to Mint 21.1 through the update manager.
-
-Those looking for a fresh installation of Linux Mint can get the ISO from the [official download page][12].
-
-[Linux Mint 21.1][12]
-
-You can also [get torrent links][13] if you have slow or inconsistent internet.
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/linux-mint-21-1-release/
-
-作者:[Rishabh Moharir][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/rishabh/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/linux-mint-21-1-release.png
-[2]: https://news.itsfoss.com/content/images/2022/12/Home.png
-[3]: https://news.itsfoss.com/content/images/2022/12/bibata.png
-[4]: https://news.itsfoss.com/content/images/2022/12/Themes.png
-[5]: https://news.itsfoss.com/content/images/2022/12/linux-mint-new-look.png
-[6]: https://news.itsfoss.com/content/images/2022/12/Drivemanager1.png
-[7]: https://news.itsfoss.com/content/images/2022/12/DriverManager2.png
-[8]: https://news.itsfoss.com/content/images/2022/12/Software_Manager.png
-[9]: https://news.itsfoss.com/content/images/2022/12/ISOVerify.png
-[10]: https://news.itsfoss.com/content/images/2022/12/Folder.png
-[11]: https://www.linuxmint.com/rel_vera_cinnamon_whatsnew.php
-[12]: https://www.linuxmint.com/download.php
-[13]: https://linuxmint.com/torrents/
From 7c88702098a2598d68e7449205d39d1ab2d753e6 Mon Sep 17 00:00:00 2001
From: yzuowei
Date: Mon, 26 Dec 2022 18:16:42 +0800
Subject: [PATCH 140/266] translating
---
sources/tech/20220729 Learn Rust by debugging Rust.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20220729 Learn Rust by debugging Rust.md b/sources/tech/20220729 Learn Rust by debugging Rust.md
index 0abe7c217e..13c9c6f79f 100644
--- a/sources/tech/20220729 Learn Rust by debugging Rust.md
+++ b/sources/tech/20220729 Learn Rust by debugging Rust.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/7/learn-rust-rustlings"
[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "yzuowei"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 2fb3cb6700bfd722e6dd7e7319ba358ecb5acdb0 Mon Sep 17 00:00:00 2001
From: toknow-gh
Date: Mon, 26 Dec 2022 20:16:57 +0800
Subject: [PATCH 141/266] Translating
talk\20200406 How to Use a Differential Analyzer (to Murder People).md
---
...406 How to Use a Differential Analyzer (to Murder People).md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md b/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md
index 440d3fa159..33c7b47d73 100644
--- a/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md
+++ b/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md
@@ -2,7 +2,7 @@
[#]: via: "https://twobithistory.org/2020/04/06/differential-analyzer.html"
[#]: author: "Two-Bit History https://twobithistory.org"
[#]: collector: "lujun9972"
-[#]: translator: " "
+[#]: translator: "toknow-gh"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From fab40efe8cc5df7e5d934350cc9779b1750aa04f Mon Sep 17 00:00:00 2001
From: geekpi
Date: Tue, 27 Dec 2022 09:43:48 +0800
Subject: [PATCH 142/266] translated
---
...Try this Python-based file manager on Linux.md | 108 ------------------
...Try this Python-based file manager on Linux.md | 108 ++++++++++++++++++
2 files changed, 108 insertions(+), 108 deletions(-)
delete mode 100644 sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
create mode 100644 translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
diff --git a/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
deleted file mode 100644
index 6a349bd658..0000000000
--- a/sources/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
+++ /dev/null
@@ -1,108 +0,0 @@
-[#]: subject: "Try this Python-based file manager on Linux"
-[#]: via: "https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator"
-[#]: author: "Seth Kenlon https://opensource.com/users/seth"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Try this Python-based file manager on Linux
-======
-
-Dragonfly Navigator is a general-purpose file manager written in Python and Qt. It's easy to install, easy to use, and a great example of what Python can do.
-
-Python is a popular language for several reasons, but I think one of its primary strengths is that it's equally useful to beginner-level programmers and to experienced coders. There's something exciting about a language you can take from [drawing basic geometric shapes][1] to [scraping the web][2] to programming a zombie apocalypse [video game][3], or writing desktop applications you can use every day. And that's what Dragonfly Navigator is: a desktop utility that everyone can use.
-
-### Installing Dragonfly Navigator
-
-To install Dragonfly Navigator, first download the source code from its [Git repository][4]. If you're on Debian Linux or similar, download the `.deb` file. If you're using Fedora, CentOS, Mageia, OpenMandriva, or similar, then download the `.tar.gz` file.
-
-Dragonfly Navigator has a few dependencies. Because you aren't installing it through your package manager, it's up to you to resolve those. There are just two, so use your package manager (`dnf` or `apt`) to find and install them:
-
-- PyQt5, also called `python-qt5`
-- Python PIL, also called `pillow`
-
-### Launching Dragonfly Navigator
-
-To launch Dragonfly Navigator, either install the `.deb` file (on Debian-based systems) or unarchive the `.tar.gz` file:
-
-```
-$ tar xvf dragonfly*gz
-```
-
-On Debian-based systems, Dragonfly Navigator appears in your application menu. ON other systems, you must launch it manually unless you [manually install it][5].
-
-For now, I'm not installing it, so I launch it manually:
-
-```
-$ cd dragonfly
-$ ./dragonfly
-```
-
-![Dragonfly Navigator is a two-panel file manager][6]
-
-### Dual pane
-
-Dragonfly Navigator is a two-panel file manager, meaning that it's always showing you two directories. At launch, both directories happen to be your home directory. You can browse through files and folders in either panel. They function exactly the same, and it only matters which panel you're "in" when you start copying or moving files.
-
-### Open a directory
-
-To open a directory, double-click it. By default, the directory opens in that same pane. If you want to utilize the two-panel layout, though, hold down the **Ctrl** key as you double-click to display its contents in the other panel.
-
-### Open a file
-
-To open a file, double-click or right-click on it.
-
-Yes, you can right-click a file to open it. That takes some getting used to, if you're used to a right-click bringing up a contextual menu. There is no contextual menu in Dragonfly Navigator, though, and you might be surprised at how much time you feel like you're saving yourself when you reduce the very common action of opening a file to just one click. It may seem silly now, but trust me you'll grow to cherish it.
-
-### Quick preview
-
-Some files are available for a quick preview so you don't have to open them in any particular application. To preview a file, hover your mouse over it and press the **Alt** key on your keyboard. A preview appears in the opposite panel.
-
-![The second panel of Dragonfly Navigator can be used as a preview pane.][7]
-
-### Copying and moving files
-
-To copy or move a file from one directory to another (or a directory to a directory), there are a few steps.
-
-- In one panel, navigate to the destination directory. This is the location you want to copy a file _to_.
-- In the other panel, select the file you want to copy.
-- Click the **Copy** button in the middle strip of Dragonfly Navigator.
-
-For moving a file, follow the same steps but click the **Move** button instead.
-
-If you're not used to a dual-panel file manager, this feels unfamiliar at first. But if you think about it, there are several steps required to copy a file in your usual file manager (find the file, open another window, drag-and-drop, and so on.) After you do it a few times, it becomes second nature.
-
-### Selecting files
-
-Normally, you click a file or folder to make it your active selection. That's probably no different than your current file manager, or at least to some file manager you've used in the past.
-
-To select multiple items in a range, click one file, and then hold the **Shift** key and click another file. All items between the two files you clicked are also selected.
-
-To select multiple arbitrary files, hold the **Ctrl** key and click on the files you want selected.
-
-### The power of Qt and Python
-
-The Qt toolkit is a powerful programming utility, and Python is capable of creating great applications with it. I've only covered the basics of Dragonfly Navigator in this article, so download it, read the docs, click around, explore it, and maybe you'll have found a fun new file manager.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator
-
-作者:[Seth Kenlon][a]
-选题:[lkxed][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/seth
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/17/10/python-101#turtle
-[2]: https://opensource.com/article/20/5/web-scraping-python
-[3]: https://opensource.com/downloads/python-gaming-ebook
-[4]: https://github.com/suncore/dflynav/releases
-[5]: https://opensource.com/article/18/1/how-install-apps-linux
-[6]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator.webp
-[7]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator-preview.webp
diff --git a/translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
new file mode 100644
index 0000000000..1751281710
--- /dev/null
+++ b/translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
@@ -0,0 +1,108 @@
+[#]: subject: "Try this Python-based file manager on Linux"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+在 Linux 上试试这个基于 Python 的文件管理器
+======
+
+Dragonfly Navigator 是用 Python 和 Qt 编写的通用文件管理器。它易于安装和使用,并且是 Python 可以做什么的一个很好的例子。
+
+Python 是一种流行的语言有几个原因,但我认为它的主要优势之一是它对初级程序员和有经验的编码人员同样有用。你可以从一门语言中获得一些令人兴奋的东西,从[绘制基本几何形状][1]到[抓取网页][2]再到编写僵尸启示录[游戏][3],或者编写你每天都可以使用的桌面应用。这就是 Dragonfly Navigator:一个人人都可以使用的桌面程序。
+
+### 安装 Dragonfly Navigator
+
+要安装 Dragonfly Navigator,首先从 [Git 仓库][4]下载源代码。如果你使用的是 Debian Linux 或类似软件,请下载 `.deb` 文件。如果你使用的是 Fedora、CentOS、Mageia、OpenMandriva 或类似软件,请下载 `.tar.gz` 文件。
+
+Dragonfly Navigator 只有很少的依赖。因为你不是通过包管理器安装它,所以由你来解决这些问题。它只有两个依赖,所以使用你的包管理器(`dnf` 或 `apt`)找到并安装它们:
+
+- PyQt5,也称为 `python-qt5`
+- Python PIL,也称为 `pillow`
+
+### 启动 Dragonfly Navigator
+
+要启动 Dragonfly Navigator,请安装 `.deb` 文件(在基于 Debian 的系统上)或解压缩 `.tar.gz` 文件:
+
+```
+$ tar xvf dragonfly*gz
+```
+
+在基于 Debian 的系统上,Dragonfly Navigator 出现在你的应用菜单中。在其他系统上,你必须手动启动它,除非你[手动安装][5]。
+
+现在,我没有安装它,所以我手动启动它:
+
+```
+$ cd dragonfly
+$ ./dragonfly
+```
+
+![Dragonfly Navigator is a two-panel file manager][6]
+
+### 双面板
+
+Dragonfly Navigator 是一个双面板文件管理器,这意味着它总是向你显示两个目录。在启动时,这两个目录恰好是你的主目录。你可以在任一面板中浏览文件和文件夹。它们的功能完全相同,只有当你开始复制或移动文件时你“位于”哪个面板中才重要。
+
+### 打开目录
+
+要打开目录,请双击它。默认情况下,该目录在同一面板中打开。但是,如果你想使用双面板布局,请在双击时按住 **Ctrl** 键以在另一个面板中显示其内容。
+
+### 打开文件
+
+要打开文件,请双击或右键单击它。
+
+是的,你可以右键单击文件将其打开。如果你习惯于右键单击调出上下文菜单,那么这需要一些时间来适应。不过,Dragonfly Navigator 中没有上下文菜单,你可能会惊讶地发现,当你将打开文件这一非常常见的操作减少到只需单击一次时,你会觉得自己节省了多少时间。现在可能看起来很傻,但相信我,你会逐渐珍惜它的。
+
+### 快速预览
+
+某些文件可用于快速预览,因此你不必在任何特定应用中打开它们。要预览文件,请将鼠标悬停在文件上,然后按键盘上的 **Alt** 键。预览出现在对面的面板中。
+
+![The second panel of Dragonfly Navigator can be used as a preview pane.][7]
+
+### 复制和移动文件
+
+要将文件从一个目录复制或移动到另一个目录(或从一个目录到另一个目录),有几个步骤。
+
+- 在一个面板中,进入目标目录。这是你要将文件复制到的位置。
+- 在另一个面板中,选择要复制的文件。
+- 单击 Dragonfly Navigator 中间条中的**复制**按钮。
+
+要移动文件,请按照相同的步骤操作,但要单击**移动**按钮。
+
+如果你不习惯双面板文件管理器,一开始会觉得很陌生。但是你仔细想想,在你常用的文件管理器中复制一个文件需要几个步骤(找到文件,打开另一个窗口,拖放等等)。做几次之后,它 成为第二天性。
+
+### 选择文件
+
+通常,你单击一个文件或文件夹以使其成为你的活动选择。这可能与你当前的文件管理器没有什么不同,或者至少与你过去使用过的某些文件管理器没有什么不同。
+
+要选择一个范围内的多个项目,请单击一个文件,然后按住 **Shift** 键并单击另一个文件。你单击的两个文件之间的所有项目也被选中。
+
+要选择多个任意文件,请按住 **Ctrl** 键并单击要选择的文件。
+
+### Qt 和 Python 的力量
+
+Qt 工具包是一个强大的编程程序,Python 能够用它创建出色的应用。我在本文中只介绍了 Dragonfly Navigator 的基础知识,所以请下载它,阅读文档,点击并探索它,也许你会发现一个有趣的新文件管理器。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/17/10/python-101#turtle
+[2]: https://opensource.com/article/20/5/web-scraping-python
+[3]: https://opensource.com/downloads/python-gaming-ebook
+[4]: https://github.com/suncore/dflynav/releases
+[5]: https://opensource.com/article/18/1/how-install-apps-linux
+[6]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator.webp
+[7]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator-preview.webp
From 87137531cd08b29423e0959e146ad424d6a77166 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Tue, 27 Dec 2022 09:48:00 +0800
Subject: [PATCH 143/266] translating
---
.../20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
index 1d664feba4..4761597588 100644
--- a/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
+++ b/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
@@ -2,7 +2,7 @@
[#]: via: "https://itsfoss.com/downgrade-flatpak-packages/"
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 830793c808b7c3125c3b045a6e8e1ac8aca9f14f Mon Sep 17 00:00:00 2001
From: Donkey
Date: Tue, 27 Dec 2022 09:54:39 +0800
Subject: [PATCH 144/266] translating
---
.../tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md b/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md
index 02f5fa8a79..60d1e2dd9f 100644
--- a/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md
+++ b/sources/tech/20221121.1 ⭐️⭐️ 7 Git tips for technical writers.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/11/git-tips-technical-writers"
[#]: author: "Maximilian Kolb https://opensource.com/users/kolb"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "Donkey-Hao"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
@@ -110,7 +110,7 @@ via: https://opensource.com/article/22/11/git-tips-technical-writers
作者:[Maximilian Kolb][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
+译者:[Donkey-Hao](https://github.com/Donkey-Hao)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From a0f54db92238673b44793bf8cfe44f6ee6cad9fe Mon Sep 17 00:00:00 2001
From: duoluoxiaosheng <554765662@qq.com>
Date: Tue, 27 Dec 2022 16:28:00 +0800
Subject: [PATCH 145/266] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90=20?=
=?UTF-8?q?(#28322)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* 12261703
* 120262209
* renamed: "sources/tech/20221221.3 \342\255\220\357\270\217\342\255\220\357\270\217 Open source solutions for EV charging.md" -> "translated/tech/20221221.3 \342\255\220\357\270\217\342\255\220\357\270\217 Open source solutions for EV charging.md"
* modified: "translated/tech/20221221.3 \342\255\220\357\270\217\342\255\220\357\270\217 Open source solutions for EV charging.md"
* 优化个别翻译
* 更新
Co-authored-by: wangcharley
---
...️⭐️ Open source solutions for EV charging.md | 76 -------------------
...️⭐️ Open source solutions for EV charging.md | 76 +++++++++++++++++++
2 files changed, 76 insertions(+), 76 deletions(-)
delete mode 100644 sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
create mode 100644 translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
diff --git a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
deleted file mode 100644
index 45bf829d5e..0000000000
--- a/sources/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
+++ /dev/null
@@ -1,76 +0,0 @@
-[#]: subject: "Open source solutions for EV charging"
-[#]: via: "https://opensource.com/article/22/12/open-source-ev-charging"
-[#]: author: "Joshua Pearce https://opensource.com/users/jmpearce"
-[#]: collector: "lkxed"
-[#]: translator: "duoluoxiaosheng"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Open source solutions for EV charging
-======
-
-Maybe you hate pumping gas in the cold (or heat), or you care about the environment. Maybe the latest gas prices and general inflation has you thinking more about stretching your money. Perhaps you simply think electric vehicles (EVs) look cool. No matter the reason, you're excited about your next vehicle being an EV and you're not alone! The EV market share is set to [expand to 30% by 2040][1]. The [US government provides a handy comparison tool][2] to show that the cost of ownership of an EV easily beats owning and operating fossil fuel vehicles. Despite this, EV charging costs can still hit you hard in your wallet.
-
-你讨厌在寒冷或者酷热的时候加油,你关心环境问题。最新的油价和通货膨胀让你更多考虑挣钱的问题
-
-One of the most elegant ways to solve cost problems in general is to apply open source principles to accelerate innovation. Fortunately for you, this has been done in the EV charging area to find a way to get low-cost electricity and low-cost chargers.
-
-To control the costs of EV charging, first you need low-cost electricity. In the old days, that would mean going from oil to coal, which is not a step up. Today, as it turns out, [solar photovoltaic (PV)][3] devices that convert sunlight directly into electricity normally provide the lowest-cost electricity. Coal companies are going bankrupt because they can no longer compete with clean solar power. This is also why [solar power is seeing explosive growth all over the world][4]. Many homeowners are putting [solar panels on their roofs][5] or on ground mounts in the backyard to cover all of their home’s electric needs. But how can you charge your EV with solar energy if you have limited roof area or a small backyard?
-
-### Open source PV parking canopy
-
-One approach that major corporations are taking is to make a PV canopy over their parking lots. If you want to do this yourself, a new [study][6] provides a full mechanical and economic analysis of three novel open source PV canopy systems:
-
-- Use an exclusively wood, single-parking-spot spanning system
-- Use a wood and aluminum double-parking-spot spanning system
-- Use a wood and aluminum cantilevered system
-
-The designs are presented as 5-by-6 stall builds, but all three systems are scalable to any amount of parking spots required. This includes a 1-stall 6kW system to charge a single car at home (as shown below). All of the racks are rated for a 25-year expected lifetime to match the standard PV warranty.
-
-![Image of a single car PV canopy.][7]
-
-The open source PV canopies are all designed to withstand a brutal Canadian winter. They also follow Canada’s strict building codes. So if you live anywhere else, the system as designed should still work for you. The complete [designs][8]and bill of materials of the canopies are provided, along with basic instructions. They are released with an open source license that enables anyone to fabricate them following the spirit of the free book about DIY solar power collectors [_To Catch the Sun_][9].
-
-The results of the previously mentioned [study][6] show that open source designs are much less expensive than proprietary products. Single-span systems provide cost savings of 82-85%, double-span systems save 43-50%, and cantilevered systems save 31-40%.
-
-Most importantly, the designs give you more than enough energy (if you have a normal commute) to cover your charging needs. In the first year of operation, PV canopies can provide 157% of the energy needed to charge the least efficient EV currently on the market.
-
-![Image of an OpenEVSE charging station.][10]
-
-### Open source EV chargers
-
-Another way to cut the cost of EV ownership is to install an open source EV charger. [OpenEVSE][11] is an Arduino-based charging station composed of [open source software][12] and hardware which can be made DIY-style. They are small, lightweight, and portable, so you can use them at home or on the road.
-
-OpenEVSE powers charging stations for many EV manufacturers all over the world. You can adapt it to fit your requirements. OpenEVSE is now quite mature and supports advanced features including adjustable current, temperature monitoring, and a real-time power display. You can buy the hardware pre-assembled and ready to go. If you want to save more money (and have more fun) buy a kit and build it yourself.
-
-![Image of the OpenEVSE kit.][13]
-
-I hope to see more designs of EV power solutions in the future. Keep your eyes open, roll up your sleeves for some DIY, and enjoy assembling your open source, solar-powered EV charging solutions!
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/open-source-ev-charging
-
-作者:[Joshua Pearce][a]
-选题:[lkxed][b]
-译者:[duoluoxiaosheng](https://github.com/duoluoxiaosheng)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/jmpearce
-[b]: https://github.com/lkxed
-[1]: https://about.bnef.com/electric-vehicle-outlook/
-[2]: https://fueleconomy.gov/feg/Find.do?action=sbsSelect
-[3]: https://opensource.com/article/21/11/open-source-solar-power
-[4]: https://www.alliedmarketresearch.com/photovoltaic-market
-[5]: https://opensource.com/article/22/12/open-source-solar-power-home
-[6]: https://doi.org/10.3390/technologies10060114
-[7]: https://opensource.com/sites/default/files/2022-12/Single%20car%20open%20source%20PV%20canopy.png
-[8]: https://www.appropedia.org/Open-source_Photovoltaic_-_Electrical_Vehicle_Carport_Designs
-[9]: https://tocatchthesun.com/
-[10]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20charging%20an%20electric%20car.png
-[11]: https://openevse.com/index.html
-[12]: https://github.com/OpenEVSE
-[13]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20kit.png
diff --git a/translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
new file mode 100644
index 0000000000..6121c46403
--- /dev/null
+++ b/translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
@@ -0,0 +1,76 @@
+[#]: subject: "Open source solutions for EV charging"
+[#]: via: "https://opensource.com/article/22/12/open-source-ev-charging"
+[#]: author: "Joshua Pearce https://opensource.com/users/jmpearce"
+[#]: collector: "lkxed"
+[#]: translator: "duoluoxiaosheng"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+开源电动汽车充电解决方案
+======
+
+也许你讨厌在寒冷或者酷热的时候加油,也许你关心环境问题。也许不断上涨的油价和通胀让你不得不考虑怎么更合理的安排开支。也许你只是认为电动汽车看起来很酷。不管什么原因,你都会因为即将拥有一辆电动汽车而感到激动,激动的不仅仅只有你。电动汽车的市场份额将在 [2040 年增长到 30%][1] 。[美国政府提供了一个简易的比较工具][2],用来展示维护一辆电动汽车的花费比维护一辆化石燃料汽车要少很多。尽管如此,电动汽车的充电费用仍然会给你的钱包带来沉重的负担。
+
+通常,通过开源原则来加速创新是一种优雅的解决成本问题的方式。幸运的是,在电动汽车充电领域已经找到了一种获得低成本电力和充电桩的方法。
+
+为了控制电动汽车充电的成本,首先,你需要低成本的电力。在过去,这意味着从石油倒退到煤炭。如今,能将太阳能直接转化为电能的 [光伏发电][3]solar photovolataic (PV) 设备提供的电力通常被认为成本是最低的。煤炭公司正在因为无法继续与清洁的太阳能竞争而破产。这也是[太阳能发电在世界各地都爆炸性增长][4]的原因。许多房主把[太阳能电池板放到他们的房顶][5]或者后院的支架上,以满足他们家庭的电力需求。但是,如果你的屋顶面积有限或者后院很小,你怎样才能使用太能能给你的电动汽车充电呢?
+
+### 开源光伏停车篷
+
+大型企业正在采取的一个方法是在他们的停车场上建造一个光伏顶篷。如果你自己想做一个,一个新的[研究][6]提供了三种新型开源光伏顶篷系统全面的机械和经济方面的分析。
+
+- 使用纯木材的单一停车位横跨系统
+- 使用木材和铝的双停车位横跨系统
+- 使用木材和铝的悬臂系统
+
+这些设计是以 5 * 6 个停车位的样式呈现的,但是这三个系统都可以扩展到任何需要的停车位数量。包括一个 6kW 的家用单车充电系统(如下图)。所有的支架都有25年的预期寿命来配合标准的光伏保修。
+
+![Image of a single car PV canopy.][7]
+
+这些开源光伏顶篷都是为了抵御加拿大残酷的冬天而设计的,它们遵循加拿大严格的建筑规范。所以,不管你住在其他任何地方,这些系统的设计都仍然可以为你工作。顶篷的[完整设计][8]以及材料清单,包括基本说明都有提供。它们以开放源码许可的方式发布,保证任何人都可以依照免费的关于 DIY 太阳能收集器的书籍 [《拥抱太阳》][9]_To Catch the Sun_制作它。
+
+前面提到的[研究][6]结果显示,开源设计比专利产品的成本低很多。单跨系统可节省成本 82% 到 85%,双跨系统节省成本 43% 到 50%,悬臂系统节省 31% 到 40% 。
+
+最重要的是,这些设计给你提供了足够多的能源(如果你只是正常通勤)来满足你的充电需求。在运行的第一年,光伏顶篷可以提供目前市场上效率最低的电动汽车充电所需电量的 157% 。
+
+![Image of an OpenEVSE charging station.][10]
+
+### 开源电动汽车充电桩
+
+减少电动车维护成本的另一个办法是安装一个开源的电动车充电桩。[OpenEVSE][11] 是一个基于 Arduino 的充电桩,由[开源软件][12]和硬件组成,可以以 DIY 的方式制作。它们体积小,重量轻,便于携带,你可以在家里或者旅途上使用它们。
+
+OpenEVSE 为世界各地的许多电动车制造商提供充电站。你可以根据自己的需求调整它。OpenEVSE 已经相当成熟,支持许多先进的功能,包括可调电流,温度检测和实时功率显示。你可以购买预先组装好的硬件马上体验。如果你想体验更多的乐趣节省更多的钱,可以购买一套套件自己动手制作。
+
+![Image of the OpenEVSE kit.][13]
+
+我希望未来可以看到更多关于电动汽车充电解决方案的设计.睁大眼睛,撸起袖子加油干,享受组装你的开源太阳能充电桩的乐趣。
+
+
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/open-source-ev-charging
+
+作者:[Joshua Pearce][a]
+选题:[lkxed][b]
+译者:[duoluoxiaosheng](https://github.com/duoluoxiaosheng)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/jmpearce
+[b]: https://github.com/lkxed
+[1]: https://about.bnef.com/electric-vehicle-outlook/
+[2]: https://fueleconomy.gov/feg/Find.do?action=sbsSelect
+[3]: https://opensource.com/article/21/11/open-source-solar-power
+[4]: https://www.alliedmarketresearch.com/photovoltaic-market
+[5]: https://opensource.com/article/22/12/open-source-solar-power-home
+[6]: https://doi.org/10.3390/technologies10060114
+[7]: https://opensource.com/sites/default/files/2022-12/Single%20car%20open%20source%20PV%20canopy.png
+[8]: https://www.appropedia.org/Open-source_Photovoltaic_-_Electrical_Vehicle_Carport_Designs
+[9]: https://tocatchthesun.com/
+[10]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20charging%20an%20electric%20car.png
+[11]: https://openevse.com/index.html
+[12]: https://github.com/OpenEVSE
+[13]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20kit.png
From 10a20d2eccd74385f9c552b16ed502e3d908908d Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Tue, 27 Dec 2022 17:18:07 +0800
Subject: [PATCH 146/266] RP
@duoluoxiaosheng
https://linux.cn/article-15385-1.html
---
...️⭐️ Open source solutions for EV charging.md | 33 ++++++++++---------
1 file changed, 18 insertions(+), 15 deletions(-)
rename {translated/tech => published}/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md (65%)
diff --git a/translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/published/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
similarity index 65%
rename from translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
rename to published/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
index 6121c46403..aa952da127 100644
--- a/translated/tech/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
+++ b/published/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
@@ -3,34 +3,38 @@
[#]: author: "Joshua Pearce https://opensource.com/users/jmpearce"
[#]: collector: "lkxed"
[#]: translator: "duoluoxiaosheng"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15385-1.html"
开源电动汽车充电解决方案
======
+> 利用太阳能、硬件和开源来建立你自己的电动车充电站。
+
+![][0]
+
也许你讨厌在寒冷或者酷热的时候加油,也许你关心环境问题。也许不断上涨的油价和通胀让你不得不考虑怎么更合理的安排开支。也许你只是认为电动汽车看起来很酷。不管什么原因,你都会因为即将拥有一辆电动汽车而感到激动,激动的不仅仅只有你。电动汽车的市场份额将在 [2040 年增长到 30%][1] 。[美国政府提供了一个简易的比较工具][2],用来展示维护一辆电动汽车的花费比维护一辆化石燃料汽车要少很多。尽管如此,电动汽车的充电费用仍然会给你的钱包带来沉重的负担。
-通常,通过开源原则来加速创新是一种优雅的解决成本问题的方式。幸运的是,在电动汽车充电领域已经找到了一种获得低成本电力和充电桩的方法。
+通常,解决成本问题的最优雅的方法之一是应用开源原则来加速创新。幸运的是,在电动汽车充电领域已经找到了一种获得低成本电力和充电桩的方法。
-为了控制电动汽车充电的成本,首先,你需要低成本的电力。在过去,这意味着从石油倒退到煤炭。如今,能将太阳能直接转化为电能的 [光伏发电][3]solar photovolataic (PV) 设备提供的电力通常被认为成本是最低的。煤炭公司正在因为无法继续与清洁的太阳能竞争而破产。这也是[太阳能发电在世界各地都爆炸性增长][4]的原因。许多房主把[太阳能电池板放到他们的房顶][5]或者后院的支架上,以满足他们家庭的电力需求。但是,如果你的屋顶面积有限或者后院很小,你怎样才能使用太能能给你的电动汽车充电呢?
+为了控制电动汽车充电的成本,首先,你需要低成本的电力。在过去,这意味着从石油倒退到煤炭。如今,能将太阳能直接转化为电能的 [光伏发电][3]solar photovolataic(PV) 设备提供的电力通常被认为成本是最低的。煤炭公司正在因为无法继续与清洁的太阳能竞争而破产。这也是 [太阳能发电在世界各地都爆炸性增长][4] 的原因。许多房主把 [太阳能电池板放到他们的房顶][5] 或者后院的支架上,以满足他们家庭的电力需求。但是,如果你的屋顶面积有限或者后院很小,你怎样才能使用太能能给你的电动汽车充电呢?
### 开源光伏停车篷
-大型企业正在采取的一个方法是在他们的停车场上建造一个光伏顶篷。如果你自己想做一个,一个新的[研究][6]提供了三种新型开源光伏顶篷系统全面的机械和经济方面的分析。
+大型企业正在采取的一个方法是在他们的停车场上建造一个光伏顶篷。如果你自己想做一个,一个新的 [研究][6] 提供了三种新型开源光伏顶篷系统全面的机械和经济方面的分析。
- 使用纯木材的单一停车位横跨系统
- 使用木材和铝的双停车位横跨系统
- 使用木材和铝的悬臂系统
-这些设计是以 5 * 6 个停车位的样式呈现的,但是这三个系统都可以扩展到任何需要的停车位数量。包括一个 6kW 的家用单车充电系统(如下图)。所有的支架都有25年的预期寿命来配合标准的光伏保修。
+这些设计是以 5 * 6 个停车位的样式呈现的,但是这三个系统都可以扩展到任何需要的停车位数量。包括一个 6 千瓦的家用单车充电系统(如下图)。所有的支架都有 25 年的预期寿命来配合标准的光伏保修。
![Image of a single car PV canopy.][7]
-这些开源光伏顶篷都是为了抵御加拿大残酷的冬天而设计的,它们遵循加拿大严格的建筑规范。所以,不管你住在其他任何地方,这些系统的设计都仍然可以为你工作。顶篷的[完整设计][8]以及材料清单,包括基本说明都有提供。它们以开放源码许可的方式发布,保证任何人都可以依照免费的关于 DIY 太阳能收集器的书籍 [《拥抱太阳》][9]_To Catch the Sun_制作它。
+这些开源光伏顶篷都是为了抵御加拿大残酷的冬天而设计的,它们遵循加拿大严格的建筑规范。所以,不管你住在其他任何地方,这些系统的设计都仍然可以为你工作。顶篷的 [完整设计][8] 以及材料清单,包括基本说明都有提供。它们以开源许可的方式发布,保证任何人都可以依照关于 DIY 太阳能收集器的免费书籍 《[拥抱太阳][9]To Catch the Sun》 制作它。
-前面提到的[研究][6]结果显示,开源设计比专利产品的成本低很多。单跨系统可节省成本 82% 到 85%,双跨系统节省成本 43% 到 50%,悬臂系统节省 31% 到 40% 。
+前面提到的 [研究][6] 结果显示,开源设计比专利产品的成本低很多。单跨系统可节省成本 82% 到 85%,双跨系统节省成本 43% 到 50%,悬臂系统节省 31% 到 40% 。
最重要的是,这些设计给你提供了足够多的能源(如果你只是正常通勤)来满足你的充电需求。在运行的第一年,光伏顶篷可以提供目前市场上效率最低的电动汽车充电所需电量的 157% 。
@@ -38,15 +42,13 @@
### 开源电动汽车充电桩
-减少电动车维护成本的另一个办法是安装一个开源的电动车充电桩。[OpenEVSE][11] 是一个基于 Arduino 的充电桩,由[开源软件][12]和硬件组成,可以以 DIY 的方式制作。它们体积小,重量轻,便于携带,你可以在家里或者旅途上使用它们。
+减少电动车维护成本的另一个办法是安装一个开源的电动车充电桩。[OpenEVSE][11] 是一个基于 Arduino 的充电桩,由 [开源软件][12] 和硬件组成,可以以 DIY 的方式制作。它们体积小,重量轻,便于携带,你可以在家里或者旅途上使用它们。
OpenEVSE 为世界各地的许多电动车制造商提供充电站。你可以根据自己的需求调整它。OpenEVSE 已经相当成熟,支持许多先进的功能,包括可调电流,温度检测和实时功率显示。你可以购买预先组装好的硬件马上体验。如果你想体验更多的乐趣节省更多的钱,可以购买一套套件自己动手制作。
![Image of the OpenEVSE kit.][13]
-我希望未来可以看到更多关于电动汽车充电解决方案的设计.睁大眼睛,撸起袖子加油干,享受组装你的开源太阳能充电桩的乐趣。
-
-
+我希望未来可以看到更多关于电动汽车充电解决方案的设计。睁大眼睛,撸起袖子加油干,享受组装你的开源太阳能充电桩的乐趣。
--------------------------------------------------------------------------------
@@ -55,7 +57,7 @@ via: https://opensource.com/article/22/12/open-source-ev-charging
作者:[Joshua Pearce][a]
选题:[lkxed][b]
译者:[duoluoxiaosheng](https://github.com/duoluoxiaosheng)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -65,7 +67,7 @@ via: https://opensource.com/article/22/12/open-source-ev-charging
[2]: https://fueleconomy.gov/feg/Find.do?action=sbsSelect
[3]: https://opensource.com/article/21/11/open-source-solar-power
[4]: https://www.alliedmarketresearch.com/photovoltaic-market
-[5]: https://opensource.com/article/22/12/open-source-solar-power-home
+[5]: https://linux.cn/article-15374-1.html
[6]: https://doi.org/10.3390/technologies10060114
[7]: https://opensource.com/sites/default/files/2022-12/Single%20car%20open%20source%20PV%20canopy.png
[8]: https://www.appropedia.org/Open-source_Photovoltaic_-_Electrical_Vehicle_Carport_Designs
@@ -74,3 +76,4 @@ via: https://opensource.com/article/22/12/open-source-ev-charging
[11]: https://openevse.com/index.html
[12]: https://github.com/OpenEVSE
[13]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20kit.png
+[0]: https://img.linux.net.cn/data/attachment/album/202212/27/171530ayuyongagafyxp5o.jpg
\ No newline at end of file
From 6340e230f0e16a215c4d92da22a2eeeea27c30f9 Mon Sep 17 00:00:00 2001
From: yzuowei
Date: Tue, 27 Dec 2022 17:19:01 +0800
Subject: [PATCH 147/266] translated (#28323)
---
.../20220729 Learn Rust by debugging Rust.md | 242 ------------------
.../20220729 Learn Rust by debugging Rust.md | 242 ++++++++++++++++++
2 files changed, 242 insertions(+), 242 deletions(-)
delete mode 100644 sources/tech/20220729 Learn Rust by debugging Rust.md
create mode 100644 translated/tech/20220729 Learn Rust by debugging Rust.md
diff --git a/sources/tech/20220729 Learn Rust by debugging Rust.md b/sources/tech/20220729 Learn Rust by debugging Rust.md
deleted file mode 100644
index 13c9c6f79f..0000000000
--- a/sources/tech/20220729 Learn Rust by debugging Rust.md
+++ /dev/null
@@ -1,242 +0,0 @@
-[#]: subject: "Learn Rust by debugging Rust"
-[#]: via: "https://opensource.com/article/22/7/learn-rust-rustlings"
-[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe"
-[#]: collector: "lkxed"
-[#]: translator: "yzuowei"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Learn Rust by debugging Rust
-======
-Rustlings is an open source project by the Rust team that helps you learn Rust through the process of debugging.
-
-![Ferris the crab under the sea, unofficial logo for Rust programming language][1]
-
-Image by: Opensource.com
-
-In my previous [article about rustup][2], I showed you how to install the Rust toolchain. Well, what good is the toolchain if you won’t be using it to get more hands-on with Rust? Learning any language involves reading existing code and writing a lot of sample programs. That's a good way to become proficient in a language. However, there's a third way: debugging code.
-
-Learning through debugging involves trying to compile a pre-written (buggy) sample program, understanding the errors generated by the compiler, fixing the sample code, and then re-compiling it. Repeat that process until the code successfully compiles and runs.
-
-[Rustlings][3] is an open source project by the Rust team that helps you learn Rust through the process of debugging. It also provides you with a lot of hints along the way. If you're a beginner to Rust and have either started or completed reading the Rust book, then rustlings is the ideal next step. Rustlings helps you apply what you've learned from the book, and move to working on bigger projects.
-
-### Installing rustlings
-
-I'm using (and recommend) a Fedora machine to try rustlings, but any Linux distribution works. To install rustlings, you must download and run its install script. It's recommended that you do this as a normal user (not root) without any special privileges.
-
-Remember, for you to be able to use rustlings, you need the Rust toolchain available on your system. If you don't have that already, please refer to my [article on rustup][4].
-
-Once you're ready, download the installation script:
-
-```
-$ curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh > rustlings_install.sh
-$ file rustlings_install.sh
-rustlings_install.sh: Bourne-Again shell script, ASCII text executable
-```
-
-Inspect the script to learn what it does:
-
-```
-$ less rustlings_install.sh
-```
-
-And then run it to install:
-
-```
-$ bash rustlings_install.sh
-[...]
-Installing /home/tux/.cargo/bin/rustlings
-Installed package `rustlings v4.8.0 (/home/tux/rustlings)` (executable `rustlings`)
-All done!
-```
-
-Run 'rustlings' to get started.
-
-### Rustlings exercises
-
-The installation provides you with the `rustlings` command. Run it along with the `--help` flag to see what options are available.
-
-```
-$ rustlings --help
-```
-
-The installation script also clones the rustlings Git repository, and installs all the dependencies required to run the sample programs. You can view the sample programs within the exercises directory under `rustlings` :
-
-```
-$ cd rustlings
-$ pwd
-/home/tux/rustlings
-$ ls
-AUTHORS.md Cargo.toml CONTRIBUTING.md info.toml install.sh README.md target Cargo.lock CHANGELOG.md exercises install.ps1 LICENSE src tests
-$ ls -m exercises/
-advanced_errors, clippy, collections, conversions, enums, error_handling, functions, generics, if, intro, macros, mod.rs,
-modules, move_semantics, option, primitive_types, quiz1.rs, quiz2.rs, quiz3.rs, quiz4.rs, README.md,
-standard_library_types, strings, structs, tests, threads, traits, variables
-```
-
-### List all exercises from the command line
-
-The `rustlings` command provides you with a `list` command which displays each sample program, its complete path, and the status (which defaults to **pending**.)
-
-```
-$ rustlings list
-Name Path Status
-intro1 exercises/intro/intro1.rs Pending
-intro2 exercises/intro/intro2.rs Pending
-variables1 exercises/variables/variables1.rs Pending
-variables2 exercises/variables/variables2.rs Pending
-variables3 exercises/variables/variables3.rs Pending
-[...]
-```
-
-Near the end of the output, you're given a progress report so you can track your work.
-
-```
-Progress: You completed 0 / 84 exercises (0.00 %).
-```
-
-### View sample programs
-
-The `rustings list` command shows you what programs are available, so at any time you can view the code of those programs by copying the complete paths into your terminal as an argument for the [cat][5] or [less][6] commands:
-
-```
-$ cat exercises/intro/intro1.rs
-```
-
-### Verify your programs
-
-Now you can start debugging programs. You can do that using the `verify` command. Notice that rustlings chooses the first program in the list (`intro1.rs` ), tries to compile it, and succeeds:
-
-```
-$ rustlings verify
-Progress: [-----------------------------------] 0/84
-✅ Successfully ran exercises/intro/intro1.rs!
-
-You can keep working on this exercise,
-or jump into the next one by removing the `I AM NOT DONE` comment:
-
- 6 | // Execute the command `rustlings hint intro1` for a hint.
- 7 |
- 8 | // I AM NOT DONE
- 9 |
-```
-
-As you can see from the output, even though the sample code compiles, there's work yet to be done. Each sample program has the following comment in its source file:
-
-```
-$ grep "NOT DONE" exercises/intro/intro1.rs
-// I AM NOT DONE
-```
-
-Although the compilation of the first program worked fine, rustlings won't move to the next program until you remove the `I AM NOT DONE` comment.
-
-### Moving to the next exercise
-
-Once you have removed the comment from `intro1.rs`, you can move to the next exercise by running the `rustlings verify` command again. This time, you may notice that rustlings tries to compile the next program (`intro2.rs` ) in the series, but runs into an error. You're expected to debug that issue, fix it, and then move forward. This is a critical step, allowing you to understand why Rust says a program has bugs.
-
-```
-$ rustlings verify
-Progress: [>------------------------] 1/84
-⚠️ Compiling of exercises/intro/intro2.rs failed! Please try again. Here's the output:
-error: 1 positional argument in format string, but no arguments were given
- --> exercises/intro/intro2.rs:8:21
- |
-8 | println!("Hello {}!");
- | ^^
-
-error: aborting due to previous error
-```
-
-### Getting a hint
-
-Rustlings has a handy `hint` argument, which tells you exactly what's wrong with the sample program, and how to fix it. You can think of it as an add-on help option, in addition to what the compiler error message tells you.
-
-```
-$ rustlings hint intro2
-Add an argument after the format string.
-```
-
-Based on the above hint, fixing the program is easy. All you need to do is add an additional argument to the `println` statement. This diff should help you understand the changes:
-
-```
-< println!("Hello {}!", "world");
----
-> println!("Hello {}!");
-```
-
-Once you make that change, and removed the `NOT DONE` comment from the source code, you can run `rustlings verify` again to compile and run the code.
-
-```
-$ rustlings verify
-Progress: [>-------------------------------------] 1/84
-✅ Successfully ran exercises/intro/intro2.rs!
-```
-
-### Track progress
-
-You aren't going to finish all of the exercises in a day, and it's easy to lose track of where you left off. You can run the `list` command to see the status of your work.
-
-```
-$ rustlings list
-Name Path Status
-intro1 exercises/intro/intro1.rs Done
-intro2 exercises/intro/intro2.rs Done
-variables1 exercises/variables/variables1.rs Pending
-variables2 exercises/variables/variables2.rs Pending
-variables3 exercises/variables/variables3.rs Pending
-[...]
-```
-
-### Run specific exercises
-
-If you don't want to start from the beginning and skip a few exercises, rustlings allows you to focus on specific exercises using the `rustlings run` command. This runs a specific program without requiring the previous lesson to be verified. For example:
-
-```
-$ rustlings run intro2
-Hello world!
-✅ Successfully ran exercises/intro/intro2.rs
-$ rustlings run variables1
-```
-
-Typing exercise names can become tedious, but rustlings provides you with a handy `next` command so you can move to the next exercise in the series.
-
-```
-$ rustlings run next
-```
-
-### Alternative watch command
-
-If you don't want to keep typing `verify` after each modification you make, you can run the `watch` command in a terminal window, and then keep modifying the source code to fix issues. The `watch` command detects these modifications, and keeps re-compiling the program to see whether the issue has been fixed.
-
-```
-$ rustlings watch
-```
-
-### Learn by debugging
-
-The Rust compiler is known to provide very meaningful error messages, which helps you understand issues in your code. This usually leads to faster debugging. Rustlings is a great way to practice Rust, to get used to reading error messages, and understand the Rust language. Check out the recent features of Rustlings 5.0.0 on [GitHub][7].
-
-**[[ Practice programming with Rust. Download our Rust cheat sheet. ]][8]**
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/7/learn-rust-rustlings
-
-作者:[Gaurav Kamathe][a]
-选题:[lkxed][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/gkamathe
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/sites/default/files/lead-images/rust_programming_crab_sea.png
-[2]: https://opensource.com/article/22/6/rust-toolchain-rustup
-[3]: https://github.com/rust-lang/rustlings
-[4]: https://opensource.com/article/22/6/rust-toolchain-rustup
-[5]: https://opensource.com/article/19/2/getting-started-cat-command
-[6]: https://opensource.com/article/18/4/using-less-view-text-files-command-line
-[7]: https://github.com/rust-lang/rustlings/releases/tag/5.0.0
-[8]: https://opensource.com/downloads/rust-cheat-sheet
diff --git a/translated/tech/20220729 Learn Rust by debugging Rust.md b/translated/tech/20220729 Learn Rust by debugging Rust.md
new file mode 100644
index 0000000000..f725d789dc
--- /dev/null
+++ b/translated/tech/20220729 Learn Rust by debugging Rust.md
@@ -0,0 +1,242 @@
+[#]: subject: "Learn Rust by debugging Rust"
+[#]: via: "https://opensource.com/article/22/7/learn-rust-rustlings"
+[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe"
+[#]: collector: "lkxed"
+[#]: translator: "yzuowei"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+以调试 Rust 来学习 Rust
+======
+Rustlings 是由 Rust 团队维护的开源项目旨在帮助你通过调试代码来学习 Rust。
+
+![Ferris the crab under the sea, unofficial logo for Rust programming language][1]
+
+图片来源:Opensource.com
+
+在我上一篇[关于 rustup 的文章][2]中,我向你们展示了如何安装 Rust 工具链。但是,如果不能上手操作一下 Rust 的话下载工具链又有什么用?学习任何语言都包括阅读现有的代码和写很多的示例程序。这是精通一门语言的好方法。然而,我们还可以走第三条路:调试代码。
+
+通过调试来学习牵扯到尝试去编译一个已经写好的(满是漏洞的)示例程序,理解编译器生成的错误信息,修复示例代码,然后再重新编译。重复这个过程直到代码能够成功被编译并运行。
+
+[Rustlings][3] 是一个由 Rust 团队维护的开源项目旨在帮助你通过调试代码来学习 Rust。它也会一路为你提供提示。如果你是一名 Rust 初学者并且刚开始读或已经读完了 Rust 书,那么 rustlings 就是理想的下一步。Rustllings 帮助你将运用书中所学,并转向开发更大的项目。
+
+### 安装 rustlings
+
+我使用(并推荐)Fedora 电脑来体验 rustlings,但是任何 Linux 发行版都可以。要安装 rustlings,你必须下载并运行它的安装脚本。通常建议你以不具备任何特别权限的普通用户(非 root 用户)来运行脚本。
+
+记住,你需要 Rust 工具链来使用 rustlings。如果你还没有这些工具链,请参考我[关于 rustup 的文章][4]。
+
+当你准备好时,下载这个安装脚本:
+
+```
+$ curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh > rustlings_install.sh
+$ file rustlings_install.sh
+rustlings_install.sh: Bourne-Again shell script, ASCII text executable
+```
+
+阅读脚本以了解它会做什么:
+
+```
+$ less rustlings_install.sh
+```
+
+然后运行安装:
+
+```
+$ bash rustlings_install.sh
+[...]
+Installing /home/tux/.cargo/bin/rustlings
+Installed package `rustlings v4.8.0 (/home/tux/rustlings)` (executable `rustlings`)
+All done!
+```
+
+运行 'rustlings' 以开始。
+
+### Rustlings 练习
+
+你现在可以使用命令 `rustlings`。与旗标 `--help` 一起执行来查看可选的选项。
+
+```
+$ rustlings --help
+```
+
+这个安装脚本也克隆了 rustlings 的 Git 仓库,并安装了运行示例程序所需的依赖。你可以在 `ruslings` 底下的 exercises 目录查阅这些示例程序。
+
+```
+$ cd rustlings
+$ pwd
+/home/tux/rustlings
+$ ls
+AUTHORS.md Cargo.toml CONTRIBUTING.md info.toml install.sh README.md target Cargo.lock CHANGELOG.md exercises install.ps1 LICENSE src tests
+$ ls -m exercises/
+advanced_errors, clippy, collections, conversions, enums, error_handling, functions, generics, if, intro, macros, mod.rs,
+modules, move_semantics, option, primitive_types, quiz1.rs, quiz2.rs, quiz3.rs, quiz4.rs, README.md,
+standard_library_types, strings, structs, tests, threads, traits, variables
+```
+
+### 从命令行列出所有练习
+
+命令 `ruslings` 提供给你一个 `list` 命令用以展示每个示例程序,它的完整路径,以及状态 (默认为 **pending**)。
+
+```
+$ rustlings list
+Name Path Status
+intro1 exercises/intro/intro1.rs Pending
+intro2 exercises/intro/intro2.rs Pending
+variables1 exercises/variables/variables1.rs Pending
+variables2 exercises/variables/variables2.rs Pending
+variables3 exercises/variables/variables3.rs Pending
+[...]
+```
+
+在显示结尾处,你会有一个进度报告用来追踪进度。
+
+```
+Progress: You completed 0 / 84 exercises (0.00 %).
+```
+
+### 查看示例程序
+
+命令 `rustlings list` 向你展示了现有的程序,所以你可以在任何时候查看这些程序的代码,你只需要将完整路径复制到你的终端作为命令 [cat][5] 或者 [less][6] 的参数:
+
+```
+$ cat exercises/intro/intro1.rs
+```
+
+### 验证你的程序
+
+现在你可以开始调试程序了。你可以使用命令 `verify` 来做这件事。注意 rustlings 选择了列表里的第一个程序 (`intro1.rs`) 并尝试去编译它,最后编译成功:
+
+```
+$ rustlings verify
+Progress: [-----------------------------------] 0/84
+✅ Successfully ran exercises/intro/intro1.rs!
+
+You can keep working on this exercise,
+or jump into the next one by removing the `I AM NOT DONE` comment:
+
+ 6 | // Execute the command `rustlings hint intro1` for a hint.
+ 7 |
+ 8 | // I AM NOT DONE
+ 9 |
+```
+
+正如你从结果中所见,尽管示例代码成功编译了,你依然需要做一些工作。每个示例程序的源文件中都带有以下注释:
+
+```
+$ grep "NOT DONE" exercises/intro/intro1.rs
+// I AM NOT DONE
+```
+
+虽然第一个程序的编译没有问题,除非你去掉注释 `I AM NOT DONE`,rustlings 不会移到下一个程序。
+
+### 来到下一个练习
+
+一旦你从 `intro1.rs` 中去掉这些注释,你就可以通过再一次运行命令 `rustlings verify` 来到下一个练习。这一次,你会发现 rustlings 尝试去编译这个系列中的下一个程序(`intro2.rs`),但是遇到了一个错误。你应该调试并修复这个问题,并前进。这是你理解为什么 Rust 说程序有漏洞的至关重要的一步。
+
+```
+$ rustlings verify
+Progress: [>------------------------] 1/84
+⚠️ Compiling of exercises/intro/intro2.rs failed! Please try again. Here's the output:
+error: 1 positional argument in format string, but no arguments were given
+ --> exercises/intro/intro2.rs:8:21
+ |
+8 | println!("Hello {}!");
+ | ^^
+
+error: aborting due to previous error
+```
+
+### 来点提示
+
+Rustlings 有一个非常好用的 `hint` 参数,这个参数会告诉你示例程序中哪里出错了,以及如何去修复它。你可以认为这是在编译错误信息基础之上,一个额外的帮助选项。
+
+```
+$ rustlings hint intro2
+Add an argument after the format string.
+```
+
+基于以上提示,修复这个程序就很简单了。你只需要在语句 `println` 中加一个额外的参数。这个 diff 对比应该能帮你理解发生的变化:
+
+```
+< println!("Hello {}!", "world");
+---
+> println!("Hello {}!");
+```
+
+一旦你做出了修改,并从源代码中去掉了注释 `NOT DONE`,你可以再一次运行 `rustlings verify` 来编译并运行代码。
+
+```
+$ rustlings verify
+Progress: [>-------------------------------------] 1/84
+✅ Successfully ran exercises/intro/intro2.rs!
+```
+
+### 追踪进度
+
+你无法在一天之内做完所有的练习,忘记练到哪也很常见。你可以执行命令 `list` 来查看你的练习状态。
+
+```
+$ rustlings list
+Name Path Status
+intro1 exercises/intro/intro1.rs Done
+intro2 exercises/intro/intro2.rs Done
+variables1 exercises/variables/variables1.rs Pending
+variables2 exercises/variables/variables2.rs Pending
+variables3 exercises/variables/variables3.rs Pending
+[...]
+```
+
+### 运行特定的练习
+
+如果你不想从头开始并且想要跳过一些练习,rustlings 允许你使用命令 `rustlings run` 来专注特定的练习。如此可以运行指定的程序而不需要验证之前的课程。例如:
+
+```
+$ rustlings run intro2
+Hello world!
+✅ Successfully ran exercises/intro/intro2.rs
+$ rustlings run variables1
+```
+
+敲入练习名字可能会变得乏味,但 rustlings 为你准备了便利的命令 `next` 用来移向系列中的下一个练习。
+
+```
+$ rustlings run next
+```
+
+### 替代命令 watch
+
+如果你不想在每次修改后还要敲一次 `verify`,你可以在终端窗口中运行命令 `watch`,然后再继续修改源代码以解决问题。命令 `watch` 会检测到这些修改,然后重新编译以查看这些问题是否被解决。
+
+```
+$ rustlings watch
+```
+
+### 通过调试学习
+
+Rust 编译器以提供非常有意义的错误信息而被熟知,这些错误信息会帮助你理解在你代码中的问题。这通常意味着更快的调试。Rustlings 是练习 Rust,学会阅读错误信息,并理解 Rust 语言的优秀途径。来看看 [GitHub][7] 上 Rustlings 5.0.0 的最新功能吧。
+
+**[[ 学习 Rust 编程,来下载我们的 Rust 速查表。 ]][8]**
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/7/learn-rust-rustlings
+
+作者:[Gaurav Kamathe][a]
+选题:[lkxed][b]
+译者:[yzuowei](https://github.com/yzuowei)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/gkamathe
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/rust_programming_crab_sea.png
+[2]: https://opensource.com/article/22/6/rust-toolchain-rustup
+[3]: https://github.com/rust-lang/rustlings
+[4]: https://opensource.com/article/22/6/rust-toolchain-rustup
+[5]: https://opensource.com/article/19/2/getting-started-cat-command
+[6]: https://opensource.com/article/18/4/using-less-view-text-files-command-line
+[7]: https://github.com/rust-lang/rustlings/releases/tag/5.0.0
+[8]: https://opensource.com/downloads/rust-cheat-sheet
From 511bab16b1ca622d5b1f92185a9fec8a9f7b0274 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Tue, 27 Dec 2022 17:38:18 +0800
Subject: [PATCH 148/266] RP
@geekpi
https://linux.cn/article-15386-1.html
---
...atform Music Player With Essential Features.md | 45 ++++++++++---------
1 file changed, 24 insertions(+), 21 deletions(-)
rename {translated/tech => published}/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md (64%)
diff --git a/translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/published/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
similarity index 64%
rename from translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
rename to published/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
index 4c071ba0e5..d7ac11e4c3 100644
--- a/translated/tech/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
+++ b/published/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
@@ -3,16 +3,18 @@
[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15386-1.html"
-Harmonoid:具有基本功能的漂亮跨平台音乐播放器
+Harmonoid:基本够用的漂亮的跨平台音乐播放器
======
-幸运的是,[Linux 的优秀开源音乐播放器][1]并不缺乏。过去我们已经介绍了多种选择。
+![][0]
-在这里,我重点介绍一款免费使用、开源且可用于多种平台(包括 **Linux、Windows 和 Android**)的音乐播放器。
+幸运的是,[Linux 的优秀开源音乐播放器][1] 并不缺乏。过去我们已经介绍了多种选择。
+
+在这里,我重点介绍一款免费使用(但不是自由开源软件),可用于多种平台(包括 Linux、Windows 和 Android)的音乐播放器。
### Harmonoid:Material Design 的直观用户体验
@@ -22,7 +24,7 @@ Harmonoid 是用 Dart 语言编写的。它利用 [libmpv][3] 和 [mpv][4] 在
它提供了一个优秀的用户界面。并且不使用 electron.js。所以,如果你讨厌 Electron,你可以试试这个。
-通常,你会在 Android 上看到应用具有 Material Design UI。如果你不知道,Material 是 Google 的开源设计系统。
+通常,你会在 Android 上看到应用具有 Material Design UI。如果你不知道,Material 是谷歌的开源设计系统。
![harmonoid player info][5]
@@ -32,7 +34,7 @@ Harmonoid 是用 Dart 语言编写的。它利用 [libmpv][3] 和 [mpv][4] 在
![harmonoid url][6]
-如果你想要一个有良好 UI 和功能集的音乐播放器,我建议您尝试 Harmonoid。
+如果你想要一个有良好 UI 和功能集的音乐播放器,我建议你尝试一下 Harmonoid。
### Harmonoid 的特点
@@ -40,18 +42,18 @@ Harmonoid 是用 Dart 语言编写的。它利用 [libmpv][3] 和 [mpv][4] 在
[Harmonoid][8] 可能看起来像一个简单的音乐播放器,但它包含了一些最有价值的功能。他们包括:
-- **在找到歌词的地方跟唱,或者你可以手动添加它们**
-- **编辑歌曲详细信息,包括艺术家、年份、流派、曲目编号、专辑和标题**
+- 跟唱功能,你可以找到歌词,或者你可以手动添加它们
+- 编辑歌曲详细信息,包括艺术家、年份、流派、曲目编号、专辑和标题
- 轻松分类和排序你的音乐列表
- 一个快速搜索功能来找到你要找的东西
- 缓存元数据以在你每次加载时提供快速体验
- 与 Windows 和 Linux 的良好集成支持
-- 支持Discord丰富的存在,以显示你的音乐以及艺术品和播放按钮
+- 支持在 Discord 中展示,可以显示你的音乐以及插图和播放按钮
- 调整音乐的速度、音量和音高
- 原始元数据读取器可读取你库中任何文件或歌曲的标签
- 播放由 MPV 提供
- .LRC 文件兼容性
-- **支持在线 URL (YouTube) 和广播流**
+- 支持在线 URL(YouTube)和广播流
- 跨平台
- 多位艺术家支持
- 深色/浅色模式
@@ -64,7 +66,7 @@ Harmonoid 应该非常适合想要同时播放音乐或整理收藏的用户。
### 在 Linux 上安装 Harmonoid
-你可以从其[下载页面][10]获取 **.deb/.rpm** 包并将其安装在基于 Ubuntu 的发行版或 Fedora 上。
+你可以从其 [下载页面][10] 获取 .deb/.rpm 包并将其安装在基于 Ubuntu 的发行版或 Fedora 上。
此外,你需要使用以下命令安装 mpv 和 libmpv(对于 Ubuntu):
@@ -76,7 +78,7 @@ sudo apt install mpv lipmpv-dev
你还可以在 [AUR][11] 上找到基于 Arch 的发行版的 Harmonoid。要探索有关该播放器的更多信息,请访问其 [GitHub 页面][12]和[官方网站][8]。
-_你是否尝试过 Harmonoid 在你的 Linux 系统上播放和整理音乐? 你最喜欢的 Linux 音乐播放器是什么? 在下面的评论中让我知道你的想法。_
+你是否尝试过 Harmonoid 在你的 Linux 系统上播放和整理音乐? 你最喜欢的 Linux 音乐播放器是什么? 在下面的评论中让我知道你的想法。
--------------------------------------------------------------------------------
@@ -85,21 +87,22 @@ via: https://itsfoss.com/harmonoid/
作者:[Ankush Das][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/ankush/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/best-music-players-linux/
-[2]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player.png
+[2]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-player.png
[3]: https://github.com/mpv-player/mpv/tree/master/libmpv
[4]: https://mpv.io
-[5]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-info.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-url.png
-[7]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-player-options.png
+[5]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-player-info.png
+[6]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-url.png
+[7]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-player-options.png
[8]: https://harmonoid.com
-[9]: https://itsfoss.com/wp-content/uploads/2022/12/harmonoid-settings.png
+[9]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-settings.png
[10]: https://harmonoid.com/downloads
[11]: https://aur.archlinux.org/packages/harmonoid-bin
-[12]: https://github.com/harmonoid/harmonoid
\ No newline at end of file
+[12]: https://github.com/harmonoid/harmonoid
+[0]: https://img.linux.net.cn/data/attachment/album/202212/27/173656kmq05d54llttls55.jpg
\ No newline at end of file
From 6a471cdeb9fe3969e84780e3205921f44dde302b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Wed, 28 Dec 2022 01:28:32 +0800
Subject: [PATCH 149/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221226.1=20=E2=AD=90=EF=B8=8F=20Manjaro=20Linux=2022?=
=?UTF-8?q?.0=20Releases=20Featuring=20Xfce=204.18=20and=20Linux=20Kernel?=
=?UTF-8?q?=206.1.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...es Featuring Xfce 4.18 and Linux Kernel 6.1.md | 102 ++++++++++++++++++
1 file changed, 102 insertions(+)
create mode 100644 sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
diff --git a/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md b/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
new file mode 100644
index 0000000000..545ff86782
--- /dev/null
+++ b/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
@@ -0,0 +1,102 @@
+[#]: subject: "Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1"
+[#]: via: "https://news.itsfoss.com/manjaro-22-0-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1
+======
+
+Manjaro Linux 22.0 has landed with good upgrades!
+
+![Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1][1]
+
+Manjaro Linux is a rolling release distro based on Arch Linux that focuses on providing a user-friendly and accessible experience.
+
+Since the release of '[Ruah][2]' in June, Manjaro's development has continued and has paved the way for the latest release, which is called '_Sikaris_'.
+
+This is one of the last distro releases (among the popular options) for 2022; let's see what it offers.
+
+### Manjaro 22 'Sikaris': What's New?
+
+![manjaro linux sikaris][3]
+
+The 'Sikaris' release has brought in many improvements; some notable ones include:
+
+- **Desktop Environment Upgrades**
+- **Linux Kernel 6.1**
+- **Dynamic Wallpapers**
+- **Various User Experience improvements**
+
+#### Desktop Environment Upgrades
+
+This release has seen numerous improvements to the three distinct editions of Manjaro Linux. Let me take you through them.
+
+**For Manjaro GNOME:** GNOME 43 is being used. It has a redesigned system status menu that lets you quickly switch between the commonly used settings.
+
+They also updated their 'Layouts Switcher' application to include various improvements and fixes.
+
+![manjaro linux sikaris gnome][4]
+
+Furthermore, you can create your dynamic wallpaper and use [Gradience][5] to customize your theme.
+
+**For Manjaro KDE:** The 'Sikaris' release features the latest Plasma 5.26 desktop environment that features many improvements, such as animated wallpapers, new widgets, and Plasma big screen improvements.
+
+![manjaro linux sikaris kde][6]
+
+They have also made additional tweaks that allow the wallpaper to change according to the system's theme.
+
+In addition, the Dolphin file manager now has a new feature called '_Selection Mode_', that lets you select multiple files or folders.
+
+**For Manjaro Xfce:** Powered by Xfce 4.18, this edition receives the new file highlighting and recursive search features in the Thunar file manager.
+
+Probably the first distro to include the [newly released Xfce 4.18][7] out of the box.
+
+The panel has also been updated to allow maximized apps to fill the area behind the panel, and the panel length is now calculated in pixels rather than percentages.
+
+![manjaro linux sikaris xfce][8]
+
+Additionally, the Control Center now groups all the desktop modules for managing the system into one easy-to-use window.
+
+These features should improve your overall experience! 😃
+
+#### Linux Kernel 6.1
+
+Manjaro 22 'Sikaris' uses the various enhancements offered by [Linux Kernel 6.1][9].
+
+Those include experimental support for Rust, initial support for Intel's upcoming Meteor Lake chips, improved ARM SoC support, and more.
+
+### Download Manjaro 22
+
+Manjaro 22 'Sikaris' is available for both X86_64 and ARM systems, head over to the official [downloads page][10] to get access.
+
+[Download Manjaro 22][10]
+
+**For existing users,** you can just run '_sudo pacman -Syu_' in the command line to get this release of Manjaro Linux.
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/manjaro-22-0-release/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/manjaro-22-0-release.png
+[2]: https://news.itsfoss.com/manjaro-21-3-0-release/
+[3]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE_2.png
+[4]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_GNOME.png
+[5]: https://github.com/GradienceTeam/Gradience
+[6]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE.png
+[7]: https://news.itsfoss.com/xfce-4-18-release/
+[8]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_XFCE.png
+[9]: https://news.itsfoss.com/linux-kernel-6-1-release/
+[10]: https://manjaro.org/download/
From ea421020d30452bc6144b2523642c6d13385f3e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Wed, 28 Dec 2022 01:30:04 +0800
Subject: [PATCH 150/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221227.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=205?=
=?UTF-8?q?=20Upcoming=20Code=20Editors=20that=20May=20Challenge=20the=20S?=
=?UTF-8?q?upremacy=20of=20Visual=20Studio=20Code.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...y Challenge the Supremacy of Visual Studio Code.md | 123 ++++++++++++++++++
1 file changed, 123 insertions(+)
create mode 100644 sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
diff --git a/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
new file mode 100644
index 0000000000..35e43090f4
--- /dev/null
+++ b/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
@@ -0,0 +1,123 @@
+[#]: subject: "5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code"
+[#]: via: "https://news.itsfoss.com/upcoming-code-editors/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code
+======
+
+Interesting code editors that might replace Visual Studio Code for you in 2023!
+
+![5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code][1]
+
+Well, 2022 is coming to an end.
+
+We featured new remarkable code editors being released for Linux, starting from [Lite XL][2], to options like [Pulsar][3] and more.
+
+So, to commemorate that, I have compiled this list of upcoming code editors for Linux that have a strong chance of challenging the supremacy of [Visual Studio Code][4].
+
+Let me take you through it.
+
+### 1. Pulsar
+
+![pulsar][5]
+
+[Pulsar][6] is a community-led open-source code editor aiming to be a replacement for the famous Atom code editor.
+
+The community behind it has been hard at work bringing this on par with the original Atom editor by introducing modern features with an updated architecture.
+
+So, if you were an Atom user, you could try this!
+
+It is available to download from the [official website][7], but do keep in mind that it is in its early development stages.
+
+### 2. Atom Community
+
+![atom community][8]
+
+Also rising from [the ashes][9] of the now-defunct Atom editor, '[Atom Community][10]' is a project meant to take over the concepts and ideas of its predecessor.
+
+They aim to get started by providing the most essential features and making it on par with the functionality available in the [atom-ide-ui][11] package.
+
+It has the potential to be something more, but in its current form, I would not suggest this to new users right now. They have a slightly different long-term goal when compared to Pulsar, which makes it another project worth taking a look at.
+
+But, for 2023, things could be different.
+
+Still, those who like an adventure can build it using the [source code][12].
+
+### 3. Lapce
+
+![lapce][13]
+
+A lightweight and fast open-source code editor?
+
+That is what [Lapce][14] is!
+
+It is a Rust-based open-source code editor that focuses on providing such an experience.
+
+We covered it when it was in the pre-alpha stage, but in 2023 it can be something to watch out for.
+
+### 4. Zed
+
+![zed breadcrumbs][15]
+
+[Zed][16] is an upcoming code editor aiming to challenge VS Code's dominance.
+
+It is set to feature many features, such as Real-time collaboration, a minimal interface, code actions, a command palette, and [more][17].
+
+In fact, Atom's founder, [Nathan Sobo][18] is behind this and has termed this as the '_spiritual successor_' to Atom.
+
+### 5. Lite XL
+
+![lite xl][19]
+
+[Lite XL][2] is an open-source code editor written in Lua, and only uses three megabytes of storage and around twenty megabytes of RAM. (compared to VS Code's ~550 MB).
+
+It could be to your liking if you were looking for a completely minimal code editor.
+
+You can get it right now from the [official website][20], it receives regular updates, and you can expect the same to be true in 2023.
+
+**Well, this is the end of this list and the year 2022.** 😃
+
+_I may have missed some code editors, and I know you will let me know in the comments section. Feel free to share your thoughts!_
+
+> 🌐 Follow us on [Mastodon][21] and [Twitter][22] to never miss an update!
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/upcoming-code-editors/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/upcoming-editors-which-may-challenge-vs-code.png
+[2]: https://itsfoss.com/lite-xl/
+[3]: https://news.itsfoss.com/pulsar-editor/
+[4]: https://code.visualstudio.com
+[5]: https://news.itsfoss.com/content/images/2022/12/Pulsar.png
+[6]: https://pulsar-edit.dev
+[7]: https://pulsar-edit.dev/download.html#releases
+[8]: https://news.itsfoss.com/content/images/2022/12/Atom_Community.jpg
+[9]: https://github.blog/2022-06-08-sunsetting-atom/
+[10]: https://atom-community.github.io
+[11]: https://github.com/facebookarchive/atom-ide-ui
+[12]: https://github.com/atom-community/atom
+[13]: https://news.itsfoss.com/content/images/2022/12/Lapce.jpg
+[14]: https://lapce.dev
+[15]: https://news.itsfoss.com/content/images/2022/12/Zed_Early.jpg
+[16]: https://zed.dev/
+[17]: https://zed.dev/features
+[18]: https://twitter.com/nathansobo
+[19]: https://news.itsfoss.com/content/images/2022/12/LiteXL.jpg
+[20]: https://lite-xl.com/en/downloads
+[21]: https://mastodon.social/@itsfoss
+[22]: https://twitter.com/itsfoss2
From 3910ce7ccb814798c86a5262aa6ebe5a2c1b50a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Wed, 28 Dec 2022 01:32:45 +0800
Subject: [PATCH 151/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221227.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20oh?=
=?UTF-8?q?=20my=20zsh=20and=20powerlevel10k=20A=20Match=20Made=20in=20Hea?=
=?UTF-8?q?ven.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...my zsh and powerlevel10k A Match Made in Heaven.md | 222 ++++++++++++++++++
1 file changed, 222 insertions(+)
create mode 100644 sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md
diff --git a/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md b/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md
new file mode 100644
index 0000000000..4972b6f039
--- /dev/null
+++ b/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md
@@ -0,0 +1,222 @@
+[#]: subject: "oh my zsh and powerlevel10k: A Match Made in Heaven"
+[#]: via: "https://www.debugpoint.com/oh-my-zsh-powerlevel10k/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+oh my zsh and powerlevel10k: A Match Made in Heaven
+======
+
+**A quick and simple guide to transforming your zsh terminal shell with oh my zsh and powerlevel10k theme to make it look cool in Ubuntu and other Linux distros.**
+
+![][1]
+
+The default shell in most of the Linux distributions is bash. Bash is solid and a legacy utility. However, it lacks some customizations, such as nice colours, cursor support, etc.
+
+You can use another shell, zsh to enjoy additional tweaks and help you to extend your Bash shell experience.
+
+This crisp guide explains how to install zsh, oh my zsh and apply the powerlevel10k theme.
+
+### oh my zsh and powerlevel10k: Installation and configuration guide
+
+#### 1. Installing zsh and changing the shell
+
+Open a terminal and install zsh using the following command applicable to your distribution.
+
+**_Ubuntu, Debian, Linux Mint and all related distro_**
+
+```
+sudo apt install zsh
+```
+
+_**Fedora**_
+
+```
+sudo dnf install zsh
+```
+
+**_Arch_**
+
+```
+pacman -S zsh
+```
+
+After installation is complete, find out the zsh install path
+
+```
+whereis zsh
+```
+
+Then change the shell using the zsh executable path for the current user.
+
+```
+chsh -s /usr/bin/zsh
+```
+
+![change the shell for the current user][2]
+
+Close and open the terminal again. And you should see the first-time setup for zsh. Select option 2. And it will change the look of your shell prompt with a default theme, as shown below.
+
+![first time setup for zsh][3]
+
+#### 2. Install oh my zsh
+
+The oh my zsh is a set of scripts to customize zsh further.
+
+Firstly, we will install oh my zsh script by downloading it from GitHub. It would be best if you had wget and git package for that. [Install wget][4] & git using the following command if it’s not installed.
+
+```
+sudo apt install wget
+sudo apt install git
+```
+
+Then install oh my zsh using the following command.
+
+```
+sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
+```
+
+And you should see the oh my zsh theme is applied with a default theme robbyrussell to your terminal.
+
+![Install oh my zsh and default theme][5]
+
+The Oh my zsh also comes with additional themes, and you can install them [using this guide][6]. However, in this tutorial, I will talk about a specific theme, i.e. powerlevel10k.
+
+#### 3. Install powerlevel10k theme for oh my zsh
+
+Open a terminal and run the following command to clone powerlevel10k repo from GitHub and put the files in the config folder of oh my zsh.
+
+```
+git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
+```
+
+Open the `~/.zshrc` file in a text editor and set the `ZSH_THEME` variable to `"powerlevel10k/powerlevel10k"`.
+
+```
+cd ~
+```
+
+```
+nano .zshrc
+```
+
+By default, it should be robbyrussell. Remove “robbyrussell” and add the below `"powerlevel10k/powerlevel10k"`.
+
+Your `~/.zshrc` file should look something like this after the change:
+
+`ZSH_THEME="powerlevel10k/powerlevel10k"`
+
+Save and close the file (CTRL+O, ENTER and CTRL+X).
+
+![change oh my zsh theme to powerlevel10k][7]
+
+Restart your terminal to launch the first-time wizard to set up the powerlevel10k theme.
+
+#### 4. First time set up for powerleve10k
+
+When you launch the terminal after the installation, the powerlevel10k prompts you with various questions to understand your Linux distro setup. So, press the key as per your need to customize your terminal as per your taste. Some example screenshots of questions are below to give you some idea.
+
+![powerlevel10k - wizard1][8]
+
+![powerlevel10k - wizard 2][9]
+
+And finally, you can save the file to enjoy the new look of your terminal.
+
+![After applying settings in powerlevel10k zsh theme][10]
+
+If you want to restart the configuration wizard again, run the following. You can do it as many times as you want.
+
+```
+p10k configure
+```
+
+This concludes the basic setup. If you want more, follow along.
+
+### More configuration (advanced usage)
+
+#### 5. Installing dracula GNOME Terminal theme
+
+If you are using GNOME desktop with the native terminal, you can try the stunning drakula theme. To do that, open a terminal and run the following command to download the theme.
+
+```
+git clone https://github.com/dracula/gnome-terminalcd gnome-terminal
+```
+
+Open GNOME Terminal and go to preferences. Add a new profile by clicking on the [+] and name it “drakula”. Then go to colours tab and uncheck ‘use colors from system theme’ option.
+
+![create a new profile for terminal][11]
+
+Go back to the terminal and run the following. When prompted, select the profile name which you just created as above.
+
+```
+./install.sh
+```
+
+![applying the drakula theme for gnome terminal][12]
+
+Once the installation is complete, go back to preferences and mark the drakula profile as default.
+
+#### 6. Autocomplete and syntax highlighting for zsh
+
+There are two community-developed plugins available for zsh, which you may want to try out. They are zsh-autosuggestions and zsh-syntax-highlighting.
+
+Open a terminal and run the following to download zsh-autosuggestions and put it inside the plugin folder.
+
+```
+git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
+```
+
+Similarly, run the following for the syntax highlighting plugin.
+
+```
+git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
+```
+
+Open the ~/.zshrc file via a text editor (use the following command), and find the plugins=(git) line. And replace it with the following:
+
+```
+nano ~/.zshrc
+```
+
+```
+plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
+```
+
+Save & close the file using CTRL+O, ENTER and CTRL+X.
+
+Close and open your terminal; now, you should be able to use the auto-suggestions and syntax highlighting.
+
+### Wrapping Up
+
+That’s it! You should now have “Oh My Zsh” and the Powerlevel10k theme installed on your system. You can customize the appearance and behaviour of the Powerlevel10k theme by customizing further as per your need.
+
+Cheers.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/oh-my-zsh-powerlevel10k/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2022/12/ohp10k.jpg
+[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-the-shell-for-the-current-user.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/first-time-setup-for-zsh.jpg
+[4]: https://www.debugpoint.com/wget-not-found-error/
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/Install-oh-my-zsh-and-default-theme.jpg
+[6]: https://www.debugpoint.com/install-use-zsh/
+[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-oh-my-zsh-theme-to-powerlevel10k.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard1.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard-2.jpg
+[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-applying-settings-in-powerlevel10k-zsh-theme.jpg
+[11]: https://www.debugpoint.com/wp-content/uploads/2022/12/create-a-new-profile-for-terminal.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2022/12/applying-the-drakula-theme-for-gnome-terminal.jpg
From 0442f6b0408414c1c459e96d9c71aed4a97cd55a Mon Sep 17 00:00:00 2001
From: geekpi
Date: Wed, 28 Dec 2022 09:33:55 +0800
Subject: [PATCH 152/266] translated
---
...ightful features of the Linux QtFM file manager.md | 91 -------------------
...ightful features of the Linux QtFM file manager.md | 90 ++++++++++++++++++
2 files changed, 90 insertions(+), 91 deletions(-)
delete mode 100644 sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
create mode 100644 translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
diff --git a/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
deleted file mode 100644
index d4a70a8ab2..0000000000
--- a/sources/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
+++ /dev/null
@@ -1,91 +0,0 @@
-[#]: subject: "3 delightful features of the Linux QtFM file manager"
-[#]: via: "https://opensource.com/article/22/12/linux-file-manager-qtfm"
-[#]: author: "Seth Kenlon https://opensource.com/users/seth"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-3 delightful features of the Linux QtFM file manager
-======
-
-QtFM is a simple file manager that aims to provide the basic features of file management through a fast and intuitive interface. It's available for Linux, BSD, and macOS.
-
-QtFM, as its name suggests, uses the Qt (canonically pronounced "cute") programming toolkit. I've worked with the Qt toolkit both in C++ and Python, and using it is always a pleasure. It's cross-platform, it's got multiple levels of useful abstraction so developers don't have to interact directly with vendor-specific SDKs, and it's highly configurable. From a user's perspective, it's a "natural" and fast experience, whether you're on the latest hardware or on an [old computer][1].
-
-### Using QtFM
-
-There's not much to QtFM. It focuses on being exactly what its name claims: a file manager (FM) for Qt. The layout is what you probably expect from a file manager: a list of common places and devices on the left and a list of files on the right.
-
-![QtFM file manager][2]
-
-It's got just four menus.
-
-- **File**: Create a new file or folder, open a new tab or window, or exit the application.
-- **Edit**: Copy, paste, move to trash, or create a new bookmark in the left panel.
-- **View**: Toggle between the list and icon views, adjust the layout.
-- **Help**: Licensing information, and links to online documentation.
-
-Interacting with QtFM is largely the same experience you're probably used to with any standard-issue file manager. You can click around to navigate, open files in its default application, drag-and-drop files and folders, copy and paste files and folders, launch applications, and whatever else you do when you're interacting with the contents of your computer. It's familiar, so there's basically no learning curve and no unpleasant surprises.
-
-There are, however, several pleasant surprises. Here are three of my favorites.
-
-### 1. Put a command into a contextual menu
-
-With QtFM, you can add any command you can run in a terminal to the right-click contextual menu. For instance, suppose you want an option to convert an image into the [webp format][3] to the right-click menu. There's no complex framework or scripting language to learn, you don't need to develop a plugin. You can do it in just 3 steps:
-
-- Go to the **Edit** menu and select **Settings**
-- Click on the **Custom actions tab**
-- Click the **Add** button and enter the command you want to run, using `%f` for the source file and `%n` for the new file
-
-![QtFM custom actions][4]
-
-The action now appears in your QtFM contextual menu.
-
-### 2. Flexible layout
-
-One of the built-in features of the Qt toolkit is that many of its components are ("widgets") detachable. QtFM takes advantage of this and allows you to unlock its layout from the **View** menu. Once unlocked, you can drag toolbars and side panels, anchoring them in new positions around your window. I was able to combine the menu bar, navigation toolbar, and the URI field into a unified panel, and I placed a file tree on the right side of the window for convenience.
-
-![QtFM unlocking the layout][5]
-
-This requires no special knowledge of application design or even configuration. You just unlock, drag and drop, and lock.
-
-### 3. Tabbed view
-
-Many Linux file managers offer tabs the same way as most web browsers do. It's a simple interface trick that lets you keep several locations handy. I don't know whether it actually saves time, but I always feel like it does. QtFM offers tabs, too, and there are two things I particularly enjoy about the way it implements them.
-
-First of all, the tabs are at the bottom of the window by default (you can change that in **Settings**.) Because I tend to read from left to right and top to bottom, I usually prefer to have "extra" information at the bottom and right ends of a window. Of course, what constitutes "extra" information varies from user to user, so I don't blame any developer for placing widgets and panels in places I wouldn't put widgets and panels. It's nice, though, when a developer accidentally agrees with my preferences.
-
-Secondly, the tabs are responsive. You can drag a file or folder from one tab into another just by hovering over your target tab. It feels as natural as dragging and dropping from one window to another.
-
-### Install QtFM
-
-On Linux, your distribution may package QtFM in its software repository. If so, you can use your package manager to install. For example, on Debian and Debian-based systems:
-
-```
-$ sudo apt install qtfm
-```
-
-If your distribution doesn't offer QtFM, you may find a package for it on its [website][6], or you can download the source code from its [Git repository][7].
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/linux-file-manager-qtfm
-
-作者:[Seth Kenlon][a]
-选题:[lkxed][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/seth
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity
-[2]: https://opensource.com/sites/default/files/2022-12/qtfm.webp
-[3]: https://opensource.com/article/20/4/webp-image-compression
-[4]: https://opensource.com/sites/default/files/2022-12/qtfm-custom-action.webp
-[5]: https://opensource.com/sites/default/files/2022-12/qtfm-layout-unlock.webp
-[6]: https://qtfm.eu/
-[7]: https://github.com/rodlie/qtfm/
diff --git a/translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
new file mode 100644
index 0000000000..19cb2172d2
--- /dev/null
+++ b/translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
@@ -0,0 +1,90 @@
+[#]: subject: "3 delightful features of the Linux QtFM file manager"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-qtfm"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+# Linux QtFM 文件管理器的 3 个令人愉快的功能
+
+QtFM 是一个简单的文件管理器,旨在通过快速直观的界面提供文件管理的基本功能。它适用于 Linux、BSD 和 macOS。
+
+QtFM,顾名思义,使用 Qt(规范发音为 “cute”)编程工具包。我在 C++ 和 Python 中使用过 Qt 工具包,使用它总是一种乐趣。它是跨平台的,具有多个有用的抽象级别,因此开发人员不必直接与特定于供应商的 SDK 交互,而且它具有高度可配置性。从用户的角度来看,无论你使用的是最新的硬件还是[旧计算机][1],这都是一种“自然”且快速的体验。
+
+### 使用 QtFM
+
+QtFM 没有太多内容。它专注于实现其名称所声称的:Qt 的文件管理器 (FM)。布局可能是你对文件管理器的期望:左侧是常用位置和设备的列表,右侧是文件列表。
+
+![QtFM file manager][2]
+
+它只有四个菜单。
+
+- **文件**:创建新文件或文件夹,打开新选项卡或窗口,或退出应用。
+- **编辑**:在左侧面板中复制、粘贴、移至垃圾箱或创建新书签。
+- **视图**:在列表视图和图标视图之间切换,调整布局。
+- **帮助**:许可信息和在线文档链接。
+
+与 QtFM 交互与你可能习惯使用的任何标准文件管理器的体验大致相同。你可以点击导航、在其默认应用中打开文件、拖放文件和文件夹、复制和粘贴文件和文件夹、启动应用,以及你在与计算机内容交互时执行的任何其他操作。它很熟悉,所以基本上没有学习曲线,也没有不愉快的惊喜。
+
+然而,也有一些惊喜。这是我最喜欢的三个。
+
+### 1. 将命令放入上下文菜单
+
+使用 QtFM,你可以将可以在终端中运行的任何命令添加到右键单击上下文菜单中。例如,假设你想要一个将图像转换为 [webp 格式][3]的选项到右键菜单。无需学习复杂的框架或脚本语言,无需开发插件。你只需 3 个步骤即可完成:
+
+- 转到**编辑**菜单并选择**设置**。
+- 单击**自定义操作选项卡**。
+- 单击**添加**按钮并输入要运行的命令,对源文件使用 `%f`,对新文件使用 `%n`。
+
+![QtFM custom actions][4]
+
+该操作现在出现在你的 QtFM 上下文菜单中。
+
+### 2. 灵活的布局
+
+Qt 工具包的内置功能之一是它的许多组件(“小部件”)是可分离的。QtFM 利用了这一点,并允许你从**视图**菜单中解锁其布局。解锁后,你可以拖动工具栏和侧面板,将它们固定在窗口周围的新位置。我能够将菜单栏、导航工具栏和 URI 字段组合到一个统一的面板中,并且为了方便,我在窗口的右侧放置了一个文件树。
+
+![QtFM unlocking the layout][5]
+
+这不需要应用设计甚至配置的特殊知识。你只需解锁、拖放和锁定。
+
+### 3. 标签视图
+
+许多 Linux 文件管理器提供选项卡的方式与大多数 Web 浏览器相同。这是一个简单的界面技巧,可让你方便地保留多个位置。我不知道它是否真的节省了时间,但我总觉得它确实如此。QtFM 也提供选项卡,我特别喜欢它实现选项卡的方式有两点。
+
+首先,选项卡默认位于窗口底部(你可以在**设置**中更改它)。因为我倾向于从左到右、从上到下阅读,所以我通常更喜欢在窗口的底部和右端设置“额外”信息。当然,“额外”信息的构成因用户而异,因此我不会责怪任何开发人员将小部件和面板放置在我不会放置小部件和面板的地方。不过,当开发人员不小心同意我的偏好时,这很好。
+
+其次,标签是响应式的。只需将鼠标悬停在目标选项卡上,即可将文件或文件夹从一个选项卡拖动到另一个选项卡中。感觉就像从一个窗口拖放到另一个窗口一样自然。
+
+### 安装 QtFM
+
+在 Linux 上,你的发行版可能会将 QtFM 打包在它的软件仓库中。如果是这样,你可以使用包管理器进行安装。例如,在 Debian 和基于 Debian 的系统上:
+
+```
+$ sudo apt install qtfm
+```
+
+如果你的发行版不提供 QtFM,你可以在其[网站][6]上找到它的软件包,或者你可以从它的 [Git 仓库][7]下载源码。
+
+---
+
+via: https://opensource.com/article/22/12/linux-file-manager-qtfm
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者 ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity
+[2]: https://opensource.com/sites/default/files/2022-12/qtfm.webp
+[3]: https://opensource.com/article/20/4/webp-image-compression
+[4]: https://opensource.com/sites/default/files/2022-12/qtfm-custom-action.webp
+[5]: https://opensource.com/sites/default/files/2022-12/qtfm-layout-unlock.webp
+[6]: https://qtfm.eu/
+[7]: https://github.com/rodlie/qtfm/
From 49091c74f3832af9119e2c40ef39150079cb506e Mon Sep 17 00:00:00 2001
From: geekpi
Date: Wed, 28 Dec 2022 09:37:04 +0800
Subject: [PATCH 153/266] translating
---
...de Editors that May Challenge the Supremacy of Visual Studio Code.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
index 35e43090f4..a7ca46d18d 100644
--- a/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
+++ b/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
@@ -2,7 +2,7 @@
[#]: via: "https://news.itsfoss.com/upcoming-code-editors/"
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 4af341fc8cc2c9a4b170a1e601664a0a741bc7cb Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 28 Dec 2022 09:46:32 +0800
Subject: [PATCH 154/266] RP
@CanYellow
https://linux.cn/article-15388-1.html
---
...inciples will impact the future of work.md | 96 ++++++++++++++++++
...inciples will impact the future of work.md | 97 -------------------
2 files changed, 96 insertions(+), 97 deletions(-)
create mode 100644 published/20210103 How open principles will impact the future of work.md
delete mode 100644 translated/tech/20210103 How open principles will impact the future of work.md
diff --git a/published/20210103 How open principles will impact the future of work.md b/published/20210103 How open principles will impact the future of work.md
new file mode 100644
index 0000000000..3631e38bdd
--- /dev/null
+++ b/published/20210103 How open principles will impact the future of work.md
@@ -0,0 +1,96 @@
+[#]: collector: (lujun9972)
+[#]: translator: (CanYellow)
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-15388-1.html)
+[#]: subject: (How open principles will impact the future of work)
+[#]: via: (https://opensource.com/open-organization/21/1/open-is-future-of-work)
+[#]: author: (Ron McFarland https://opensource.com/users/ron-mcfarland)
+
+开放原则将如何影响未来工作
+======
+
+> 在许多方面,我们的工作性质塑造了我们。那么,未来工作的性质将发生巨大变化,我们又该做何准备呢?
+
+![][0]
+
+如果我们将“工作”定位为获得某种回报的任何形式的付出,那么工作是,并且一直是,决定我们是谁的主要因素之一。工作是我们生活的一个重要方面。在工作中(不论这对我们意味着什么),我们结识朋友,我们获得智力激励和情感满足的源泉,我们得到成长,我们感受自身无穷的创造性。对于我们的家人、朋友、社区和社会而言,工作极其重要,我们不应轻视工作的重要性亦或视其为理所当然。
+
+因此如果未来 [工作的性质将发生变化][2],这可能意味着恰恰是我们 _自我认知_ 中的某些关键要素将发生变化。我们应该认真准备应对这些转变。
+
+考察自第一次工业革命(18、19世纪)以来的工作转变,很多人从从事农业劳动转为进入城市工厂工作,这从根本上改变了他们的生活方式。新的工作方式需要全新的、更专业的工作技能,而不再是农村经济中常见的手艺。接下来的几十年里,当我们检视我们的个人工作环境时,我们可能会发现工业时代以来的这一趋势可能发生逆转:从层级制度、可代替的通用技术与活动,重新转变为横向协作与对专业知识的熟练掌握的更高要求(回到手艺时代)。
+
+不过,这一次,这些转变的到来将是全球性的而非区域性的,而且转变的速度要快的多。
+
+在这一新的工作环境中,[开放组织原则][3] 将扮演关键性的角色。
+
+本系列中,我将回顾 [Lynda Gratton 教授的作品《转变》][4](LCTT 译注:中译本:《转变:未来社会工作岗位需求变化及应对策略》,ISBN:9787121152894),本书成书于 2014 年(LCTT 译注:本书原版有 [2011 版][T1] 与 [2014 版][T2]),书中数据于 2010 年收集,但今天仍然适用(将来也一样)。本书中,Gratton 教授指出了工作将在 2025 到 2050 年间如何变化。这是关键信息,因为它有助于我们在准备和发展我们的职业生涯时作出正确的选择。
+
+Gratton 教授阐释了在上述时间段内影响未来工作的主要因素。本系列中,我们将对它们做一个总结并解释开放组织原则如何融入它们之中。
+
+### 影响未来工作的五个因素
+
+煤炭与蒸汽动力的发明推动了第一次工业革命。[Gratton 教授][5] 说,今天,五种微妙的力量导致了类似的转变:
+
+ 1. 日益增长的全球化活动
+ 2. 技术的快速进步
+ 3. 人类寿命与人口数量
+ 4. 社会与家庭结构变化
+ 5. 低碳经济的需求
+
+简而言之,计算机更快了,材料更强了,药物能治疗更多的疾病使得人类的寿命更长。这些都在不同程度上影响了我们未来的工作方式。以下针对上述每一点的一些说明。
+
+#### 1、全球化
+
+在以前的文章 [《全球化:开放的历史》][6] 中,我讨论了全球化的多种动力与影响因素,其中之一就是贸易。从 1950 年到 2010 年的 60 年间,全球贸易量增加了 60 倍,与此同时运输成本降低了,发展中国家不仅看到了贸易增长,而且看到了新的创新。我还在我的另一篇文章 [《历史变迁中的开放组织》][7] 中讨论了历史早期的全球化。我另外在我的文章 [《全球性的开放组织是怎么样的》][8] 中探讨了从现在到未来全球治理的重要性。如 Gratton 教授所言,全球化在未来工作中将发挥不可否认与不可避免的影响。
+
+> 如果未来工作的性质将发生变化,这可能意味着恰恰是我们自我认知中的某些关键要素将发生变化。我们应该认真准备应对这些转变。
+
+#### 2、技术
+
+计算成本一直在以惊人的速度下降,它还将继续下降。这有助于连接到目前为止仍然大部分被隔离在更大的全球经济之外的数十亿人。他们将开始进入劳动力市场并成为更有影响力的消费者。与此同时,计算机与高级自动化在未来将 [取代人类工作][9],这都将影响未来的工作转变。
+
+#### 3、人口数量与寿命
+
+Gratton 教授还记录了不同世代的人对未来工作的影响,尤其是在美国。年轻一代在未来将扮演主要角色,他们的态度将不同于上一代。此外,全球不同地区的出生率将影响经济繁荣。由于一些地区的人口降低而另一些的将会增加,将会出现更多的移民。他们将移民至 Gratton 教授谓之“创新集群”的地方。最后,Gratton 教授认为全球预期寿命将会变化。截至 2025 年,世界人口的 10% 将超过 65 岁,这些人口将更可能希望继续工作,以得到持续的收入、精神刺激、身体活动,与他人的联系以及生活的意义与目的的源泉。考虑到今天的很多儿童都更可能拥有超过 100 岁的寿命,如果他们在 65 岁退休,他们余下的至少 35 年里将做不了太多事情。基于这样的考虑,在未来职业道路的多次转换以及在社区与志愿服务项目中的积极参与将会大大拓展。
+
+#### 4、社会
+
+常规的变化之外,Gratton 教授还描述了一些社会变化。她说,未来女性在工作上的角色将会变化,人们将比以往拥有更多的选择来塑造他们希望的生活;随着个人劳动生产率的提升,平均空闲时间将比以往更多。
+
+#### 5、能源
+
+我在 [资源工业革命][10] 上的一篇演讲中讨论了资源节约型工业的扩张。格拉特教授为该对话补充了一些有价值的观点。她认为气候变化将逐渐成为主要议题,并导致运输与消费的降低。尤其是世界范围内的水资源供给将无法跟上用水需求。海水淡化项目将大幅扩张(可能由正在开发的 [第四代][11] 分布式小型模块化核电站提供动力)。环境灾难将使人们背井离乡,并在世界范围内形成移民社区。更多能效高的生活方式将会被发现和引入,这将影响未来工作。
+
+### 为未来提前准备
+
+上述五种力量将推动未来工作方式发生根本性的改变,Gratton 教授认为我们现在就需要开始为这样的未来提前做准备。本系列的下一篇文章中,我将介绍 Gratton 教授对未来的展望以及应对快速变化的未来的一些情境。个人如何将这些变化视作职业机会?另一方面,如果简单地选择对即将到来的变化 _视而不见_ 又会发生什么?我将回顾 Gratton 教授在这些问题上的思考。同样的,我也将解释开放原则如何形成必经的变革的核心。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/open-organization/21/1/open-is-future-of-work
+
+作者:[Ron McFarland][a]
+选题:[lujun9972][b]
+译者:[CanYellow](https://github.com/CanYellow)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/ron-mcfarland
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife)
+[2]: https://opensource.com/open-organization/18/7/transformation-beyond-digital-2
+[3]: https://theopenorganization.org/definition/
+[4]: http://lyndagratton.com/books/the-shift/
+[5]: https://en.wikipedia.org/wiki/Lynda_Gratton
+[6]: https://opensource.com/open-organization/20/7/globalization-history-open
+[7]: https://opensource.com/open-organization/20/8/global-history-collaboration
+[8]: https://opensource.com/open-organization/20/9/global-open-organization
+[9]: https://opensource.com/open-organization/19/9/claiming-human-age-of-AI
+[10]: https://www.slideshare.net/RonMcFarland1/the-starting-of-the-third-industrial-revolution
+[11]: https://en.wikipedia.org/wiki/Generation_IV_reactor
+
+[T1]: https://isbnsearch.org/isbn/9780007427956
+[T2]: https://isbnsearch.org/isbn/9780007525850
+[0]: https://img.linux.net.cn/data/attachment/album/202212/28/094540cru0c2b8g2rz2ur2.jpg
\ No newline at end of file
diff --git a/translated/tech/20210103 How open principles will impact the future of work.md b/translated/tech/20210103 How open principles will impact the future of work.md
deleted file mode 100644
index 363bc6886a..0000000000
--- a/translated/tech/20210103 How open principles will impact the future of work.md
+++ /dev/null
@@ -1,97 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: (CanYellow)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (How open principles will impact the future of work)
-[#]: via: (https://opensource.com/open-organization/21/1/open-is-future-of-work)
-[#]: author: (Ron McFarland https://opensource.com/users/ron-mcfarland)
-
-开放原则将如何影响未来工作
-======
-我们的工作性质在很多方面塑造了我们自己。未来工作的性质将发生巨大变化,我们又该做何准备呢?
-
-![团队合作,忙碌的工作生活][1]
-
-如果我们将“工作”定位为获得某种回报的任何形式的付出,那么工作是并且一直是决定我们是谁的主要因素之一。工作是我们生活的一个重要方面。在工作中(不论这对我们意味着什么),我们结识朋友,我们获得智力激励和情感满足的源泉,我们得到成长,我们感受自身无穷的创造性。对于我们的家人、朋友、社区和社会而言,工作极其重要,我们不应轻视工作的重要性亦或视其为理所当然。
-
-因此如果未来[工作的性质将发生变化][2],这可能意味着恰恰是我们 _自我认知_ 中的某些关键要素将发生变化。我们应该认真准备应对这些转变。
-
-考察自第一次工业革命(18、19世纪)以来的工作转变,很多人从从事农业劳动转为进入城市工厂工作,这从根本上改变了他们的生活方式。新的工作方式需要全新的更专业的工作技能而不再是农村经济中常见的手艺。接下来的几十年里,当我们检视我们的个人工作环境时,我们可能会发现工业时代以来的这一趋势可能发生逆转:从层级制度、可代替的通用技术与活动重新转变为横向协作与对专业知识的熟练掌握的更高要求(回到手工艺时代)。
-
-这个时代与这些转变的到来将是全球性的而非区域性的,转变的速度已经大大加快了。
-
-在这一新的工作环境中,[开放组织原则][3]将扮演关键性的角色。
-
-本系列中,我将回顾 [Lynda Gratton 教授的作品,_转变_][4] (中译本:转变:未来社会工作岗位需求变化及应对策略,ISBN:9787121152894),本书成书于2014年(译注,本书原版有 [2011版][T1] 与 [2014版][T2] ),书中数据于2010年收集,但今天仍然适用(将来也一样)。本书中,Gratton教授指出了工作将在2025到2050年间如何变化。这是关键信息,因为它有助于我们在准备和发展我们的职业生涯时作出正确的选择。
-
-Gratton教授阐释了在上述时间段内影响未来工作的主要因素。本系列中,我们将对它们做一个总结并解释开放组织原则如何融入它们之中。
-
-
-### 影响未来工作的五个因素
-
-煤碳与蒸汽动力的发明推动了第一次工业革命。[Gratton教授][5]说,今天五种微妙的力量导致了类似的转变:
-
- 1. 日益增长的全球化活动
- 2. 技术的快速进步
- 3. 人类寿命与人口数量
- 4. 社会与家庭结构变化
- 5. 低碳经济的需求
-
-简而言之,计算机更快了,材料更强了,药物能治疗更多的疾病使得人类的寿命更长。这些都在不同程度上影响了我们未来的工作方式。以下针对上述每一点的一些笔记。
-
-#### 1\. 全球化
-
-
-在以前的文章 [《全球化:开放的历史》][6] 中,我讨论了全球化的多种动力与影响因素,其中之一就是贸易。从1950年到2010年的60年间,全球贸易的体量增加了60倍,与此同时运输成本降低了,发展中国家不仅看到了贸易增长,而且看到了新的创新。我还在我的另一篇文章 [《历史变迁中的开放组织》][7]中讨论了历史早期的全球化。我另外在我的文章[《全球性的开放组织是怎么样的》][8]中探讨了从现在到未来全球治理的重要性。如Gratton教授所言,全球化在未来工作中将发挥不可否认与不可避免的影响。
-
-如果未来工作的性质将发生变化,这可能意味着恰恰是我们自我认知中的某些关键要素将发生变化。我们应该认真准备应对这些转变。
-
-#### 2\. 技术
-
-计算成本一直在以惊人的速度下降,它还将继续下降。这有助于连接到目前为止仍然大部分被隔离在更大的全球经济之外的数十亿人。他们将开始进入劳动力市场并成为更有影响力的消费者。与此同时,计算机与高级自动化在未来将[取代人类工作][9],这都将影响未来的工作转变。
-
-#### 3\.人口数量与寿命
-
-Gratton教授还记录了不同世代的人对未来工作的影响,尤其是在美国。年轻一代在未来将扮演主要角色,他们的态度将不同于上一代。此外,全球不同地区的出生率将影响经济繁荣。由于一些地区的人口降低而另一些的将会增加,将会出现更多的移民。他们将移民至Gratton教授谓之“创新集群”的地方。最后,Gratton教授认为全球预期寿命将会变化。截至2025年,世界人口的10%都将超过65岁,这些人口将更可能希望继续工作,为了得到持续的收入、精神刺激、身体活动,与他人的联系以及生活的意义与目的的源泉。考虑到今天的很多儿童都更可能拥有超过100岁的寿命,如果他们在65岁退休,他们余下的至少35年里将做不了太多事情。基于这样的考虑,在未来职业道路的多次转换以及在社区与志愿服务项目中的积极参与将会大大拓展。
-
-#### 4\. 社会
-
-常规的变化之外,Gratton教授还描述了一些社会变化。她说,未来女性在工作上的角色将会变化,人们将比以往拥有更多的选择来塑造他们希望的生活;随着个人劳动生产率的提升,平均空闲时间将比以往更多。
-
-#### 5\. 能源
-
-我在[资源工业革命][10]上的一篇演讲中讨论了资源节约型工业的扩张。格拉特教授为该对话补充一些有价值的观点。她认为气候变化将逐渐成为主要议题,并导致运输与消费的降低。尤其是世界范围内的水资源供给将无法跟上用水需求。海水淡化项目将大幅扩张(可能由正在开发的[第四代][11]分布式小型模块化核电站提供动力)。环境灾难将使人们背井离乡,并在世界范围内形成移民社区。更多能效高的生活方式将会被发现和引入,这将影响未来工作。
-
-
-### 为未来提前准备
-
-上述五种力量将推动未来工作方式发生根本性的改变,Gratton教授认为我们现在就需要开始为这样的未来提前做准备。本系列的下一篇文章中,我将介绍Gratton教授对未来的展望以及应对快速变化的未来的一些情境。个人如何将这些变化视作职业机会?另一方面,如果简单地选择对即将到来的变化 _视而不见_ 又会发生什么?我将回顾Gratton教授在这些问题上的思考。同样的,我也将解释开放原则如何形成必经的变革的核心。
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/open-organization/21/1/open-is-future-of-work
-
-作者:[Ron McFarland][a]
-选题:[lujun9972][b]
-译者:[CanYellow](https://github.com/CanYellow)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/ron-mcfarland
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife)
-[2]: https://opensource.com/open-organization/18/7/transformation-beyond-digital-2
-[3]: https://theopenorganization.org/definition/
-[4]: http://lyndagratton.com/books/the-shift/
-[5]: https://en.wikipedia.org/wiki/Lynda_Gratton
-[6]: https://opensource.com/open-organization/20/7/globalization-history-open
-[7]: https://opensource.com/open-organization/20/8/global-history-collaboration
-[8]: https://opensource.com/open-organization/20/9/global-open-organization
-[9]: https://opensource.com/open-organization/19/9/claiming-human-age-of-AI
-[10]: https://www.slideshare.net/RonMcFarland1/the-starting-of-the-third-industrial-revolution
-[11]: https://en.wikipedia.org/wiki/Generation_IV_reactor
-
-[T1]: https://isbnsearch.org/isbn/9780007427956
-[T2]: https://isbnsearch.org/isbn/9780007525850
From 1ccecc15e16ec176ff44f524fc7ab7ebdff6e512 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 28 Dec 2022 13:02:44 +0800
Subject: [PATCH 155/266] R
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@toknow-gh
感谢您,完成了第一篇翻译贡献!
---
.../20210917 Open source game achievements.md | 32 +++++++++----------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/translated/tech/20210917 Open source game achievements.md b/translated/tech/20210917 Open source game achievements.md
index efd95d3dba..3b9f598dfc 100644
--- a/translated/tech/20210917 Open source game achievements.md
+++ b/translated/tech/20210917 Open source game achievements.md
@@ -3,7 +3,7 @@
[#]: author: "Dennis Payne https://fedoramagazine.org/author/dulsi/"
[#]: collector: "lujun9972"
[#]: translator: "toknow-gh"
-[#]: reviewer: " "
+[#]: reviewer: "wxy"
[#]: publisher: " "
[#]: url: " "
@@ -14,17 +14,17 @@ Gamerzilla:一个开源游戏成就系统
Photo by [Michał Parzuchowski][2] on [Unsplash][3]
-了解开源游戏成就系统 Gamerzilla。它使游戏开发者能够独立于游戏平台实现成就系统。
+> 了解开源游戏成就系统 Gamerzilla。它使游戏开发者能够独立于游戏平台实现成就系统。
-一些开源游戏的质量已经媲美商业游戏。尽管还难以比肩 3A 大作,开源游戏在独立游戏中已颇具竞争力。但是游戏玩家预期是随时间变化的。早期的游戏只有高分成就。不断增加的成就种类促使玩家反复重玩游戏。比如你可能达到了满级,却还没有找到所有隐藏物品或没有完成全物品收集。Xbox 360 推出了首个在线多游戏成就系统。随后其它游戏平台也纷纷推出了自己的成就系统。
+一些开源游戏的质量已经媲美商业游戏。尽管还难以比肩 3A 大作,但开源游戏在独立游戏中已颇具竞争力。不过,游戏玩家的期望是随时间变化的。早期的游戏只有高分成就。不断增加的成就种类促使玩家反复重玩游戏。比如你可能达到了满级,却还没有找到所有隐藏物品或没有完成全物品收集。Xbox 360 推出了首个在线多游戏成就系统。随后其它游戏平台也纷纷推出了自己的成就系统。
-开源游戏在很大程度被游戏平台的成就系统排除在外。你可以在 Stream 上发布自己的游戏,但这需要付费。游戏平台主要与公司合作,而不是与自由软件社区合作。这也进一步把玩家锁定在了非自由的游戏平台上。
+开源游戏在很大程度被游戏平台的成就系统排除在外。你可以在 Stream 上发布开源游戏,但这需要付费。游戏平台主要与公司合作,而不是与自由软件社区合作。这也进一步把玩家锁定在了非自由的游戏平台上。
商业游戏开发商也没有得到太多好处。由于不能共享成就,一些享受成就的玩家拒绝从其他商店购买游戏。这种锁定效应增强了游戏平台的话语权。由于各个游戏平台使用不同的系统,开发者不得不针对它们分别进行适配和测试。较小的游戏平台则可能完全被忽略掉。并且平台方能够访问到所有使用该平台的公司的成就数据,这些数据可以被用来扩大竞争优势。
### Gamerzilla 的架构
-[Gamerzilla][4] 是一个致力于改善这种现状的开源游戏成就系统。Gamerzilla 在设计上同时考虑了开源游戏和商业游戏。你可以运行自己的 Gamerzilla 服务器,使用游戏商店提供的服务器,甚至 Linux 发行版中的服务器。服务器也可以由其他团体来运行。在哪里购买游戏不再重要。成就数据都会上传到你的 Gamerzilla 服务器上。
+[Gamerzilla][4] 是一个致力于改善这种现状的开源游戏成就系统。Gamerzilla 在设计上同时考虑了开源游戏和商业游戏。你可以运行自己的 Gamerzilla 服务器,使用游戏商店提供的服务器,甚至 Linux 发行版提供的服务器。服务器也可以由其他团体来运行。在哪里购买游戏不再重要。成就数据都会上传到你的 Gamerzilla 服务器上。
一个基本的成就系统需要两个要素:游戏和 Gamerzilla 服务器。然而随着游戏数量增长,这种设计会暴露出其缺点。每个游戏都需要证书才能上传数据到服务器。由于拥有大量的游戏资源,并且能够在不同游戏商店之间同步数据,游戏启动器成为了众多玩家的选择。通过让启动器支持 Gamerzilla,游戏本身就不再需要证书了。游戏结果直接从启动器上传到 Gamerzilla 服务器。
@@ -32,33 +32,33 @@ freegamedev.net 曾提供了社交网络系统 Hubzilla。我们基于此开发
目前 Gamerzilla 服务器有两种实现。维护 Hubzilla 是一项复杂的工作,所以我们用 .Net 和 React 开发了一个独立的 Gamerzilla 服务器。游戏调用的 API 是相同的,所以不用关心连接的服务器是哪种实现。
-游戏启动器的开发和支持工作通常是滞后的。为了方便启动器增加对 Gamerzilla 的支持,我们开发了 libgamerzilla。这个库负责处理启动器、游戏和 Gamerzilla 服务器之间的交互。目前只有 _GameHub_ 实现了一个支持 Gamerzilla 的版本,并将在近期整合到项目中。Fedora 上的 libgamerzilla-server 是一个临时解决方案。它不启动游戏,而是监听成就并把成就上传到服务器。
+游戏启动器的开发和支持工作通常是滞后的。为了方便启动器增加对 Gamerzilla 的支持,我们开发了 libgamerzilla。这个库负责处理启动器、游戏和 Gamerzilla 服务器之间的交互。目前只有 GameHub 实现了一个支持 Gamerzilla 的版本,并将在近期整合到项目中。Fedora 上的 libgamerzilla-server 是一个临时解决方案。它不启动游戏,而是监听成就并把成就上传到服务器。
-支持 Gamerzilla 的游戏在不断增长。与游戏启动器一样,开发者使用 libgamerzilla 来完成 Gamerzilla 的集成工作。这个库由 C 语言实现,已经被 Python 和 nim 等多种编程语言使用。对于那些已经有成就系统的游戏,只需要花几天时间就可以完成对 Gamerzilla 的支持。其他游戏想要支持 Gamerzilla,大部分时间将会花在收集信息和授予成就上。
+支持 Gamerzilla 的游戏在不断增长。与游戏启动器一样,开发者使用 libgamerzilla 来完成 Gamerzilla 的集成工作。这个库由 C 语言实现,已经被 Python 和 nim 等多种编程语言使用。对于那些已经有成就系统的游戏,只需要花几天时间就可以完成对 Gamerzilla 的支持。其他游戏想要支持 Gamerzilla,大部分时间都是花在收集信息和授予成就上。
### 架设服务器
-架设服务器最容易的方式是使用 Hubzilla 插件。但是运行 Hubzilla 站点却不是一件轻松的事情。在 Fedora 上架设基于 .Net 和 React 的服务器相对来说要容易一些,尽管这仍然需要许多步骤。详细步骤请参考 [readme][5]。需要这么多步骤的一部分原因是目前没有预编译好的发布版本。这意味着你需要自己安装 .Net,动手构建 React 源码部分。构建完成之后,React 代码会直接运行在 Apache 中。.Net 后端则运行在单独的服务上。Apache 作为代理负责把所有 Gamerzilla API 请求转发给后端服务。
+架设服务器最容易的方式是使用 Hubzilla 插件。但是运行 Hubzilla 站点却不是一件轻松的事情。在 Fedora 上架设基于 .Net 和 React 的服务器相对来说要容易一些,尽管这仍然需要许多步骤。详细步骤请参考 [readme][5] 文件。需要这么多步骤的一部分原因是目前没有预编译好的发布版本。这意味着你需要自己安装 .Net,动手构建 React 源码部分。构建完成之后,React 代码会直接运行在 Apache 中。.Net 后端则运行在单独的服务上。Apache 作为代理负责把所有 Gamerzilla API 请求转发给后端服务。
-按上面的步骤操作,Gamerzilla 已经运行起来了,但是现在还没有用户。当然应该有一个简单的方式来创建管理员和注册新用户。但是该功能还没有完成。目前只能通过 sqlite3 命令行来录入用户信息。具体步骤请参考 [readme][5]。用户可以是公开可见的,也可以是隐藏的。批准标记可以让新用户不立刻使用该系统,但是网络注册是必须的。在设计时我们已经考虑了用户相关模块的可替换性。通过替换 backend/Service/UserService.cs 就可以与其他站点进行集成。游戏网站也可以通过这种方式来为用户提供 Gamerzilla 成就系统。
+按上面的步骤操作,Gamerzilla 已经运行起来了,但是现在还没有用户。当然应该有一个简单的方式来创建管理员和注册新用户。但是该功能还没有完成。目前只能通过 sqlite3 命令行来录入用户信息。具体步骤请参考 [readme][5] 文件。用户可以是公开可见的,也可以是隐藏的。批准标记可以让新用户不立刻使用该系统,但是网络注册是必须的。在设计时我们已经考虑了用户相关模块的可替换性。通过替换 `backend/Service/UserService.cs` 就可以与其他站点进行集成。游戏网站也可以通过这种方式来为用户提供 Gamerzilla 成就系统。
目前 Gamerzilla 的后端使用的是 sqlite 数据库。我们还没有对它进行过性能测试。我们预计较大型的应用安装需要改进系统以使用更鲁棒的数据库。
### 测试
-目前要找一个支持 Gamerzilla 的游戏启动器太难了。如果你安装了 libgamerzilla-server,就可以在命令行中运行 _gamerzillaserver_ 命令。首次运行该命令时需要输入 url 和 登录信息。以后再运行时会直接从配置文件读取这些信息。目前更正错误的唯一方法是删除 _.local/share/gamerzillaserver/server.cfg_ 再重新运行 _gamerzillaserver_ 命令。
+目前要找一个支持 Gamerzilla 的游戏启动器太难了。如果你安装了 libgamerzilla-server,就可以在命令行中运行 `gamerzillaserver` 命令。首次运行该命令时需要输入 URL 和登录信息。以后再运行时会直接从配置文件读取这些信息。目前更正错误的唯一方法是删除 `.local/share/gamerzillaserver/server.cfg` 再重新运行 `gamerzillaserver` 命令。
-大多数游戏还没有支持 Gamerzilla 的发行版。[itch.io 上的 Pinball Disc Room][6],它的 Lniux 版本支持 Gamerzilla,但是它的网页版是没有成就的。这款游戏只有两个成就:一个是存活 10 秒钟,另一个是解锁并使用隧道。只需要稍加练习,你就能获得一个成就。由于这款游戏没有可视化的成就提示消息,你需要查看 Gamerzila 服务器才能确认成就。
+大多数游戏还没有支持 Gamerzilla 的版本。[itch.io 上的 《Pinball Disc Room》][6],它的 Linux 版本支持 Gamerzilla,但是它的网页版是没有成就系统的。这款游戏只有两个成就:一个是存活 10 秒钟,另一个是解锁并使用隧道。只需要稍加练习,你就能获得一个成就。由于这款游戏没有可视化的成就提示消息,你需要查看 Gamerzila 服务器才能确认成就。
-目前打包到 Fedora 中的游戏都还不支持 Gamerzila。SuperTuxKart 已经整合了对 Gamerzila 的支持,正在等待发布新版本。 Seahorse adventures 和 Shippy 1984 添加了成就,但是新发布版本还没有打包。还有一部分游戏由我们独立完成了对 Gamerzila 的支持,但我们的拉取请求pull request或其它联系尝试还没有得到开发者的回应。
+目前打包到 Fedora 中的游戏都还不支持 Gamerzila。《SuperTuxKart》 已经整合了对 Gamerzila 的支持,正在等待发布新版本。《Seahorse adventures》 和 《Shippy 1984》 添加了成就,但是新发布版本还没有打包。还有一部分游戏由我们独立完成了对 Gamerzila 的支持,但我们的拉取请求pull request或其它联系尝试还没有得到开发者的回应。
### 后续工作
Gamerzilla 需要更多游戏的支持。目前已经有很多游戏支持 Gamerzilla,并且正在以大约每月一个的速度增长。如果你有喜欢的游戏,可以请求开发方支持 Gamerzilla。如果你是游戏开发者,并且在支持 Gamerzilla 上需要技术支持,请联系我们。
-服务器的开发工作在缓步开展中,我们希望不久之后就会有一个可用的注册系统。在那之后我们可能会建立一个永久托管站点。目前你可以看到我们的[测试服务器][7]。一些人对于使用 .Net 作为后端表示担忧。我们的 API 并不复杂,可以很容易用 Python 重写。
+服务器的开发工作在缓步开展中,我们希望不久之后就会有一个可用的注册系统。在那之后我们可能会建立一个永久托管站点。目前你可以看到我们的 [测试服务器][7]。一些人对于使用 .Net 作为后端表示担忧。我们的 API 并不复杂,可以很容易用 Python 重写。
-最大的不确定性来自游戏启动器方面。GameHub 希望有一个通过用的成就接口。未来我们可能会在这方面与他们开展合作。增加对 itch.io 应用的支持可以提升系统的关注度。另一种方案是完全抛开启动器。也许可以将 gamerzillaserver 添加到 Gnome 中。然后你就可以在一个设置页面里配置 url 和登录信息。这样任何启动的游戏都可以记录成就了。
+最大的不确定性来自游戏启动器方面。GameHub 希望有一个通过用的成就接口。未来我们可能会在这方面与他们开展合作。增加对 itch.io 应用的支持可以提升系统的关注度。另一种方案是完全抛开启动器。也许可以将 gamerzillaserver 添加到 Gnome 中。然后你就可以在一个设置页面里配置 URL 和登录信息。这样任何启动的游戏都可以记录成就了。
--------------------------------------------------------------------------------
@@ -66,8 +66,8 @@ via: https://fedoramagazine.org/open-source-game-achievements/
作者:[Dennis Payne][a]
选题:[lujun9972][b]
-译者:[译者ID](https://github.com/toknow-gh)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[toknow-gh](https://github.com/toknow-gh)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From 315073d4d9f181a5f2aabf134813828f4ccbd9da Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 28 Dec 2022 13:03:55 +0800
Subject: [PATCH 156/266] P
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@toknow-gh
本文首发:https://linux.cn/article-15389-1.html
您的 LCTT 专页:https://linux.cn/lctt/toknow-gh
---
.../20210917 Open source game achievements.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
rename {translated/tech => published}/20210917 Open source game achievements.md (99%)
diff --git a/translated/tech/20210917 Open source game achievements.md b/published/20210917 Open source game achievements.md
similarity index 99%
rename from translated/tech/20210917 Open source game achievements.md
rename to published/20210917 Open source game achievements.md
index 3b9f598dfc..5cb5ca3dea 100644
--- a/translated/tech/20210917 Open source game achievements.md
+++ b/published/20210917 Open source game achievements.md
@@ -4,8 +4,8 @@
[#]: collector: "lujun9972"
[#]: translator: "toknow-gh"
[#]: reviewer: "wxy"
-[#]: publisher: " "
-[#]: url: " "
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15389-1.html"
Gamerzilla:一个开源游戏成就系统
======
From 7a14a46d148555e362fdf915fe10df42e2fec9de Mon Sep 17 00:00:00 2001
From: geekpi
Date: Thu, 29 Dec 2022 09:31:23 +0800
Subject: [PATCH 157/266] translated
---
... How to Downgrade Flatpak Packages in Linux.md | 115 ------------------
... How to Downgrade Flatpak Packages in Linux.md | 112 +++++++++++++++++
2 files changed, 112 insertions(+), 115 deletions(-)
delete mode 100644 sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
create mode 100644 translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
diff --git a/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
deleted file mode 100644
index 4761597588..0000000000
--- a/sources/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
+++ /dev/null
@@ -1,115 +0,0 @@
-[#]: subject: "How to Downgrade Flatpak Packages in Linux"
-[#]: via: "https://itsfoss.com/downgrade-flatpak-packages/"
-[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How to Downgrade Flatpak Packages in Linux
-======
-
-Technically, minor or point release updates are released to solve issues. But things may get worse when some updates break your current workflow.
-
-Whether a Flatpak package or Snap, everything breaks at some point when there is an issue. Being a sandboxed packaging solution, it may not affect the entire system, but if you encounter a bug that makes your app experience worse, you may regret the update.
-
-For example, the previous update of [Black Box][1] was bundled with certain bugs, and I could not select text! Developers have solved this issue now, but until they did not, I downgraded that specific package to make things work.
-
-So, if you want to downgrade a specific app installed as a Flatpak, you can follow this guide.
-
-### Downgrade Flatpak packages in Linux
-
-**Disclaimer:** Unlike installing Flatpaks, you need **sudo** privileges to downgrade Flatpak packages. And if your user doesn’t have them, you can follow our detailed guide on [how to give sudo access to users][2].
-
-**Recommended Read**: [How to Apply GTK Themes on Flatpak Applications][3]
-
-Here are the steps below:
-
-#### 1. Get the Application ID of the Package
-
-The first step is to find the Application ID of the package you want to downgrade. You can easily find it by listing the installed packages:
-
-```
-flatpak list --app
-```
-
-![find flatpak package id in linux][4]
-
-Note down the application ID of the package you want to downgrade.
-
-Here, I am going to downgrade the Black Box, so my application ID will be `com.raggesilver.BlackBox`.
-
-#### 2. List previous releases and get the commit code
-
-Once you get the application ID, you’d need to list the previous releases.
-
-You can easily do this by following the given command syntax:
-
-```
-flatpak remote-info --log flathub
-```
-
-![find previous releases in flatpak][5]
-
-Once you find the preferred previous release, copy the commit code as shown above.
-
-#### 3. Downgrade the Flatpack package
-
-Once you follow the first two steps, you should have the following:
-
-- Application ID of the package.
-- Commit code of preferred older release.
-
-Now, you have to put them in the following command:
-
-```
-sudo flatpak update --commit=
-```
-
-As I’m downgrading Black Box to the previous release, I’ll be using the following command:
-
-```
-sudo flatpak update --commit=c4ef3f4be655cbe2559451a9ef5977ab28139c54bb5adbd7db812f3482bd0db5 com.raggesilver.BlackBox
-```
-
-![downgrade flatpak package in linux][6]
-
-And that’s it!
-
-To check whether you have successfully downgraded the package, you can list the packages that need to be updated (considering everything else is up-to-date). It should include the name of the package that you have recently downgraded:
-
-```
-flatpak update
-```
-
-![downgrade flatpak package][7]
-
-And as you can see, the Black Box is outdated and needs to be updated, meaning the package has been downgraded successfully!
-
-### Wrapping Up
-
-In this quick tutorial, I explained how you downgrade Flatpak packages, and I hope you find this helpful.
-
-And if you have any queries or suggestions, let me know in the comments.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/downgrade-flatpak-packages/
-
-作者:[Sagar Sharma][a]
-选题:[lkxed][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/sagar/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/blackbox-terminal/
-[2]: https://itsfoss.com/add-sudo-user-ubuntu/
-[3]: https://itsfoss.com/flatpak-app-apply-theme/
-[4]: https://itsfoss.com/wp-content/uploads/2022/12/find-flatpak-package-id-in-linux.png
-[5]: https://itsfoss.com/wp-content/uploads/2022/12/find-previous-releases-in-flatpak-1.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package-in-linux.png
-[7]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package.png
diff --git a/translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
new file mode 100644
index 0000000000..ca5b61f709
--- /dev/null
+++ b/translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
@@ -0,0 +1,112 @@
+[#]: subject: "How to Downgrade Flatpak Packages in Linux"
+[#]: via: "https://itsfoss.com/downgrade-flatpak-packages/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+如何在 Linux 中降级 Flatpak 软件包
+======
+
+从技术上讲,次要更新是为了解决问题。但是,当某些更新破坏你当前的工作流程时,情况可能会变得更糟。
+
+无论是 Flatpak 包还是 Snap,当出现问题时,一切都会在某个时候崩溃。作为一个沙盒打包方案,它可能不会影响整个系统,但如果你遇到一个让你的应用体验变差的 bug,你可能会后悔更新。
+
+比如之前更新的 [Black Box][1] 就带来了一些 bug,无法选择文字!开发人员现在已经解决了这个问题,但在他们没有解决之前,我降级了那个特定的包以使其正常工作。
+
+所以,如果你想降级特定的 Flatpak 应用,你可以按照本指南进行操作。
+
+### 在 Linux 中降级 Flatpak 包
+
+**免责声明:** 与安装 Flatpaks 不同,你需要 **sudo** 权限才能降级 Flatpak 包。如果你的用户没有它们,你可以按照我们关于[如何向用户授予 sudo 访问权限][2]的详细指南进行操作。
+
+以下是步骤:
+
+#### 1.获取包的应用 ID
+
+第一步是找到要降级的包的应用 ID。你可以列出已安装的软件包轻松找到它:
+
+```
+flatpak list --app
+```
+
+![find flatpak package id in linux][4]
+
+记下要降级的包的应用 ID。
+
+这里,我要降级 Black Box,所以我的应用 ID 将是 `com.raggesilver.BlackBox`。
+
+#### 2.列出以前的版本并获取提交代码
+
+获得应用 ID 后,你需要列出以前的版本。
+
+你可以按照给定的命令语法做到这点:
+
+```
+flatpak remote-info --log flathub
+```
+
+![find previous releases in flatpak][5]
+
+找到首选的先前版本后,复制如上所示的提交代码。
+
+#### 3.降级 Flatpack 包
+
+执行前两个步骤后,你应该有以下内容:
+
+- 包的应用 ID。
+- 首选旧版本的提交代码。
+
+现在,你必须将它们放在以下命令中:
+
+```
+sudo flatpak update --commit=
+```
+
+当我将 Black Box 降级到以前的版本时,我将使用以下命令:
+
+```
+sudo flatpak update --commit=c4ef3f4be655cbe2559451a9ef5977ab28139c54bb5adbd7db812f3482bd0db5 com.raggesilver.BlackBox
+```
+
+![downgrade flatpak package in linux][6]
+
+这就完成了!
+
+要检查你是否已成功降级软件包,你可以列出需要更新的软件包(考虑到其他所有内容都是最新的)。它应该包括你最近降级的软件包的名称:
+
+```
+flatpak update
+```
+
+![downgrade flatpak package][7]
+
+如你所见,Black Box 已过时,需要更新,这意味着包已成功降级!
+
+### 总结
+
+在本快速教程中,我解释了如何降级 Flatpak 软件包,希望对你有所帮助。
+
+如果你有任何疑问或建议,请在评论中告诉我。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/downgrade-flatpak-packages/
+
+作者:[Sagar Sharma][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/sagar/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/blackbox-terminal/
+[2]: https://itsfoss.com/add-sudo-user-ubuntu/
+[4]: https://itsfoss.com/wp-content/uploads/2022/12/find-flatpak-package-id-in-linux.png
+[5]: https://itsfoss.com/wp-content/uploads/2022/12/find-previous-releases-in-flatpak-1.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package-in-linux.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package.png
From 91c8a3028bea8e573adcbf8e6f4ca6a71c97dfe0 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Thu, 29 Dec 2022 09:35:35 +0800
Subject: [PATCH 158/266] translating
---
.../20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
index ea9e63b118..beb10e6833 100644
--- a/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
+++ b/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
@@ -2,7 +2,7 @@
[#]: via: "https://itsfoss.com/update-flatpak/"
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From ce369664bc8779dee3a749d727b6a9a8825136d5 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Thu, 29 Dec 2022 13:51:13 +0800
Subject: [PATCH 159/266] ALL
@wxy
https://linux.cn/article-15391-1.html
---
...es Featuring Xfce 4.18 and Linux Kernel 6.1.md | 102 ++++++++++++++++++
...es Featuring Xfce 4.18 and Linux Kernel 6.1.md | 102 ------------------
2 files changed, 102 insertions(+), 102 deletions(-)
create mode 100644 published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
delete mode 100644 sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
diff --git a/published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md b/published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
new file mode 100644
index 0000000000..d94f5b884e
--- /dev/null
+++ b/published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
@@ -0,0 +1,102 @@
+[#]: subject: "Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1"
+[#]: via: "https://news.itsfoss.com/manjaro-22-0-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15391-1.html"
+
+Manjaro Linux 22.0 发布
+======
+
+> Manjaro Linux 22.0 带着各种升级来了!
+
+![][1]
+
+Manjaro Linux 是一个基于 Arch Linux 的滚动发布发行版,专注于提供用户友好和无障碍体验。
+
+自 6 月发布 “[Ruah][2]” 以来,Manjaro 的开发仍在继续,并为最新的版本铺平了道路,它被称为 “Sikaris”。
+
+这是 2022 年最后的流行的发行版之一。让我们看看它提供了什么。
+
+### Manjaro 22 “Sikaris” 有什么新内容?
+
+![][3]
+
+Sikaris 版本带来了许多改进,一些值得注意的包括:
+
+- 桌面环境的升级
+- Linux 内核 6.1
+- 动态墙纸
+- 各种用户体验的改进
+
+#### 桌面环境的升级
+
+这个版本对 Manjaro Linux 的三个不同版本进行了许多改进。让我带你看看这些改进。
+
+**对于 Manjaro GNOME:** 它使用是的 GNOME 43,有一个重新设计的系统状态菜单,可以让你在常用的设置之间快速切换。
+
+他们还更新了他们的 “布局切换器Layouts Switcher” 应用程序,包括各种改进和修复。
+
+![][4]
+
+此外,你可以创建你的动态壁纸并使用 [Gradience][5] 来定制你的主题。
+
+**对于 Manjaro KDE:** “Sikaris” 版本采用了最新的 Plasma 5.26 桌面环境,具有许多改进,如动画壁纸、新的小工具,以及 Plasma 大屏幕的改进。
+
+![][6]
+
+还有一些其它的调整,允许壁纸根据系统的主题来改变。
+
+此外,Dolphin 文件管理器现在有一个新的功能叫“选择模式Selection Mode”,可以让你选择多个文件或文件夹。
+
+**对于 Manjaro Xfce:** 使用的是 Xfce 4.18,该版本在 Thunar 文件管理器中获得了新的文件高亮显示和递归搜索功能。
+
+可能是第一个包括 [新发布的 Xfce 4.18][7] 的开箱即用发行版。
+
+面板也被更新了,允许最大化的应用程序填满面板后面的区域,而且面板的长度现在是以像素而不是百分比计算的。
+
+![][8]
+
+此外,“控制中心Control Center”现在将所有用于管理系统的桌面模块集中到一个易于使用的窗口。
+
+这些功能应该会改善你的整体体验! 😃
+
+#### Linux 内核 6.1
+
+Manjaro 22 ”Sikaris“ 使用 [Linux 内核 6.1][9] 提供了各种增强功能。
+
+这些包括对 Rust 的实验性支持,对英特尔即将推出的 Meteor Lake 芯片的初步支持,改进的 ARM SoC 支持,以及更多。
+
+### 下载 Manjaro 22
+
+Manjaro 22 “Sikaris” 可用于 X86_64 和 ARM 系统,前往官方 [下载页面][10] 获取。
+
+> **[下载 Manjaro 22][10]**
+
+**对于现有的用户,** 你只需在命令行中运行 `sudo pacman -Syu` 就可以得到这个版本的 Manjaro Linux。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/manjaro-22-0-release/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/manjaro-22-0-release.png
+[2]: https://news.itsfoss.com/manjaro-21-3-0-release/
+[3]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE_2.png
+[4]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_GNOME.png
+[5]: https://github.com/GradienceTeam/Gradience
+[6]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE.png
+[7]: https://news.itsfoss.com/xfce-4-18-release/
+[8]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_XFCE.png
+[9]: https://news.itsfoss.com/linux-kernel-6-1-release/
+[10]: https://manjaro.org/download/
diff --git a/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md b/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
deleted file mode 100644
index 545ff86782..0000000000
--- a/sources/news/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
+++ /dev/null
@@ -1,102 +0,0 @@
-[#]: subject: "Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1"
-[#]: via: "https://news.itsfoss.com/manjaro-22-0-release/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1
-======
-
-Manjaro Linux 22.0 has landed with good upgrades!
-
-![Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1][1]
-
-Manjaro Linux is a rolling release distro based on Arch Linux that focuses on providing a user-friendly and accessible experience.
-
-Since the release of '[Ruah][2]' in June, Manjaro's development has continued and has paved the way for the latest release, which is called '_Sikaris_'.
-
-This is one of the last distro releases (among the popular options) for 2022; let's see what it offers.
-
-### Manjaro 22 'Sikaris': What's New?
-
-![manjaro linux sikaris][3]
-
-The 'Sikaris' release has brought in many improvements; some notable ones include:
-
-- **Desktop Environment Upgrades**
-- **Linux Kernel 6.1**
-- **Dynamic Wallpapers**
-- **Various User Experience improvements**
-
-#### Desktop Environment Upgrades
-
-This release has seen numerous improvements to the three distinct editions of Manjaro Linux. Let me take you through them.
-
-**For Manjaro GNOME:** GNOME 43 is being used. It has a redesigned system status menu that lets you quickly switch between the commonly used settings.
-
-They also updated their 'Layouts Switcher' application to include various improvements and fixes.
-
-![manjaro linux sikaris gnome][4]
-
-Furthermore, you can create your dynamic wallpaper and use [Gradience][5] to customize your theme.
-
-**For Manjaro KDE:** The 'Sikaris' release features the latest Plasma 5.26 desktop environment that features many improvements, such as animated wallpapers, new widgets, and Plasma big screen improvements.
-
-![manjaro linux sikaris kde][6]
-
-They have also made additional tweaks that allow the wallpaper to change according to the system's theme.
-
-In addition, the Dolphin file manager now has a new feature called '_Selection Mode_', that lets you select multiple files or folders.
-
-**For Manjaro Xfce:** Powered by Xfce 4.18, this edition receives the new file highlighting and recursive search features in the Thunar file manager.
-
-Probably the first distro to include the [newly released Xfce 4.18][7] out of the box.
-
-The panel has also been updated to allow maximized apps to fill the area behind the panel, and the panel length is now calculated in pixels rather than percentages.
-
-![manjaro linux sikaris xfce][8]
-
-Additionally, the Control Center now groups all the desktop modules for managing the system into one easy-to-use window.
-
-These features should improve your overall experience! 😃
-
-#### Linux Kernel 6.1
-
-Manjaro 22 'Sikaris' uses the various enhancements offered by [Linux Kernel 6.1][9].
-
-Those include experimental support for Rust, initial support for Intel's upcoming Meteor Lake chips, improved ARM SoC support, and more.
-
-### Download Manjaro 22
-
-Manjaro 22 'Sikaris' is available for both X86_64 and ARM systems, head over to the official [downloads page][10] to get access.
-
-[Download Manjaro 22][10]
-
-**For existing users,** you can just run '_sudo pacman -Syu_' in the command line to get this release of Manjaro Linux.
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/manjaro-22-0-release/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/manjaro-22-0-release.png
-[2]: https://news.itsfoss.com/manjaro-21-3-0-release/
-[3]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE_2.png
-[4]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_GNOME.png
-[5]: https://github.com/GradienceTeam/Gradience
-[6]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE.png
-[7]: https://news.itsfoss.com/xfce-4-18-release/
-[8]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_XFCE.png
-[9]: https://news.itsfoss.com/linux-kernel-6-1-release/
-[10]: https://manjaro.org/download/
From 1446451607657ff7a602071fd6485f89031ca454 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Thu, 29 Dec 2022 14:15:29 +0800
Subject: [PATCH 160/266] RP
@geekpi
https://linux.cn/article-15392-1.html
---
...Try this Linux web browser as your file manager.md | 101 ++++++++++++++++++
...Try this Linux web browser as your file manager.md | 96 -----------------
2 files changed, 101 insertions(+), 96 deletions(-)
create mode 100644 published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
delete mode 100644 translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
diff --git a/published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
new file mode 100644
index 0000000000..3bef7f1e58
--- /dev/null
+++ b/published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
@@ -0,0 +1,101 @@
+[#]: subject: "Try this Linux web browser as your file manager"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15392-1.html"
+
+试试这个 Linux 网络浏览器作为你的文件管理器
+======
+
+![][0]
+
+> KDE Plasma 桌面将 Konqueror 列为网络浏览器,但它也是一个功能性的 Linux 文件管理器。
+
+Konqueror 是 KDE Plasma 桌面的文件管理器和 Web 浏览器。在许多方面,Konqueror 定义了“网络透明度”,因为它适用于个人桌面。使用 Konqueror,你可以像浏览本地文件一样轻松地浏览远程网络文件(包括互联网本身,它实际上只是通过花哨的镜头查看的远程文件的集合)。有时需要进行一些配置和设置,具体取决于你需要访问的文件共享类型。但最终,通过 Konqueror 实现了即时访问你有权查看的所有数据的目标,这是其他文件管理器无法实现的。在其巅峰时期,它开发的开源网络引擎(KHTML) 被苹果和谷歌采用,并作为现代网络浏览和 Electron 应用开发的核心库延续至今。
+
+今天,KDE Plasma 桌面将 Konqueror 作为网络浏览器。文件管理功能已正式转移到 [Dolphin][1],但 Konqueror 仍然能够完成这项工作。要获得完整和经典的 Konqueror 体验,你应该尝试 Plasma 桌面 3.x 的复刻 [TDE][2],但在本文中,我在 KDE Plasma 桌面版本 5 中使用 Konqueror。
+
+### 安装 Konqueror
+
+如果你已经在运行 KDE Plasma 桌面,你可能已经安装了 Konqueror。如果没有,你可以从发行版软件仓库中安装它。在 Fedora、CentOS、Mageia、OpenMandriva 和类似软件上:
+
+```
+$ sudo dnf install -y konqueror konqueror-plugins
+```
+
+在 Debian、Linux Mint、Elementary 和类似软件上:
+
+```
+$ sudo apt install -y konqueror konqueror-plugins
+```
+
+![Image of Konqueror's file manager.][3]
+
+### 将 Konqueror 配置为文件管理器
+
+Konqueror 最方便的功能是它除了是一个文件管理器之外,还是一个网络浏览器。至少,这在理论上是它最方便的功能。如果你没有将 Konqueror 用作网络浏览器,那么你可能不希望每个文件管理器窗口顶部都有 URL 区域或搜索引擎区域。
+
+与大多数 KDE 应用一样,Konqueror 是高度可配置的。你可以重新定位并添加和删除工具栏、添加或删除按钮等。
+
+要调整显示的工具栏,请启动 Konqueror 并转到 “设置Settings” 菜单并选择 “显示的工具栏Toolbars Shown”。主工具栏可能是你真正需要的文件管理工具栏。它是带有导航按钮的工具栏。但是,你甚至可能不需要它,只要你乐于使用键盘快捷键或使用 “Go” 菜单进行导航即可。
+
+Konqueror 中的键盘导航与 Dolphin 中的相同:
+
+- `Alt + ←`:后退一步
+- `Alt + ↑`:移动到父目录
+- `Alt + Home`:转到主目录
+
+### 侧边栏
+
+要获得包含常用文件夹列表的侧边栏,请按 `F9` 或从 “设置Settings” 菜单中选择 “显示边栏Show Sidebar”。这会在 Konqueror 窗口的左侧添加一个按钮栏。单击 “Home” 图标以显示你的主目录的文件树。
+
+![Image of Konqueror with a sidebar.][4]
+
+正如按钮栏所暗示的那样,此侧边栏可用于多种用途。你可以显示书签位置,你最近访问过的位置的历史,远程文件系统等。
+
+### 应用
+
+有些人习惯于应用菜单。它高效快捷,并且始终在同一个地方。其他人更喜欢从终端启动应用。
+
+不过,还有另一种查看应用启动器的方法。Konqueror 的 “Go” 菜单允许你转到名为 “应用程序Applications” 的元位置,它按类别列出了应用程序启动器,就像文件管理器中的文件一样。
+
+![Image of applications in Konqueror.][5]
+
+你也可以在 Dolphin 中看到这个,方法是在位置区域中手动输入 `applications:`,此外,Konqueror 提供了一个菜单选项,可以直接进入该位置。
+
+### 网络文件夹
+
+类似地,Konqueror 还提供了一个菜单选择进入网络文件夹。其中最好的网络文件夹是“互联网”,但“网络文件夹”是 HTTP 以外的网络协议的元位置。大多数远程位置需要一些设置,因为它们通常需要身份验证才能访问。它们中的大多数都可以通过 “系统设置System Settings” 进行配置,包括可通过蓝牙、SMB 或 CIFS、MTP 设备、Fish(通过 SSH 的文件系统)访问的文件系统,甚至是 Google Drive。
+
+### 拆分视图
+
+你可以将 Konqueror 窗口拆分为多个窗格,这样你就可以同时查看两个文件夹而无需打开两个窗口。有两种拆分选项:垂直拆分,一个窗格在左侧,另一个窗格在右侧;或者水平拆分,一个窗格在另一个窗格之上。
+
+要分割 Konqueror 窗口,进入 “窗口Window” 菜单,选择 “左/右分割视图Split View Left/Right” 或 “上/下分割视图Spit View Top/Bottom”。每个窗格都是独立的,所以你可以在一个窗格中浏览,然后把文件从一个窗格拖到另一个窗格。
+
+### 征服你的文件系统
+
+Konqueror 不 _仅仅_ 是一个文件管理器,我认为 Plasma 桌面的开发者并不期望你把它作为你的主要文件管理器。在 “文件File” 菜单中甚至有一个选项可以在 **Dolphin** 中打开一个位置,这表明 Konqueror 是一个带有文件管理器组件的网络浏览器。但是,当你需要时,这个文件管理器组件是一个不错的功能。如果你不喜欢 Dolphin 提供的所有功能,Konqueror 可能是一个合适的替代品。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-konqueror
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/22/12/linux-file-manager-dolphin
+[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde
+[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png
+[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png
+[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png
+[0]: https://img.linux.net.cn/data/attachment/album/202212/29/141332adtz8mb8m8h8z3d4.jpg
\ No newline at end of file
diff --git a/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
deleted file mode 100644
index 5ff7fe755a..0000000000
--- a/translated/tech/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
+++ /dev/null
@@ -1,96 +0,0 @@
-[#]: subject: "Try this Linux web browser as your file manager"
-[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror"
-[#]: author: "Seth Kenlon https://opensource.com/users/seth"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-试试这个 Linux 网络浏览器作为你的文件管理器
-======
-
-Konqueror 是 KDE Plasma 桌面的文件管理器和 Web 浏览器。在许多方面,Konqueror 定义了“网络透明度”,因为它适用于个人桌面。使用 Konqueror,你可以像浏览本地文件一样轻松地浏览远程网络文件(包括 Internet 本身,它实际上只是通过花哨的镜头查看的远程文件的集合)。有时需要进行一些配置和设置,具体取决于你需要访问的文件共享类型。但最终,通过 Konqueror 实现了即时访问你有权查看的所有数据的目标,这是其他文件管理器无法实现的。在其巅峰时期,它开发的开源网络引擎 (KHTML) 被苹果和谷歌采用,并作为现代网络浏览和 Electron 应用开发的核心库延续至今。
-
-今天,KDE Plasma 桌面将 Konqueror 作为网络浏览器。文件管理已正式转移到 [Dolphin][1],但 Konqueror 仍然能够完成这项工作。要获得完整和经典的 Konqueror 体验,你应该尝试 Plasma Desktop 3.x fork [TDE][2],但在本文中,我在 KDE Plasma Desktop 版本 5 中使用 Konqueror。
-
-### 安装 Konqueror
-
-如果你已经在运行 KDE Plasma Desktop,你可能已经安装了 Konqueror。如果没有,你可以从发行版软件仓库中安装它。在 Fedora、CentOS、Mageia、OpenMandriva 和类似软件上:
-
-```
-$ sudo dnf install -y konqueror konqueror-plugins
-```
-
-在 Debian、Linux Mint、Elementary 和类似软件上:
-
-```
-$ sudo apt install -y konqueror konqueror-plugins
-```
-
-![Image of Konqueror's file manager.][3]
-
-### 将 Konqueror 配置为文件管理器
-
-Konqueror 最方便的功能是它除了是一个文件管理器之外,还是一个网络浏览器。至少,这在理论上是它最方便的功能。如果那你没有将 Konqueror 用作 Web 浏览器,那么你可能不希望每个文件管理器窗口顶部都有 URL 区域或搜索引擎区域。
-
-与大多数 KDE 应用一样,Konqueror 是高度可配置的。你可以重新定位并添加和删除工具栏、添加或删除按钮等。
-
-要调整显示的工具栏,请启动 Konqueror 并转到**设置** 菜单并选择**显示的工具栏**。**主**工具栏可能是你真正需要的文件管理工具栏。它是带有导航按钮的工具栏。但是,你甚至可能不需要它,只要你乐于使用键盘快捷键或使用 **Go** 菜单进行导航即可。
-
-Konqueror 中的键盘导航与 Dolphin 中的相同:
-
-- **Alt+向左箭头**:后退一步
-- **Alt+向上箭头**:移动到父目录
-- **Alt+Home**:转到主目录
-
-### 侧边栏
-
-要获得包含常用文件夹列表的侧边栏,请按 **F9** 或从**设置**菜单中选择**显示边栏**。这会在 Konqueror 窗口的左侧添加一个按钮栏。单击 **Home** 图标以显示你的主目录的文件树。
-
-![Image of Konqueror with a sidebar.][4]
-
-正如按钮栏所暗示的那样,此侧边栏可用于多种用途。你可以显示书签位置,你最近访问过的位置的历史,远程文件系统等。
-
-### 应用
-
-有些人习惯于应用菜单。它高效快捷,并且始终在同一个地方。其他人更喜欢从终端启动应用。
-
-不过,还有另一种查看应用启动器的方法。Konqueror 的 **Go** 菜单允许你转到名为 **Applications** 的元位置,它按类别列出了应用程序启动器,就像文件管理器中的文件一样。
-
-![Image of applications in Konqueror.][5]
-
-你也可以在 Dolphin 中看到这个,方法是在位置区域中手动输入 **applications:**,但在这两者中,Konqueror 提供了一个菜单选项,可以直接进入该位置。
-
-### 网络文件夹
-
-类似地,Konqueror 还提供了一个菜单选择进入网络文件夹。其中最好的网络文件夹是 Internet,但**网络文件夹**是 HTTP 以外的网络协议的元位置。大多数远程位置需要一些设置,因为它们通常需要身份验证才能访问。它们中的大多数都可以通过**系统设置**进行配置,包括可通过蓝牙、SMB 或 CIFS、MTP 设备、Fish(通过 SSH 的文件系统)访问的文件系统,甚至是 Google Drive。
-
-### 拆分视图
-
-你可以将 Konqueror 窗口拆分为多个窗格,这样你就可以同时查看两个文件夹而无需打开两个窗口。有两种拆分选项:垂直拆分,一个窗格在左侧,另一个窗格在右侧,或者水平拆分,一个窗格在另一个窗格之上。
-
-要分割 Konqueror 窗口,进入**窗口**菜单,选择**分割视图左/右**或**分割视图上/下**。每个窗格都是独立的,所以你可以在一个窗格中浏览,然后把文件从一个窗格拖到另一个窗格。
-
-### 征服你的文件系统
-
-Konqueror 不_仅仅_是一个文件管理器,我认为 Plasma 桌面的开发者并不期望你把它作为你的主要文件管理器。在**文件**菜单中甚至有一个选项可以在 **Dolphin** 中打开一个位置,这表明 Konqueror 是一个带有文件管理器组件的网络浏览器。但是,当你需要时,这个文件管理器组件是一个不错的功能。如果你不喜欢 Dolphin 提供的所有功能,Konqueror 可能是一个合适的替代品。
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/linux-file-manager-konqueror
-
-作者:[Seth Kenlon][a]
-选题:[lkxed][b]
-译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/seth
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/22/12/linux-file-manager-dolphin
-[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde
-[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png
-[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png
-[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png
From 2de99e3c2428c5f39b86b98f55a288354c287ed8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 29 Dec 2022 21:56:59 +0800
Subject: [PATCH 161/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221228.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=2011?=
=?UTF-8?q?=20tips=20for=20writing=20a=20good=20Git=20commit=20message.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... 11 tips for writing a good Git commit message.md | 185 ++++++++++++++++++
1 file changed, 185 insertions(+)
create mode 100644 sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md
diff --git a/sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md b/sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md
new file mode 100644
index 0000000000..ae6acb59d1
--- /dev/null
+++ b/sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md
@@ -0,0 +1,185 @@
+[#]: subject: "11 tips for writing a good Git commit message"
+[#]: via: "https://opensource.com/article/22/12/git-commit-message"
+[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+11 tips for writing a good Git commit message
+======
+
+Lately, I have been paying closer attention to the changelogs I get from products and services when updates are needed. Here are some examples:
+
+- Fixed some bugs.
+- Made some accessibility improvements.
+- We've made improvements and fixed bugs for a smoother ride.
+
+When I think about some of the first commit messages I made as a junior developer I have to hang my head in dismay:
+
+- Pointed and clicked around a bit and now things seem to work.
+- Did what programmer X told me to do and now the banner is blue.
+
+This can be frustrating! I asked our community of contributors the following questions:
+
+- What makes a good Git commit message?
+- What makes a bad one?
+- What rules do you think a project should have around what a commit message contains?
+
+Here are their answers:
+
+### Great writing is key
+
+As with anything you write, you should think about who is going to read it. Then adapt the amount and depth of information accordingly.
+
+Improving your natural language and writing skills is essential for a healthy career in software development. It's not just code that counts.
+
+**—[Camilla Conte][1]**
+
+### Be descriptive and don't assume
+
+I spend a lot of my time collaborating in the [OpenStack][2] community, and its code reviewers have some fairly exacting standards compared to what I see from other projects "in the wild."
+
+I'll often spend far longer composing a solid commit message than I do writing the actual code implementation or fix. Sometimes commit messages can end up many times longer than the diffs they're explaining.
+
+To summarize some of the contributor guidance:
+
+- Describe why a change is being made, not just what is changing
+- The first commit line is the most important (like the subject line of an email)
+- Don't assume reviewers understand the original problem you're fixing
+- Don't assume the reviewer has access to external web services or the site (summarize defect reports and other relevant discussions)
+- Don't assume the code is self-evident and self-documenting (though there is no need to repeat points you also make in your code comments)
+- Don't include information only relevant to earlier revisions of the change (we expect contributors to squash revisions together and edit their commit messages accordingly).
+
+There's a brief section on the topic in the OpenStack Contributors Guide: [https://docs.openstack.org/contributors/common/git.html#commit-messages][3]
+
+**—[Jeremy Stanley][4]**
+
+### Your future self will thank you
+
+I cannot agree more with Jeremy. +1000
+
+Jeremy said, "describe why a change is being made, not just what's changing."
+
+Imagine you're someone else, in a faraway future, trying to work out this commit.
+
+Put yourself in other people's shoes, as the old saying goes.
+
+**—[Leigh Morresi][5]**
+
+### Use the bug ID
+
+I recommend adding the bug ID at the start of the commit message so that it's easier to track the commits at a later stage using the [`grep` command][6].
+
+For example:
+
+```
+$ git commit -m "BZ#19xxxxx
+```
+
+To come up with thoughtful commits, consider the following:
+
+- Why have I made these changes?
+- What effect have my changes made?
+- Why was the change needed?
+- What are the changes in reference to?
+
+**—[Agil Antony][7]**
+
+### Tell the whole story
+
+I like to imagine there is a hidden prefix to every commit message that reads "By applying this."
+
+A good commit message includes exactly what will happen and why. It is insufficient to merely have the work ticket reference because that decentralizes the information; Git is decentralized. As a software developer, I want to know why the proposed changes are being considered. What specific problem is being addressed? What alternate solutions were considered (and discarded)? What unexpected things were discovered during the creation of the changeset that influenced the current content?
+
+There's no prize for shortest commit message. Your future self and future colleagues will appreciate you going into depth to explain the problem and why this changeset is the answer. Harness those cooking blogs where there's a five-paragraph life story. Here, however, make the problem the subject of the life story.
+
+**—[Lisa Seelye][8]**
+
+### But don't be overly verbose
+
+A good git commit message contains information about what was done, and nothing else. For instance, if you needed to update the .gitignore, just say "updated .gitignore." Folks can dive into the commit itself for more details. It doesn't need to be verbose.
+
+A bad commit message is something like, "oh crap" or "try this". Granted, I've been guilty of this, but it doesn't help anyone if they need to look at commits at a glance.
+
+Rules are very subjective. They can differ from lead to lead and team to team. But at the very least, give some contextual information about the commit. Especially if it's a large one. No one has time to skim through 1000+ files with a heavy change history.
+
+**—[Miriam Goldman][9]**
+
+### Use present tense
+
+I like project manager-styled commit messages written in present and not future terms (for example, "add" instead of "added"). However, it's usually only possible if commits are frequent. There's only so much "how did I do it" you can remember when you're faced with a deadline. Yet, well-written commits not only help collaborators, but are also helpful to the committer in recollecting history.
+
+**—[Chris Okpada][10]**
+
+### Don't rely on links
+
+One thing I like to remind colleagues of is that you're not just explaining to the people who are going to decide whether to approve your commit. You're also explaining to future developers and users who have found this commit in a bisect or blame operation and are trying to understand its relevance.
+
+If the only context supplied is a link to some external system, and that far in the future the system it links to is no longer in use or has otherwise become inaccessible to that individual, your commit message has been rendered useless and may just as well be blank.
+
+All too often, I go digging in the Git history of some open source project, and find commit messages which are nothing more than a bug ID or a link to some company's internal and private defect tracker.
+
+Don't be that project!
+
+**—[Jeremy Stanley][4]**
+
+### Clear and concise changelogs
+
+As a release communications manager, I often read the entire release board. I also met with developers to discuss any areas that weren't clear yet. Then I tested the release early. After that, I would write a release post by sourcing the changelogs and corresponding revised or new content.
+
+The changelogs are personal reminders for developers, but also have corresponding issues and tickets for them. You should capitalize product names appropriately, use a spell checker, be consistent with punctuation, and sentence structure. The lead developer should proofread these as well. Your customers, that are developers, are reading these. What information should they know before running the update to better serve their customers?
+
+**—[Courtney Robertson][11]**
+
+### Be specific
+
+As a frequent release manager, I like messages that name the component a commit touches, and a brief description of what was changed. Also having a reference back to where the request for this work came from helps to tie fixes together long after we forgot about your clever branch name.
+
+- "fix fatal error" is not ideal.
+- "ISS-304: Fix fatal error in Login Access Control function for users
+ with the Partner role" is better.
+- "ISS-304: Login Access Control: fix fatal error in getPartnerId()" is
+ better still.
+
+I can look at the entire relationship between a Git commit, branch, merge commit, and inspect the individual lines and files that were changed. But I don't have that kind of time in the middle of a release. I want to be able to relate back to the source of this work in the project management tool, have some idea of which components are being changed, and in what way.
+
+**—[Ryan Price][12]**
+
+### Make it a habit
+
+My favorite commit that I'm guilty of is, "commit before I switch branches" because I have to work on something else more urgent. Sometimes, I need to commit my current work to a totally different project. My manager's strategy is to have us work as we normally do. But then when we rebase, he wants us to squash commits where it makes sense and write better messages. I can't say we always do this, but his method does make sense.
+
+I have a lot of "this is broken don't know why" type messages too (haha) where I try things but want to commit that attempt before I try something else in case method A was closer to fixing the issue than method B. Writing code is a hot mess. And I've been writing it for over 10 years.
+
+**—[RachieVee][13]**
+
+What commit message advice or tips do you live by? Let us know in the comments.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/git-commit-message
+
+作者:[AmyJune Hineline][a]
+选题:[lkxed][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/amyjune
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/users/spotlesstofu
+[2]: https://opensource.com/resources/what-is-openstack
+[3]: https://docs.openstack.org/contributors/common/git.html#commit-messages
+[4]: https://opensource.com/users/fungi
+[5]: https://opensource.com/users/dgtlmoon
+[6]: https://opensource.com/downloads/grep-cheat-sheet
+[7]: https://opensource.com/users/agantony
+[8]: https://opensource.com/users/lisa
+[9]: https://opensource.com/users/miriamgoldman
+[10]: https://opensource.com/users/ojchris
+[11]: https://opensource.com/users/courtneyrdev
+[12]: https://opensource.com/users/liberatr
+[13]: https://opensource.com/users/rachievee
From 97b5482b746cc8c4104781d37690424b5a3bbe54 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 29 Dec 2022 21:57:38 +0800
Subject: [PATCH 162/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221229.0=20=E2=AD=90=EF=B8=8F=20Be=20Delighted!=20Un?=
=?UTF-8?q?ity=20Teases=20Version=207.7=20as=20the=20Sign=20of=20Active=20?=
=?UTF-8?q?Development.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...rsion 7.7 as the Sign of Active Development.md | 123 ++++++++++++++++++
1 file changed, 123 insertions(+)
create mode 100644 sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
diff --git a/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md b/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
new file mode 100644
index 0000000000..13cb812f88
--- /dev/null
+++ b/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
@@ -0,0 +1,123 @@
+[#]: subject: "Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development"
+[#]: via: "https://news.itsfoss.com/unity-7-7-dev/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development
+======
+
+Unity 7.7 update plans to bring in some visual overhaul to the desktop environment.
+
+![Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development][1]
+
+Unity, the classic desktop environment, a part of Ubuntu from 2010 to 2017, is all set to receive a big new release. You can expect it to release sometime in 2023, but there is no concrete release date yet.
+
+But not by [Canonical][2].
+
+**If you did not know:** The development of Unity was taken over by a young developer, [Rudra Saraswat][3], who is also the creator of [Ubuntu Unity][4], an official flavor of Ubuntu.
+
+In a recent [blog post][5], Rudra showed us a sneak peek of Unity 7.7 and the various improvements that are set to come.
+
+Let me take you through those.
+
+### Unity 7.7: What To Expect?
+
+![unity 7.7 sneak peek][6]
+
+The sneak peek has revealed quite a few things, these include:
+
+- **Updated Welcome App**
+- **UWidgets**
+- **Improved Dash**
+- **Panel Tweaks**
+- **Enhanced Notification Indicators**
+
+#### Updated Welcome App
+
+![unity 7.7 sneak peek welcome app][7]
+
+A new welcome app will be introduced to Unity, based on a prototype developed by the Ubuntu Flutter Community (written in [Flutter][8]).
+
+The app will not be limited to just one distro, but will be available for all the distros supported by Unity.
+
+#### UWidgets
+
+![unity 7.7 sneak peek uwidgets][9]
+
+Finally, widgets on the Unity desktop? Like KDE?
+
+Well, the introduction of widgets to Unity, written in Python, should be straightforward to set up (only a matter of copying a few files).
+
+The screenshot showcases a bunch of widgets, such as a clock, a system monitor, a widget for Spotify, and more.
+
+That is not all, Rudra also mentions that:
+
+> We’ll be setting up a web store/repository for UWidgets, where you can either submit your own widgets, or download and try out all those amazing widgets on Unity 7.7.
+
+This should make it easier for users to find and download widgets!
+
+#### Improved Dash
+
+![unity 7.7 sneak peek dash][10]
+
+The dash has also been refreshed with a new design based on Unity 7's original design concepts (before Canonical dropped it).
+
+As per the screenshot, it should not take a lot of screen space and still be useful.
+
+#### Panel Tweaks
+
+![unity 7.7 sneak peek panels][11]
+
+The panel is now slightly bigger and more refined than the previous iteration.
+
+#### Enhanced Notification Indicators
+
+![unity 7.7 sneak peek notification indicators][12]
+
+This comes in as a huge usability improvement to Unity; users can now finally take advantage of a proper notification indicator.
+
+It will display essential notifications related to your apps, system and more.
+
+#### Other Changes
+
+![ubuntu unity control center][13]
+
+Some more useful technical improvements include:
+
+- **The unity-control-center shell UI has been improved.**
+- **The default panel opacity was reduced to 0.75.**
+- **The default launcher icon size has been reduced.**
+- **Launcher BFB (Ubuntu icon) was replaced with a half-transparent icon, similar to the Ubuntu Unity 21.04 launcher BFB.**
+
+_Excited about Unity 7.7? Let me know your thoughts in the comments below._
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/unity-7-7-dev/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/ubuntu-unity-7-7-release.png
+[2]: https://canonical.com
+[3]: https://about.ruds.io
+[4]: https://ubuntuunity.org
+[5]: https://unityd.org/unity-7-7-peek/
+[6]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek.jpg
+[7]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Welcome.jpg
+[8]: https://flutter.dev
+[9]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_UWidgets.jpg
+[10]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Dash.jpg
+[11]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Panels.jpg
+[12]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Notif.jpg
+[13]: https://news.itsfoss.com/content/images/2022/12/unity-control-center.png
From ce7c69233987511a412797df5f95502f29c62778 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Fri, 30 Dec 2022 09:32:49 +0800
Subject: [PATCH 163/266] translated
---
...y Challenge the Supremacy of Visual Studio Code.md | 123 ------------------
...y Challenge the Supremacy of Visual Studio Code.md | 123 ++++++++++++++++++
2 files changed, 123 insertions(+), 123 deletions(-)
delete mode 100644 sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
create mode 100644 translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
diff --git a/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
deleted file mode 100644
index a7ca46d18d..0000000000
--- a/sources/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
+++ /dev/null
@@ -1,123 +0,0 @@
-[#]: subject: "5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code"
-[#]: via: "https://news.itsfoss.com/upcoming-code-editors/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code
-======
-
-Interesting code editors that might replace Visual Studio Code for you in 2023!
-
-![5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code][1]
-
-Well, 2022 is coming to an end.
-
-We featured new remarkable code editors being released for Linux, starting from [Lite XL][2], to options like [Pulsar][3] and more.
-
-So, to commemorate that, I have compiled this list of upcoming code editors for Linux that have a strong chance of challenging the supremacy of [Visual Studio Code][4].
-
-Let me take you through it.
-
-### 1. Pulsar
-
-![pulsar][5]
-
-[Pulsar][6] is a community-led open-source code editor aiming to be a replacement for the famous Atom code editor.
-
-The community behind it has been hard at work bringing this on par with the original Atom editor by introducing modern features with an updated architecture.
-
-So, if you were an Atom user, you could try this!
-
-It is available to download from the [official website][7], but do keep in mind that it is in its early development stages.
-
-### 2. Atom Community
-
-![atom community][8]
-
-Also rising from [the ashes][9] of the now-defunct Atom editor, '[Atom Community][10]' is a project meant to take over the concepts and ideas of its predecessor.
-
-They aim to get started by providing the most essential features and making it on par with the functionality available in the [atom-ide-ui][11] package.
-
-It has the potential to be something more, but in its current form, I would not suggest this to new users right now. They have a slightly different long-term goal when compared to Pulsar, which makes it another project worth taking a look at.
-
-But, for 2023, things could be different.
-
-Still, those who like an adventure can build it using the [source code][12].
-
-### 3. Lapce
-
-![lapce][13]
-
-A lightweight and fast open-source code editor?
-
-That is what [Lapce][14] is!
-
-It is a Rust-based open-source code editor that focuses on providing such an experience.
-
-We covered it when it was in the pre-alpha stage, but in 2023 it can be something to watch out for.
-
-### 4. Zed
-
-![zed breadcrumbs][15]
-
-[Zed][16] is an upcoming code editor aiming to challenge VS Code's dominance.
-
-It is set to feature many features, such as Real-time collaboration, a minimal interface, code actions, a command palette, and [more][17].
-
-In fact, Atom's founder, [Nathan Sobo][18] is behind this and has termed this as the '_spiritual successor_' to Atom.
-
-### 5. Lite XL
-
-![lite xl][19]
-
-[Lite XL][2] is an open-source code editor written in Lua, and only uses three megabytes of storage and around twenty megabytes of RAM. (compared to VS Code's ~550 MB).
-
-It could be to your liking if you were looking for a completely minimal code editor.
-
-You can get it right now from the [official website][20], it receives regular updates, and you can expect the same to be true in 2023.
-
-**Well, this is the end of this list and the year 2022.** 😃
-
-_I may have missed some code editors, and I know you will let me know in the comments section. Feel free to share your thoughts!_
-
-> 🌐 Follow us on [Mastodon][21] and [Twitter][22] to never miss an update!
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/upcoming-code-editors/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/upcoming-editors-which-may-challenge-vs-code.png
-[2]: https://itsfoss.com/lite-xl/
-[3]: https://news.itsfoss.com/pulsar-editor/
-[4]: https://code.visualstudio.com
-[5]: https://news.itsfoss.com/content/images/2022/12/Pulsar.png
-[6]: https://pulsar-edit.dev
-[7]: https://pulsar-edit.dev/download.html#releases
-[8]: https://news.itsfoss.com/content/images/2022/12/Atom_Community.jpg
-[9]: https://github.blog/2022-06-08-sunsetting-atom/
-[10]: https://atom-community.github.io
-[11]: https://github.com/facebookarchive/atom-ide-ui
-[12]: https://github.com/atom-community/atom
-[13]: https://news.itsfoss.com/content/images/2022/12/Lapce.jpg
-[14]: https://lapce.dev
-[15]: https://news.itsfoss.com/content/images/2022/12/Zed_Early.jpg
-[16]: https://zed.dev/
-[17]: https://zed.dev/features
-[18]: https://twitter.com/nathansobo
-[19]: https://news.itsfoss.com/content/images/2022/12/LiteXL.jpg
-[20]: https://lite-xl.com/en/downloads
-[21]: https://mastodon.social/@itsfoss
-[22]: https://twitter.com/itsfoss2
diff --git a/translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
new file mode 100644
index 0000000000..c0b3576850
--- /dev/null
+++ b/translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
@@ -0,0 +1,123 @@
+[#]: subject: "5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code"
+[#]: via: "https://news.itsfoss.com/upcoming-code-editors/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+5 个即将推出的代码编辑器可能会挑战 Visual Studio Code 的霸主地位
+======
+
+有趣的代码编辑器可能会在 2023 年取代 Visual Studio Code!
+
+![5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code][1]
+
+嗯,2022 年即将结束。
+
+我们推出了针对 Linux 发布的新的卓越代码编辑器,从 [Lite XL][2] 到 [Pulsar][3] 等。
+
+因此,为了纪念这一点,我编制了这份即将推出的 Linux 代码编辑器列表,它们很有可能挑战 [Visual Studio Code][4] 的霸主地位。
+
+让我带你了解它。
+
+### 1. Pulsar
+
+![pulsar][5]
+
+[Pulsar][6] 是一个社区主导的开源代码编辑器,旨在替代著名的 Atom 代码编辑器。
+
+它背后的社区一直在努力工作,通过引入具有更新架构的现代功能,使其与原始 Atom 编辑器不相上下。
+
+所以,如果你是 Atom 用户,你可以试试这个!
+
+它可以从[官方网站][7]下载,但请记住,它还处于早期开发阶段。
+
+### 2. Atom 社区
+
+![atom community][8]
+
+“[Atom 社区][10]”也是从现已停止维护的 Atom 编辑器的[灰烬][9]中崛起的,它是一个旨在接管其前身的概念和想法的项目。
+
+他们的目标是从提供最基本的特性开始,并使其与 [atom-ide-ui][11] 包中的可用功能相媲美。
+
+它可能会有更多东西,但就目前的形式而言,我现在不建议新用户这样做。与 Pulsar 相比,他们的长期目标略有不同,这使它成为另一个值得一看的项目。
+
+但是,到 2023 年,情况可能会有所不同。
+
+不过,那些喜欢冒险的人可以使用[源代码][12]来构建它。
+
+### 3. Lapce
+
+![lapce][13]
+
+一个轻量级和快速的开源代码编辑器?
+
+这就是 [Lapce][14]!
+
+它是一个基于 Rust 的开源代码编辑器,专注于提供这样的体验。
+
+我们在它处于 pre-alpha 阶段时对其进行了介绍,但在 2023 年它可能会引起注意。
+
+### 4. Zed
+
+![zed breadcrumbs][15]
+
+[Zed][16] 是即将推出的代码编辑器,旨在挑战 VS Code 的统治地位。
+
+它有许多功能,例如实时协作、最小界面、代码动作、命令面板等[更多功能][17]。
+
+事实上,Atom 的创始人 [Nathan Sobo][18] 是这一切的幕后推手,并将其称为 Atom 的“_精神继承者_”。
+
+### 5. Lite XL
+
+![lite xl][19]
+
+[Lite XL][2] 是一个用 Lua 编写的开源代码编辑器,仅使用 3MB 的存储空间和大约 20MB 的内存。(与 VS Code 的 ~550 MB 相比)。
+
+如果你正在寻找一个完全最小化的代码编辑器,它可能会合你的口味。
+
+你现在可以从[官方网站][20]获取它,它会定期更新,预计 2023 年也会如此。
+
+**好了,这是这份名单的结束,也是2022年的结束。** 😃
+
+_我可能错过了一些代码编辑器,我知道你会在评论部分告诉我。随时分享你的想法!_
+
+> 🌐 在 [Mastodon][21] 和 [Twitter][22] 上关注我们,不错过任何更新!
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/upcoming-code-editors/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/upcoming-editors-which-may-challenge-vs-code.png
+[2]: https://itsfoss.com/lite-xl/
+[3]: https://news.itsfoss.com/pulsar-editor/
+[4]: https://code.visualstudio.com
+[5]: https://news.itsfoss.com/content/images/2022/12/Pulsar.png
+[6]: https://pulsar-edit.dev
+[7]: https://pulsar-edit.dev/download.html#releases
+[8]: https://news.itsfoss.com/content/images/2022/12/Atom_Community.jpg
+[9]: https://github.blog/2022-06-08-sunsetting-atom/
+[10]: https://atom-community.github.io
+[11]: https://github.com/facebookarchive/atom-ide-ui
+[12]: https://github.com/atom-community/atom
+[13]: https://news.itsfoss.com/content/images/2022/12/Lapce.jpg
+[14]: https://lapce.dev
+[15]: https://news.itsfoss.com/content/images/2022/12/Zed_Early.jpg
+[16]: https://zed.dev/
+[17]: https://zed.dev/features
+[18]: https://twitter.com/nathansobo
+[19]: https://news.itsfoss.com/content/images/2022/12/LiteXL.jpg
+[20]: https://lite-xl.com/en/downloads
+[21]: https://mastodon.social/@itsfoss
+[22]: https://twitter.com/itsfoss2
From 4e3e28775fb806918bc1adccab25909aeeb5875c Mon Sep 17 00:00:00 2001
From: geekpi
Date: Fri, 30 Dec 2022 09:41:44 +0800
Subject: [PATCH 164/266] translating
---
...️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md b/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
index a6e34a26fe..6a914d5ab3 100644
--- a/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
+++ b/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
@@ -2,7 +2,7 @@
[#]: via: "https://itsfoss.com/buzzing-noise-speaker-linux"
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 280626c062990e3d528722e924584359a3e515bb Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Fri, 30 Dec 2022 10:36:02 +0800
Subject: [PATCH 165/266] RP
@yzuowei
https://linux.cn/article-15395-1.html
---
.../20220729 Learn Rust by debugging Rust.md | 45 +++++++++----------
1 file changed, 22 insertions(+), 23 deletions(-)
rename {translated/tech => published}/20220729 Learn Rust by debugging Rust.md (78%)
diff --git a/translated/tech/20220729 Learn Rust by debugging Rust.md b/published/20220729 Learn Rust by debugging Rust.md
similarity index 78%
rename from translated/tech/20220729 Learn Rust by debugging Rust.md
rename to published/20220729 Learn Rust by debugging Rust.md
index f725d789dc..3129292941 100644
--- a/translated/tech/20220729 Learn Rust by debugging Rust.md
+++ b/published/20220729 Learn Rust by debugging Rust.md
@@ -3,29 +3,28 @@
[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe"
[#]: collector: "lkxed"
[#]: translator: "yzuowei"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15395-1.html"
-以调试 Rust 来学习 Rust
+以调试 Rust 的方式来学习 Rust
======
-Rustlings 是由 Rust 团队维护的开源项目旨在帮助你通过调试代码来学习 Rust。
+
+> Rustlings 是由 Rust 团队维护的开源项目,旨在帮助你通过调试代码的方式来学习 Rust。
![Ferris the crab under the sea, unofficial logo for Rust programming language][1]
-图片来源:Opensource.com
-
-在我上一篇[关于 rustup 的文章][2]中,我向你们展示了如何安装 Rust 工具链。但是,如果不能上手操作一下 Rust 的话下载工具链又有什么用?学习任何语言都包括阅读现有的代码和写很多的示例程序。这是精通一门语言的好方法。然而,我们还可以走第三条路:调试代码。
+在我上一篇 [关于 Rustup 的文章][2] 中,我向你们展示了如何安装 Rust 工具链。但是,如果不能上手操作一下 Rust 的话下载工具链又有什么用?学习任何语言都包括阅读现有的代码和写很多的示例程序,这是精通一门语言的好方法。然而,我们还可以走第三条路:调试代码。
通过调试来学习牵扯到尝试去编译一个已经写好的(满是漏洞的)示例程序,理解编译器生成的错误信息,修复示例代码,然后再重新编译。重复这个过程直到代码能够成功被编译并运行。
-[Rustlings][3] 是一个由 Rust 团队维护的开源项目旨在帮助你通过调试代码来学习 Rust。它也会一路为你提供提示。如果你是一名 Rust 初学者并且刚开始读或已经读完了 Rust 书,那么 rustlings 就是理想的下一步。Rustllings 帮助你将运用书中所学,并转向开发更大的项目。
+[Rustlings][3] 是一个由 Rust 团队维护的开源项目,旨在帮助你通过调试代码来学习 Rust。它也会一路为你提供提示。如果你是一名 Rust 初学者,并且刚开始阅读或已经读完了 Rust 书籍,那么 Rustlings 就是理想的下一步。Rustllings 帮助你将运用书中所学,并转向开发更大的项目。
-### 安装 rustlings
+### 安装 Rustlings
-我使用(并推荐)Fedora 电脑来体验 rustlings,但是任何 Linux 发行版都可以。要安装 rustlings,你必须下载并运行它的安装脚本。通常建议你以不具备任何特别权限的普通用户(非 root 用户)来运行脚本。
+我使用(并推荐)Fedora 电脑来体验 Rustlings,但是任何 Linux 发行版都可以。要安装 Rustlings,你必须下载并运行它的安装脚本。通常建议你以不具备任何特别权限的普通用户(非 root 用户)来运行脚本。
-记住,你需要 Rust 工具链来使用 rustlings。如果你还没有这些工具链,请参考我[关于 rustup 的文章][4]。
+记住,你需要 Rust 工具链来使用 Rustlings。如果你还没有这些工具链,请参考我 [关于 Rustup 的文章][4]。
当你准备好时,下载这个安装脚本:
@@ -51,17 +50,17 @@ Installed package `rustlings v4.8.0 (/home/tux/rustlings)` (executable `rustling
All done!
```
-运行 'rustlings' 以开始。
+运行 `rustlings` 以开始。
### Rustlings 练习
-你现在可以使用命令 `rustlings`。与旗标 `--help` 一起执行来查看可选的选项。
+你现在可以使用命令 `rustlings`。与标志 `--help` 一起执行来查看可选的选项。
```
$ rustlings --help
```
-这个安装脚本也克隆了 rustlings 的 Git 仓库,并安装了运行示例程序所需的依赖。你可以在 `ruslings` 底下的 exercises 目录查阅这些示例程序。
+这个安装脚本也克隆了 Rustlings 的 Git 仓库,并安装了运行示例程序所需的依赖。你可以在 `ruslings` 下的 `exercises` 目录查阅这些示例程序。
```
$ cd rustlings
@@ -77,7 +76,7 @@ standard_library_types, strings, structs, tests, threads, traits, variables
### 从命令行列出所有练习
-命令 `ruslings` 提供给你一个 `list` 命令用以展示每个示例程序,它的完整路径,以及状态 (默认为 **pending**)。
+命令 `ruslings` 提供给你一个 `list` 命令用以展示每个示例程序,它的完整路径,以及状态 (默认为 “待定”)。
```
$ rustlings list
@@ -106,7 +105,7 @@ $ cat exercises/intro/intro1.rs
### 验证你的程序
-现在你可以开始调试程序了。你可以使用命令 `verify` 来做这件事。注意 rustlings 选择了列表里的第一个程序 (`intro1.rs`) 并尝试去编译它,最后编译成功:
+现在你可以开始调试程序了。你可以使用命令 `verify` 来做这件事。注意 Rustlings 选择了列表里的第一个程序(`intro1.rs`)并尝试去编译它,最后编译成功:
```
$ rustlings verify
@@ -129,11 +128,11 @@ $ grep "NOT DONE" exercises/intro/intro1.rs
// I AM NOT DONE
```
-虽然第一个程序的编译没有问题,除非你去掉注释 `I AM NOT DONE`,rustlings 不会移到下一个程序。
+虽然第一个程序的编译没有问题,除非你去掉注释 `I AM NOT DONE`,Rustlings 不会移到下一个程序。
### 来到下一个练习
-一旦你从 `intro1.rs` 中去掉这些注释,你就可以通过再一次运行命令 `rustlings verify` 来到下一个练习。这一次,你会发现 rustlings 尝试去编译这个系列中的下一个程序(`intro2.rs`),但是遇到了一个错误。你应该调试并修复这个问题,并前进。这是你理解为什么 Rust 说程序有漏洞的至关重要的一步。
+一旦你从 `intro1.rs` 中去掉这些注释,你就可以通过再一次运行命令 `rustlings verify` 来到下一个练习。这一次,你会发现 Rustlings 尝试去编译这个系列中的下一个程序(`intro2.rs`),但是遇到了一个错误。你应该调试并修复这个问题,并前进。这是你理解为什么 Rust 说程序有漏洞的至关重要的一步。
```
$ rustlings verify
@@ -190,7 +189,7 @@ variables3 exercises/variables/variables3.rs Pending
### 运行特定的练习
-如果你不想从头开始并且想要跳过一些练习,rustlings 允许你使用命令 `rustlings run` 来专注特定的练习。如此可以运行指定的程序而不需要验证之前的课程。例如:
+如果你不想从头开始并且想要跳过一些练习,Rustlings 允许你使用命令 `rustlings run` 来专注特定的练习。如此可以运行指定的程序而不需要验证之前的课程。例如:
```
$ rustlings run intro2
@@ -199,7 +198,7 @@ Hello world!
$ rustlings run variables1
```
-敲入练习名字可能会变得乏味,但 rustlings 为你准备了便利的命令 `next` 用来移向系列中的下一个练习。
+敲入练习名字可能会变得乏味,但 Rustlings 为你准备了便利的命令 `next` 用来移向系列中的下一个练习。
```
$ rustlings run next
@@ -217,7 +216,7 @@ $ rustlings watch
Rust 编译器以提供非常有意义的错误信息而被熟知,这些错误信息会帮助你理解在你代码中的问题。这通常意味着更快的调试。Rustlings 是练习 Rust,学会阅读错误信息,并理解 Rust 语言的优秀途径。来看看 [GitHub][7] 上 Rustlings 5.0.0 的最新功能吧。
-**[[ 学习 Rust 编程,来下载我们的 Rust 速查表。 ]][8]**
+> **[下载 Rust 速查表][8]**
--------------------------------------------------------------------------------
@@ -226,7 +225,7 @@ via: https://opensource.com/article/22/7/learn-rust-rustlings
作者:[Gaurav Kamathe][a]
选题:[lkxed][b]
译者:[yzuowei](https://github.com/yzuowei)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From 1a2d982dbf633f645a779cde02820fc97a8bc51d Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Fri, 30 Dec 2022 11:00:19 +0800
Subject: [PATCH 166/266] RP
@geekpi
https://linux.cn/article-15396-1.html
---
...Try this Python-based file manager on Linux.md | 33 +++++++++++--------
1 file changed, 19 insertions(+), 14 deletions(-)
rename {translated/tech => published}/20221218.1 ⭐️ Try this Python-based file manager on Linux.md (74%)
diff --git a/translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/published/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
similarity index 74%
rename from translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
rename to published/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
index 1751281710..bdf9cf56a9 100644
--- a/translated/tech/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
+++ b/published/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
@@ -3,20 +3,24 @@
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15396-1.html"
在 Linux 上试试这个基于 Python 的文件管理器
======
+![][0]
+
+> Dragonfly Navigator 是用 Python 和 Qt 编写的通用文件管理器。
+
Dragonfly Navigator 是用 Python 和 Qt 编写的通用文件管理器。它易于安装和使用,并且是 Python 可以做什么的一个很好的例子。
-Python 是一种流行的语言有几个原因,但我认为它的主要优势之一是它对初级程序员和有经验的编码人员同样有用。你可以从一门语言中获得一些令人兴奋的东西,从[绘制基本几何形状][1]到[抓取网页][2]再到编写僵尸启示录[游戏][3],或者编写你每天都可以使用的桌面应用。这就是 Dragonfly Navigator:一个人人都可以使用的桌面程序。
+Python 是一种流行的语言有几个原因,但我认为它的主要优势之一是它对初级程序员和有经验的编码人员同样有用。你可以从一门语言中获得一些令人兴奋的东西,从 [绘制基本几何形状][1] 到 [抓取网页][2] 再到编写僵尸启示录 [游戏][3],或者编写你每天都可以使用的桌面应用。这就是 Dragonfly Navigator:一个人人都可以使用的桌面程序。
### 安装 Dragonfly Navigator
-要安装 Dragonfly Navigator,首先从 [Git 仓库][4]下载源代码。如果你使用的是 Debian Linux 或类似软件,请下载 `.deb` 文件。如果你使用的是 Fedora、CentOS、Mageia、OpenMandriva 或类似软件,请下载 `.tar.gz` 文件。
+要安装 Dragonfly Navigator,首先从 [Git 仓库][4] 下载源代码。如果你使用的是 Debian Linux 或类似软件,请下载 `.deb` 文件。如果你使用的是 Fedora、CentOS、Mageia、OpenMandriva 或类似软件,请下载 `.tar.gz` 文件。
Dragonfly Navigator 只有很少的依赖。因为你不是通过包管理器安装它,所以由你来解决这些问题。它只有两个依赖,所以使用你的包管理器(`dnf` 或 `apt`)找到并安装它们:
@@ -31,7 +35,7 @@ Dragonfly Navigator 只有很少的依赖。因为你不是通过包管理器安
$ tar xvf dragonfly*gz
```
-在基于 Debian 的系统上,Dragonfly Navigator 出现在你的应用菜单中。在其他系统上,你必须手动启动它,除非你[手动安装][5]。
+在基于 Debian 的系统上,Dragonfly Navigator 出现在你的应用菜单中。在其他系统上,你必须手动启动它,除非你 [手动安装][5]。
现在,我没有安装它,所以我手动启动它:
@@ -48,7 +52,7 @@ Dragonfly Navigator 是一个双面板文件管理器,这意味着它总是向
### 打开目录
-要打开目录,请双击它。默认情况下,该目录在同一面板中打开。但是,如果你想使用双面板布局,请在双击时按住 **Ctrl** 键以在另一个面板中显示其内容。
+要打开目录,请双击它。默认情况下,该目录在同一面板中打开。但是,如果你想使用双面板布局,请在双击时按住 `Ctrl` 键以在另一个面板中显示其内容。
### 打开文件
@@ -58,7 +62,7 @@ Dragonfly Navigator 是一个双面板文件管理器,这意味着它总是向
### 快速预览
-某些文件可用于快速预览,因此你不必在任何特定应用中打开它们。要预览文件,请将鼠标悬停在文件上,然后按键盘上的 **Alt** 键。预览出现在对面的面板中。
+某些文件可用于快速预览,因此你不必在某个特定应用中打开它们。要预览文件,请将鼠标悬停在文件上,然后按键盘上的 `Alt` 键。预览出现在对面的面板中。
![The second panel of Dragonfly Navigator can be used as a preview pane.][7]
@@ -68,19 +72,19 @@ Dragonfly Navigator 是一个双面板文件管理器,这意味着它总是向
- 在一个面板中,进入目标目录。这是你要将文件复制到的位置。
- 在另一个面板中,选择要复制的文件。
-- 单击 Dragonfly Navigator 中间条中的**复制**按钮。
+- 单击 Dragonfly Navigator 中间条中的 “复制Copy” 按钮。
-要移动文件,请按照相同的步骤操作,但要单击**移动**按钮。
+要移动文件,请按照相同的步骤操作,但要单击 “移动Move” 按钮。
-如果你不习惯双面板文件管理器,一开始会觉得很陌生。但是你仔细想想,在你常用的文件管理器中复制一个文件需要几个步骤(找到文件,打开另一个窗口,拖放等等)。做几次之后,它 成为第二天性。
+如果你不习惯双面板文件管理器,一开始会觉得很陌生。但是你仔细想想,在你常用的文件管理器中复制一个文件需要几个步骤(找到文件,打开另一个窗口,拖放等等)。做几次之后,它成为第二天性。
### 选择文件
通常,你单击一个文件或文件夹以使其成为你的活动选择。这可能与你当前的文件管理器没有什么不同,或者至少与你过去使用过的某些文件管理器没有什么不同。
-要选择一个范围内的多个项目,请单击一个文件,然后按住 **Shift** 键并单击另一个文件。你单击的两个文件之间的所有项目也被选中。
+要选择一个范围内的多个项目,请单击一个文件,然后按住 `Shift` 键并单击另一个文件。你单击的两个文件之间的所有项目也被选中。
-要选择多个任意文件,请按住 **Ctrl** 键并单击要选择的文件。
+要选择多个任意文件,请按住 `Ctrl` 键并单击要选择的文件。
### Qt 和 Python 的力量
@@ -93,7 +97,7 @@ via: https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -106,3 +110,4 @@ via: https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator
[5]: https://opensource.com/article/18/1/how-install-apps-linux
[6]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator.webp
[7]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator-preview.webp
+[0]: https://img.linux.net.cn/data/attachment/album/202212/30/105706fk81jdkd1jkh9xpc.jpg
\ No newline at end of file
From 354ca8193f4f0448343a4ad1346ca5fa53211012 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 31 Dec 2022 15:44:54 +0800
Subject: [PATCH 167/266] RP
@wxy
https://linux.cn/article-15398-1.html
---
...rsion 7.7 as the Sign of Active Development.md | 123 ++++++++++++++++++
...rsion 7.7 as the Sign of Active Development.md | 123 ------------------
2 files changed, 123 insertions(+), 123 deletions(-)
create mode 100644 published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
delete mode 100644 sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
diff --git a/published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md b/published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
new file mode 100644
index 0000000000..aa582149ce
--- /dev/null
+++ b/published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
@@ -0,0 +1,123 @@
+[#]: subject: "Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development"
+[#]: via: "https://news.itsfoss.com/unity-7-7-dev/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15398-1.html"
+
+Unity 正在积极开发,预告 7.7 版
+======
+
+> Unity 7.7 版的更新计划为该桌面环境带来一些视觉上的改革。
+
+![][1]
+
+Unity,经典的桌面环境,从 2010 年到 2017 年都是 Ubuntu 的一部分,将收到一个大的新版本。你可以期待它在 2023 年的某个时候发布,但目前还没有具体的发布日期。
+
+但不是由 [Canonical][2] 发布。
+
+**如果你不知道:** Unity 的开发由一位年轻的开发者 [Rudra Saraswat][3] 接手,他也是 [Ubuntu Unity][4] 衍生版的创造者,这是 Ubuntu 的一个官方特色版。
+
+在最近的一篇 [博文][5] 中,Rudra 向我们揭示了 Unity 7.7 的一角和即将到来的各种改进。
+
+让我带你看看这些。
+
+### Unity 7.7 值得期待的地方
+
+![unity 7.7 一窥][6]
+
+这次披露的内容有很多,其中包括:
+
+- 更新的欢迎应用程序
+- UWidgets
+- 改进的仪表盘
+- 面板的调整
+- 增强的通知指示器
+
+#### 更新的欢迎应用程序
+
+![][7]
+
+一个新的欢迎应用程序将被引入 Unity,它基于 Ubuntu Flutter 社区开发的原型(用 [Flutter][8] 编写)。
+
+这个应用程序将不只限于一个发行版,而是适用于 Unity 所支持的所有发行版。
+
+#### UWidgets
+
+![][9]
+
+终于有了,Unity 桌面上的小部件?像 KDE 一样?
+
+好吧,在 Unity 中引入用 Python 编写的小部件,应该很简单就可以设置(只是复制几个文件的问题)。
+
+屏幕截图展示了一堆小部件,如时钟、系统监视器、Spotify 的小部件等等。
+
+这还不是全部,Rudra 还提到:
+
+> 我们将为 UWidgets 建立一个网页商店/仓库,在那里你可以提交你自己的小部件,或者下载并试用 Unity 7.7 上所有这些令人惊叹的小部件。
+
+这应该会使用户更容易找到和下载小部件!
+
+#### 改进的仪表盘
+
+![][10]
+
+仪表盘Dash也被刷新了,新的设计基于 Unity 7 的原始设计概念(在 Canonical 放弃它之前)。
+
+按照截图,它应该不会占用大量的屏幕空间,而且还很有用。
+
+#### 面板的调整
+
+![][11]
+
+现在的面板比之前的版本略大且更精致。
+
+#### 增强的通知指示器
+
+![][12]
+
+这对 Unity 来说是一个巨大的可用性改进;用户现在终于可以利用一个适当的通知指示器了。
+
+它将显示与你的应用程序、系统和更多相关的基本通知。
+
+#### 其他变化
+
+![][13]
+
+一些更有用的技术改进包括:
+
+- unity-control-center 的外壳 UI 得到了改进
+- 默认的面板不透明度降低到 0.75
+- 默认的启动器图标尺寸被缩小了
+- 启动器按钮(Ubuntu 图标)被替换为半透明的图标,类似于 Ubuntu Unity 21.04 的启动器按钮。
+
+_对 Unity 7.7 感到激动?请在下面的评论中告诉我你的想法。_
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/unity-7-7-dev/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/ubuntu-unity-7-7-release.png
+[2]: https://canonical.com
+[3]: https://about.ruds.io
+[4]: https://ubuntuunity.org
+[5]: https://unityd.org/unity-7-7-peek/
+[6]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek.jpg
+[7]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Welcome.jpg
+[8]: https://flutter.dev
+[9]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_UWidgets.jpg
+[10]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Dash.jpg
+[11]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Panels.jpg
+[12]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Notif.jpg
+[13]: https://news.itsfoss.com/content/images/2022/12/unity-control-center.png
diff --git a/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md b/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
deleted file mode 100644
index 13cb812f88..0000000000
--- a/sources/news/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
+++ /dev/null
@@ -1,123 +0,0 @@
-[#]: subject: "Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development"
-[#]: via: "https://news.itsfoss.com/unity-7-7-dev/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development
-======
-
-Unity 7.7 update plans to bring in some visual overhaul to the desktop environment.
-
-![Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development][1]
-
-Unity, the classic desktop environment, a part of Ubuntu from 2010 to 2017, is all set to receive a big new release. You can expect it to release sometime in 2023, but there is no concrete release date yet.
-
-But not by [Canonical][2].
-
-**If you did not know:** The development of Unity was taken over by a young developer, [Rudra Saraswat][3], who is also the creator of [Ubuntu Unity][4], an official flavor of Ubuntu.
-
-In a recent [blog post][5], Rudra showed us a sneak peek of Unity 7.7 and the various improvements that are set to come.
-
-Let me take you through those.
-
-### Unity 7.7: What To Expect?
-
-![unity 7.7 sneak peek][6]
-
-The sneak peek has revealed quite a few things, these include:
-
-- **Updated Welcome App**
-- **UWidgets**
-- **Improved Dash**
-- **Panel Tweaks**
-- **Enhanced Notification Indicators**
-
-#### Updated Welcome App
-
-![unity 7.7 sneak peek welcome app][7]
-
-A new welcome app will be introduced to Unity, based on a prototype developed by the Ubuntu Flutter Community (written in [Flutter][8]).
-
-The app will not be limited to just one distro, but will be available for all the distros supported by Unity.
-
-#### UWidgets
-
-![unity 7.7 sneak peek uwidgets][9]
-
-Finally, widgets on the Unity desktop? Like KDE?
-
-Well, the introduction of widgets to Unity, written in Python, should be straightforward to set up (only a matter of copying a few files).
-
-The screenshot showcases a bunch of widgets, such as a clock, a system monitor, a widget for Spotify, and more.
-
-That is not all, Rudra also mentions that:
-
-> We’ll be setting up a web store/repository for UWidgets, where you can either submit your own widgets, or download and try out all those amazing widgets on Unity 7.7.
-
-This should make it easier for users to find and download widgets!
-
-#### Improved Dash
-
-![unity 7.7 sneak peek dash][10]
-
-The dash has also been refreshed with a new design based on Unity 7's original design concepts (before Canonical dropped it).
-
-As per the screenshot, it should not take a lot of screen space and still be useful.
-
-#### Panel Tweaks
-
-![unity 7.7 sneak peek panels][11]
-
-The panel is now slightly bigger and more refined than the previous iteration.
-
-#### Enhanced Notification Indicators
-
-![unity 7.7 sneak peek notification indicators][12]
-
-This comes in as a huge usability improvement to Unity; users can now finally take advantage of a proper notification indicator.
-
-It will display essential notifications related to your apps, system and more.
-
-#### Other Changes
-
-![ubuntu unity control center][13]
-
-Some more useful technical improvements include:
-
-- **The unity-control-center shell UI has been improved.**
-- **The default panel opacity was reduced to 0.75.**
-- **The default launcher icon size has been reduced.**
-- **Launcher BFB (Ubuntu icon) was replaced with a half-transparent icon, similar to the Ubuntu Unity 21.04 launcher BFB.**
-
-_Excited about Unity 7.7? Let me know your thoughts in the comments below._
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/unity-7-7-dev/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/ubuntu-unity-7-7-release.png
-[2]: https://canonical.com
-[3]: https://about.ruds.io
-[4]: https://ubuntuunity.org
-[5]: https://unityd.org/unity-7-7-peek/
-[6]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek.jpg
-[7]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Welcome.jpg
-[8]: https://flutter.dev
-[9]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_UWidgets.jpg
-[10]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Dash.jpg
-[11]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Panels.jpg
-[12]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Notif.jpg
-[13]: https://news.itsfoss.com/content/images/2022/12/unity-control-center.png
From 8393b206381b25f76ba1545ba19cf143aa491ab9 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 31 Dec 2022 16:41:37 +0800
Subject: [PATCH 168/266] RP
@geekpi
https://linux.cn/article-15399-1.html
---
...y Challenge the Supremacy of Visual Studio Code.md | 42 +++++++++----------
1 file changed, 20 insertions(+), 22 deletions(-)
rename {translated/tech => published}/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md (72%)
diff --git a/translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/published/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
similarity index 72%
rename from translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
rename to published/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
index c0b3576850..9b925483b3 100644
--- a/translated/tech/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
+++ b/published/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
@@ -3,14 +3,14 @@
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15399-1.html"
-5 个即将推出的代码编辑器可能会挑战 Visual Studio Code 的霸主地位
+5 个即将推出的可能会挑战 VS Code 的代码编辑器
======
-有趣的代码编辑器可能会在 2023 年取代 Visual Studio Code!
+> 这些有趣的代码编辑器可能会在 2023 年取代 VS Code!
![5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code][1]
@@ -18,27 +18,27 @@
我们推出了针对 Linux 发布的新的卓越代码编辑器,从 [Lite XL][2] 到 [Pulsar][3] 等。
-因此,为了纪念这一点,我编制了这份即将推出的 Linux 代码编辑器列表,它们很有可能挑战 [Visual Studio Code][4] 的霸主地位。
+因此,为了纪念这一点,我编制了这份即将推出的 Linux 代码编辑器列表,它们很有可能挑战 [VS Code][4] 的霸主地位。
让我带你了解它。
-### 1. Pulsar
+### 1、Pulsar
![pulsar][5]
[Pulsar][6] 是一个社区主导的开源代码编辑器,旨在替代著名的 Atom 代码编辑器。
-它背后的社区一直在努力工作,通过引入具有更新架构的现代功能,使其与原始 Atom 编辑器不相上下。
+它使用与 Atom 相同的代码库,有一个开源的后端(得益于逆向工程的工作),更新了依赖性。
-所以,如果你是 Atom 用户,你可以试试这个!
+他们有计划在不久的将来对其进行改进。
-它可以从[官方网站][7]下载,但请记住,它还处于早期开发阶段。
+它可以从 [官方网站][7] 下载,但请记住,它还处于早期开发阶段。
-### 2. Atom 社区
+### 2、Atom 社区版
![atom community][8]
-“[Atom 社区][10]”也是从现已停止维护的 Atom 编辑器的[灰烬][9]中崛起的,它是一个旨在接管其前身的概念和想法的项目。
+“[Atom 社区版][10]” 也是从现已停止维护的 Atom 编辑器的 [灰烬][9] 中重生的,它是一个旨在接管其前身的概念和想法的项目。
他们的目标是从提供最基本的特性开始,并使其与 [atom-ide-ui][11] 包中的可用功能相媲美。
@@ -46,9 +46,9 @@
但是,到 2023 年,情况可能会有所不同。
-不过,那些喜欢冒险的人可以使用[源代码][12]来构建它。
+尽管如此,那些喜欢冒险的人可以使用 [源代码][12] 来构建它。
-### 3. Lapce
+### 3、Lapce
![lapce][13]
@@ -60,17 +60,17 @@
我们在它处于 pre-alpha 阶段时对其进行了介绍,但在 2023 年它可能会引起注意。
-### 4. Zed
+### 4、Zed
![zed breadcrumbs][15]
[Zed][16] 是即将推出的代码编辑器,旨在挑战 VS Code 的统治地位。
-它有许多功能,例如实时协作、最小界面、代码动作、命令面板等[更多功能][17]。
+它有许多功能,例如实时协作、极简界面、代码动作、命令面板等 [更多功能][17]。
事实上,Atom 的创始人 [Nathan Sobo][18] 是这一切的幕后推手,并将其称为 Atom 的“_精神继承者_”。
-### 5. Lite XL
+### 5、Lite XL
![lite xl][19]
@@ -78,14 +78,12 @@
如果你正在寻找一个完全最小化的代码编辑器,它可能会合你的口味。
-你现在可以从[官方网站][20]获取它,它会定期更新,预计 2023 年也会如此。
+你现在可以从 [官方网站][20] 获取它,它会定期更新,预计 2023 年也会如此。
-**好了,这是这份名单的结束,也是2022年的结束。** 😃
+**好了,这是这份名单的结束,也是 2022 年的结束。** 😃
_我可能错过了一些代码编辑器,我知道你会在评论部分告诉我。随时分享你的想法!_
-> 🌐 在 [Mastodon][21] 和 [Twitter][22] 上关注我们,不错过任何更新!
-
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/upcoming-code-editors/
@@ -93,7 +91,7 @@ via: https://news.itsfoss.com/upcoming-code-editors/
作者:[Sourav Rudra][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From dd74b5193f46acaf0982e18fad6400df308a01a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 31 Dec 2022 23:57:46 +0800
Subject: [PATCH 169/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020221230.0=20=E2=AD=90=EF=B8=8F=20An=20Open-Source=20A?=
=?UTF-8?q?lternative=20to=20Google,=20Alexa,=20and=20Siri=20in=20Works=20?=
=?UTF-8?q?for=20Home=20Assistant=20Platform.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...d Siri in Works for Home Assistant Platform.md | 80 +++++++++++++++++++
1 file changed, 80 insertions(+)
create mode 100644 sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
diff --git a/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
new file mode 100644
index 0000000000..80b6010732
--- /dev/null
+++ b/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
@@ -0,0 +1,80 @@
+[#]: subject: "An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform"
+[#]: via: "https://news.itsfoss.com/open-source-assistant/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform
+======
+
+An open-source assistant to replace Google, Alexa, Siri?
+
+![An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform][1]
+
+**Home Assistant** is an open-source smart home platform that focuses on providing local control and privacy to its users. It can run off a Raspberry Pi or even a local server.
+
+They also have a subscription service for access to additional features such as support for Alexa and Google Assistant, which is managed by a company called '[Nabu Casa][2]'.
+
+> 💡 The company is led by [Paulus Schoutsen][3], the founder of Home Assistant.
+
+In a [blog][4] last week, Paulus announced **a new open-source project that aims to offer a voice assistant without an active internet connection** or any other big tech voice assistants.
+
+So, an _open-source challenger to Google, Alexa, and Siri?_😲
+
+Let's see what this is all about, then.
+
+**What is it?:** This will be a part of the Home Assistant application and will offer the ability to run voice commands locally to control the connected smart devices.
+
+Paulus also asserts that their most important priority is to support different languages, he says:
+
+> People need to be able to speak in their own language, as that is the most accessible and only acceptable language for a voice assistant for the smart home.
+
+To fuel this endeavor, the creator of Rhasspy, [Mike Hansen][5], has been roped in to make this possible.
+
+For those of you who don't know, [Rhasspy][6] is another open-source software that specializes in providing a fully offline voice assistant that is backed by its community of users.
+
+If you ask me, I feel that this feature of Home Assistant will be powered by Rhasspy, which is a good thing.
+
+_Why reinvent something that already exists? It's better to improve upon it._
+
+**What to expect?:** Initially, the voice assistant won't be able to do things you might expect. So, things like making a web search, making calls, playing voice games, etc., are a no-go.
+
+What it will focus on instead are the **basics of what a voice assistant should be**; this was done to make sure that the work ahead of them was manageable.
+
+They aim to start with a few actions and then build up language models around them.
+
+In its current state, Home Assistant supports 62 different languages in its user interface. They plan to add support for all these languages with their voice assistant.
+
+**When to expect?:** They have already started work on this by building a [collection of intent matching sentences][7] for every language.
+
+What this means is that the community can contribute to the development of the voice assistant by adapting the commands for smart devices to their respective native languages.
+
+They aim for a release sometime in **2023** and have mentioned that it will be the '_year of voice_'.
+
+I think an open-source voice assistant that works offline can be a very useful thing to have; it lets you be free of any tracking from big tech.
+
+💬 _With the added benefit of having a large community behind its development of it, what's not to like?_
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/open-source-assistant/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/open-source-home-assistant-in-works.png
+[2]: https://www.nabucasa.com
+[3]: https://twitter.com/balloob
+[4]: https://www.home-assistant.io/blog/2022/12/20/year-of-voice/
+[5]: https://synesthesiam.com
+[6]: https://rhasspy.readthedocs.io
+[7]: https://github.com/home-assistant/intents
From 9a0a144554a6be55939e5882a6f66eba60f14b0b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 31 Dec 2022 23:59:39 +0800
Subject: [PATCH 170/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020221230.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Va?=
=?UTF-8?q?nilla=20OS=20Stable=20Release=20Has=20Landed!.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️⭐️ Vanilla OS Stable Release Has Landed!.md | 134 ++++++++++++++++++
1 file changed, 134 insertions(+)
create mode 100644 sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
diff --git a/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md b/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
new file mode 100644
index 0000000000..165756e918
--- /dev/null
+++ b/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
@@ -0,0 +1,134 @@
+[#]: subject: "Vanilla OS Stable Release Has Landed!"
+[#]: via: "https://news.itsfoss.com/vanilla-os-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Vanilla OS Stable Release Has Landed!
+======
+
+Vanilla OS is ready for you to try! Learn what's exciting here.
+
+![Vanilla OS Stable Release Has Landed!][1]
+
+Vanilla OS is an Ubuntu-based distro that aims to provide a stock GNOME experience with on-demand immutability and the freedom to choose packages.
+
+After months of testing, **Vanilla OS first release** is finally here in the form of **Vanilla 22.10 Kinetic** featuring **GNOME 43**.
+
+In a recent interview, we asked the creator: '_Many people think we have more than enough distros. Why Vanilla OS?_', **Mirko Brombin**, had some interesting insights to share. Read our conversation with him below to explore exciting things about Vanilla OS:
+
+Vanilla OS has several features that you might find helpful; allow me to introduce them to you.
+
+### Key Highlights
+
+![Vanilla OS 22.10 Kinetic][2]
+
+Being a new distro, Vanilla OS has a well-equipped feature set that you might like. Some notable highlights include the following:
+
+- **Native Installer**
+- **Vanilla OS First Setup Utility**
+- **Vanilla OS Control Center**
+- **apx Package Manager**
+- **On-Demand Immutability**
+
+#### Native Installer
+
+![vanilla os installer][3]
+
+Vanilla OS features a native installer that is written in [GTK4][4] and [libadwaita][5], it replaces the '[Calamares][6]' installer that was being used while the OS was in the early development stages.
+
+![vanilla os installer progress][7]
+
+Previously, they had also announced that they would use the '[Jade][8]' installer from the Crystal Linux team.
+
+But, they changed their mind and opted to build the '[Vanilla Installer][9]' on top of their existing '[Vanilla First Setup][10]' project.
+
+#### Vanilla OS First Setup
+
+![vanilla os first setup][11]
+
+After the installation of Vanilla OS is complete, you are greeted with a quick setup screen, which says 'Welcome' in various languages.
+
+![vanilla os package manager selection][12]
+
+It will then take you through various settings, such as choosing the color scheme, choosing what package managers you want, whether you want to install restricted codecs, and more.
+
+I must say, this is quite handy! 😃️
+
+#### Vanilla OS Control Center
+
+![vanilla os control center][13]
+
+This graphical tool enables you to make changes to the operating system, such as running critical updates and installing additional drivers.
+
+#### On-Demand Immutability
+
+![Showcase - ABRoot transactional updates in Vanilla OS][14]
+
+As showcased above by the founder of Vanilla OS, this OS can provide full immutability and atomicity by allowing you to transact between two root partitions (A/B).
+
+What does that mean, you ask? 🤔
+
+Well, this means that the core parts of your system are locked to prevent any unwanted changes, especially the ones caused by corrupt applications or faulty update.
+
+Vanilla OS uses '[ABRoot][15]' to achieve this, previously, they had tried using '[Almost][16]', but it didn't pan out well.
+
+![][17]
+
+It also features a **smart update feature**, which they explain as follows:
+
+> VSO (Vanilla System Operator) is the tool that will periodically check for an update and then download and install it in the background if the device is not under heavy usage. In fact, VSO checks that certain checks are met, such as whether the resources are free (CPU/RAM), whether the connection allows it, whether the battery is at least 30%, etc.
+
+The updates are applied through ABroot and get patched during the next reboot without taking extra time.
+
+#### apx Package Manager
+
+![vanilla os apx][18]
+
+Vanilla OS features the '[apx][19]' utility, allowing you to install packages inside a managed container without modifying the root file system.
+
+### Download Vanilla OS
+
+If you think Vanilla OS solves the problem you have been facing with Ubuntu and want a stock GNOME experience, give it a go.
+
+You can learn more about Vanilla OS 22.10 in its [official blog post][20].
+
+[Download Vanilla OS][21]
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/vanilla-os-release/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/vanilla-os-release.png
+[2]: https://youtu.be/aDvIJ_Hu90Y
+[3]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer.png
+[4]: https://news.itsfoss.com/gtk-4-release/
+[5]: https://news.itsfoss.com/gnome-libadwaita-library/
+[6]: https://calamares.io
+[7]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer-2.png
+[8]: https://github.com/crystal-linux/jade
+[9]: https://github.com/Vanilla-OS/vanilla-installer
+[10]: https://github.com/Vanilla-OS/first-setup
+[11]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-First-Setup.png
+[12]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Package-Manager.png
+[13]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Control-Center.png
+[14]: https://youtu.be/hIN-x3P12Tk
+[15]: https://github.com/Vanilla-OS/ABRoot
+[16]: https://documentation.vanillaos.org/docs/almost/
+[17]: https://news.itsfoss.com/content/images/2022/12/vanilla-os-updates.png
+[18]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-apx.png
+[19]: https://github.com/Vanilla-OS/apx
+[20]: https://vanillaos.org/2022/12/29/vanilla-os-22-10-kinetic.html
+[21]: https://vanillaos.org
From 37be978761cd4f26e98ef1325c1c090356c15f05 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 1 Jan 2023 10:31:56 +0800
Subject: [PATCH 171/266] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20202212?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...00105 Friend of a Friend- The Facebook That Could Have Been.md | 0
...20210103 How open principles will impact the future of work.md | 0
...20210209 Understanding Linus-s Law for open source security.md | 0
.../{ => 202212}/20210330 A DevOps guide to documentation.md | 0
published/{ => 202212}/20210917 Open source game achievements.md | 0
.../{ => 202212}/20210922 Install PowerShell on Fedora Linux.md | 0
.../20220608 WiFi 6 Promises Much More than Faster Speeds.md | 0
.../20220628 Linux su vs sudo- what-s the difference-.md | 0
published/{ => 202212}/20220729 Learn Rust by debugging Rust.md | 0
...ord Streaming Audio in Ubuntu and other Linux Distributions.md | 0
.../{ => 202212}/20221004 Learn the OSI model in 5 minutes.md | 0
.../20221019.5 ⭐️⭐️ Our open source startup journey.md | 0
...221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md | 0
.../20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md | 0
.../20221028.1 ⭐️⭐️ Write documentation like you develop code.md | 0
...3.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md | 0
...️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md | 0
...15.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md | 0
...⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md | 0
...uthenticator A Simple Open-Source App to Replace Authy on Linux.md | 0
...20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md | 0
.../20221122.0 ⭐️ Find bugs with the git bisect command.md | 0
...1122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md | 0
... a holiday light display with your Raspberry Pi and ping pong balls.md | 0
...️ How to Automatically Indent Your Code in Visual Studio Code.md | 0
.../20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md | 0
...'s Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md | 0
... Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md | 0
.../{ => 202212}/20221129.3 ⭐️⭐️ Parse arguments with Lua.md | 0
.../20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md | 0
... Microsoft Office 365 Declared illegal for German Schools, Again!.md | 0
...️ Monica An Open-Source App for Personal Relationship Management.md | 0
.../20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md | 0
...️ 4MLinux 41.0 stable is now available with SDL games + More.md | 0
...️ Trinity Desktop Environment R14.0.13 is now out with updates!.md | 0
...05.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md | 0
... Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md | 0
...️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md | 0
.../20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md | 0
... Last Update for the Year Brings a Lot of Early Christmas Gifts.md | 0
...onvert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md | 0
.../20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md | 0
.../20221209.0 ⭐️⭐️ Install open source solar power at home.md | 0
...to Introduce a New Protocol Helping Open-Source Developers Get Paid.md | 0
...1.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md | 0
...212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md | 0
...0221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md | 0
.../20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md | 0
...1213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md | 0
.../20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md | 0
...nity-Led Open Source Code Editor to Continue the Legacy of Atom.md | 0
.../20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md | 0
...A Beautiful Cross-Platform Music Player With Essential Features.md | 0
...n Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md | 0
.../20221218.1 ⭐️ Try this Python-based file manager on Linux.md | 0
...nux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md | 0
.../20221221.3 ⭐️⭐️ Open source solutions for EV charging.md | 0
...ro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md | 0
...Code Editors that May Challenge the Supremacy of Visual Studio Code.md | 0
...ted! Unity Teases Version 7.7 as the Sign of Active Development.md | 0
60 files changed, 0 insertions(+), 0 deletions(-)
rename published/{ => 202212}/20200105 Friend of a Friend- The Facebook That Could Have Been.md (100%)
rename published/{ => 202212}/20210103 How open principles will impact the future of work.md (100%)
rename published/{ => 202212}/20210209 Understanding Linus-s Law for open source security.md (100%)
rename published/{ => 202212}/20210330 A DevOps guide to documentation.md (100%)
rename published/{ => 202212}/20210917 Open source game achievements.md (100%)
rename published/{ => 202212}/20210922 Install PowerShell on Fedora Linux.md (100%)
rename published/{ => 202212}/20220608 WiFi 6 Promises Much More than Faster Speeds.md (100%)
rename published/{ => 202212}/20220628 Linux su vs sudo- what-s the difference-.md (100%)
rename published/{ => 202212}/20220729 Learn Rust by debugging Rust.md (100%)
rename published/{ => 202212}/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md (100%)
rename published/{ => 202212}/20221004 Learn the OSI model in 5 minutes.md (100%)
rename published/{ => 202212}/20221019.5 ⭐️⭐️ Our open source startup journey.md (100%)
rename published/{ => 202212}/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md (100%)
rename published/{ => 202212}/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md (100%)
rename published/{ => 202212}/20221028.1 ⭐️⭐️ Write documentation like you develop code.md (100%)
rename published/{ => 202212}/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md (100%)
rename published/{ => 202212}/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md (100%)
rename published/{ => 202212}/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md (100%)
rename published/{ => 202212}/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md (100%)
rename published/{ => 202212}/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md (100%)
rename published/{ => 202212}/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md (100%)
rename published/{ => 202212}/20221122.0 ⭐️ Find bugs with the git bisect command.md (100%)
rename published/{ => 202212}/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md (100%)
rename published/{ => 202212}/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md (100%)
rename published/{ => 202212}/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md (100%)
rename published/{ => 202212}/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md (100%)
rename published/{ => 202212}/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md (100%)
rename published/{ => 202212}/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md (100%)
rename published/{ => 202212}/20221129.3 ⭐️⭐️ Parse arguments with Lua.md (100%)
rename published/{ => 202212}/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md (100%)
rename published/{ => 202212}/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md (100%)
rename published/{ => 202212}/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md (100%)
rename published/{ => 202212}/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md (100%)
rename published/{ => 202212}/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md (100%)
rename published/{ => 202212}/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md (100%)
rename published/{ => 202212}/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md (100%)
rename published/{ => 202212}/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md (100%)
rename published/{ => 202212}/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md (100%)
rename published/{ => 202212}/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md (100%)
rename published/{ => 202212}/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md (100%)
rename published/{ => 202212}/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md (100%)
rename published/{ => 202212}/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md (100%)
rename published/{ => 202212}/20221209.0 ⭐️⭐️ Install open source solar power at home.md (100%)
rename published/{ => 202212}/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md (100%)
rename published/{ => 202212}/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md (100%)
rename published/{ => 202212}/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md (100%)
rename published/{ => 202212}/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md (100%)
rename published/{ => 202212}/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md (100%)
rename published/{ => 202212}/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md (100%)
rename published/{ => 202212}/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md (100%)
rename published/{ => 202212}/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md (100%)
rename published/{ => 202212}/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md (100%)
rename published/{ => 202212}/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md (100%)
rename published/{ => 202212}/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md (100%)
rename published/{ => 202212}/20221218.1 ⭐️ Try this Python-based file manager on Linux.md (100%)
rename published/{ => 202212}/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md (100%)
rename published/{ => 202212}/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md (100%)
rename published/{ => 202212}/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md (100%)
rename published/{ => 202212}/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md (100%)
rename published/{ => 202212}/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md (100%)
diff --git a/published/20200105 Friend of a Friend- The Facebook That Could Have Been.md b/published/202212/20200105 Friend of a Friend- The Facebook That Could Have Been.md
similarity index 100%
rename from published/20200105 Friend of a Friend- The Facebook That Could Have Been.md
rename to published/202212/20200105 Friend of a Friend- The Facebook That Could Have Been.md
diff --git a/published/20210103 How open principles will impact the future of work.md b/published/202212/20210103 How open principles will impact the future of work.md
similarity index 100%
rename from published/20210103 How open principles will impact the future of work.md
rename to published/202212/20210103 How open principles will impact the future of work.md
diff --git a/published/20210209 Understanding Linus-s Law for open source security.md b/published/202212/20210209 Understanding Linus-s Law for open source security.md
similarity index 100%
rename from published/20210209 Understanding Linus-s Law for open source security.md
rename to published/202212/20210209 Understanding Linus-s Law for open source security.md
diff --git a/published/20210330 A DevOps guide to documentation.md b/published/202212/20210330 A DevOps guide to documentation.md
similarity index 100%
rename from published/20210330 A DevOps guide to documentation.md
rename to published/202212/20210330 A DevOps guide to documentation.md
diff --git a/published/20210917 Open source game achievements.md b/published/202212/20210917 Open source game achievements.md
similarity index 100%
rename from published/20210917 Open source game achievements.md
rename to published/202212/20210917 Open source game achievements.md
diff --git a/published/20210922 Install PowerShell on Fedora Linux.md b/published/202212/20210922 Install PowerShell on Fedora Linux.md
similarity index 100%
rename from published/20210922 Install PowerShell on Fedora Linux.md
rename to published/202212/20210922 Install PowerShell on Fedora Linux.md
diff --git a/published/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/published/202212/20220608 WiFi 6 Promises Much More than Faster Speeds.md
similarity index 100%
rename from published/20220608 WiFi 6 Promises Much More than Faster Speeds.md
rename to published/202212/20220608 WiFi 6 Promises Much More than Faster Speeds.md
diff --git a/published/20220628 Linux su vs sudo- what-s the difference-.md b/published/202212/20220628 Linux su vs sudo- what-s the difference-.md
similarity index 100%
rename from published/20220628 Linux su vs sudo- what-s the difference-.md
rename to published/202212/20220628 Linux su vs sudo- what-s the difference-.md
diff --git a/published/20220729 Learn Rust by debugging Rust.md b/published/202212/20220729 Learn Rust by debugging Rust.md
similarity index 100%
rename from published/20220729 Learn Rust by debugging Rust.md
rename to published/202212/20220729 Learn Rust by debugging Rust.md
diff --git a/published/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md b/published/202212/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
similarity index 100%
rename from published/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
rename to published/202212/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
diff --git a/published/20221004 Learn the OSI model in 5 minutes.md b/published/202212/20221004 Learn the OSI model in 5 minutes.md
similarity index 100%
rename from published/20221004 Learn the OSI model in 5 minutes.md
rename to published/202212/20221004 Learn the OSI model in 5 minutes.md
diff --git a/published/20221019.5 ⭐️⭐️ Our open source startup journey.md b/published/202212/20221019.5 ⭐️⭐️ Our open source startup journey.md
similarity index 100%
rename from published/20221019.5 ⭐️⭐️ Our open source startup journey.md
rename to published/202212/20221019.5 ⭐️⭐️ Our open source startup journey.md
diff --git a/published/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md b/published/202212/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md
similarity index 100%
rename from published/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md
rename to published/202212/20221025.3 ⭐️ How to Change Login Screen Background in Ubuntu.md
diff --git a/published/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md b/published/202212/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md
similarity index 100%
rename from published/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md
rename to published/202212/20221026.0 ⭐️⭐️⭐️ Doing 64-bit math on a 16-bit system.md
diff --git a/published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md b/published/202212/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
similarity index 100%
rename from published/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
rename to published/202212/20221028.1 ⭐️⭐️ Write documentation like you develop code.md
diff --git a/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/published/202212/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
similarity index 100%
rename from published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
rename to published/202212/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md
diff --git a/published/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md b/published/202212/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md
similarity index 100%
rename from published/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md
rename to published/202212/20221107.5 ⭐️ How to Install OpenOffice in Arch Linux [Beginner’s Guide].md
diff --git a/published/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md b/published/202212/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md
similarity index 100%
rename from published/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md
rename to published/202212/20221115.0 ⭐️ You Can Now Install Unity 7.6 Desktop on Arch Linux.md
diff --git a/published/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md b/published/202212/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md
similarity index 100%
rename from published/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md
rename to published/202212/20221116.0 ⭐️⭐️ How to Install GNOME Desktop Environment in Linux Mint.md
diff --git a/published/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md b/published/202212/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md
similarity index 100%
rename from published/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md
rename to published/202212/20221117.1 ⭐️ Authenticator A Simple Open-Source App to Replace Authy on Linux.md
diff --git a/published/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md b/published/202212/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md
similarity index 100%
rename from published/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md
rename to published/202212/20221121.2 ⭐️⭐️ Learn Git 3 commands to level up your skill.md
diff --git a/published/20221122.0 ⭐️ Find bugs with the git bisect command.md b/published/202212/20221122.0 ⭐️ Find bugs with the git bisect command.md
similarity index 100%
rename from published/20221122.0 ⭐️ Find bugs with the git bisect command.md
rename to published/202212/20221122.0 ⭐️ Find bugs with the git bisect command.md
diff --git a/published/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md b/published/202212/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
similarity index 100%
rename from published/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
rename to published/202212/20221122.2 ⭐️⭐️⭐️ Introducing Rust calls to C library functions.md
diff --git a/published/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md b/published/202212/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
similarity index 100%
rename from published/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
rename to published/202212/20221126.2 ⭐️⭐️ Create a holiday light display with your Raspberry Pi and ping pong balls.md
diff --git a/published/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md b/published/202212/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md
similarity index 100%
rename from published/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md
rename to published/202212/20221127.1 ⭐️ How to Automatically Indent Your Code in Visual Studio Code.md
diff --git a/published/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md b/published/202212/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md
similarity index 100%
rename from published/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md
rename to published/202212/20221128.1 ⭐️⭐️ 3 open source audio tools for creators.md
diff --git a/published/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md b/published/202212/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md
similarity index 100%
rename from published/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md
rename to published/202212/20221128.2 ⭐️ Elon Musk's Twitter to Add Open-Source Signal Protocol for Encrypted DMs.md
diff --git a/published/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md b/published/202212/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md
similarity index 100%
rename from published/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md
rename to published/202212/20221129.1 ⭐️ Bodhi Linux 7.0.0 Testing Begins with New Features, Packages.md
diff --git a/published/20221129.3 ⭐️⭐️ Parse arguments with Lua.md b/published/202212/20221129.3 ⭐️⭐️ Parse arguments with Lua.md
similarity index 100%
rename from published/20221129.3 ⭐️⭐️ Parse arguments with Lua.md
rename to published/202212/20221129.3 ⭐️⭐️ Parse arguments with Lua.md
diff --git a/published/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md b/published/202212/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md
similarity index 100%
rename from published/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md
rename to published/202212/20221130.1 ⭐️⭐️ Get to know Lua for loops in 4 minutes.md
diff --git a/published/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md b/published/202212/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md
similarity index 100%
rename from published/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md
rename to published/202212/20221201.2 ⭐️⭐️ Microsoft Office 365 Declared illegal for German Schools, Again!.md
diff --git a/published/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md b/published/202212/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md
similarity index 100%
rename from published/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md
rename to published/202212/20221201.3 ⭐️⭐️ Monica An Open-Source App for Personal Relationship Management.md
diff --git a/published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md b/published/202212/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md
similarity index 100%
rename from published/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md
rename to published/202212/20221202.1 ⭐️⭐️ Try this Java file manager on Linux.md
diff --git a/published/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md b/published/202212/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md
similarity index 100%
rename from published/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md
rename to published/202212/20221204.1 ⭐️ 4MLinux 41.0 stable is now available with SDL games + More.md
diff --git a/published/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md b/published/202212/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md
similarity index 100%
rename from published/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md
rename to published/202212/20221204.2 ⭐️⭐️ Trinity Desktop Environment R14.0.13 is now out with updates!.md
diff --git a/published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md b/published/202212/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md
similarity index 100%
rename from published/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md
rename to published/202212/20221205.3 ⭐️⭐️ Why you should try the Nemo file manager on Linux.md
diff --git a/published/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md b/published/202212/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md
similarity index 100%
rename from published/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md
rename to published/202212/20221206.1 ⭐️ Gnoppix Linux 22.12 is out with GNOME 43, Kernel 6.0, + More.md
diff --git a/published/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md b/published/202212/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md
similarity index 100%
rename from published/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md
rename to published/202212/20221207.0 ⭐️ How to Find a Process ID and Kill it in Linux [CLI & GUI].md
diff --git a/published/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md b/published/202212/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
similarity index 100%
rename from published/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
rename to published/202212/20221207.2 ⭐️ How to Access UEFI Settings in Linux Systems.md
diff --git a/published/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md b/published/202212/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md
similarity index 100%
rename from published/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md
rename to published/202212/20221207.5 ⭐️ Kali Linux's Last Update for the Year Brings a Lot of Early Christmas Gifts.md
diff --git a/published/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md b/published/202212/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
similarity index 100%
rename from published/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
rename to published/202212/20221208.1 ⭐️ Convert and Manipulate Images With ‘Converter’ GUI Tool in Linux.md
diff --git a/published/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md b/published/202212/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
similarity index 100%
rename from published/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
rename to published/202212/20221208.2 ⭐️⭐️ 7 pro tips for using the GDB step command.md
diff --git a/published/20221209.0 ⭐️⭐️ Install open source solar power at home.md b/published/202212/20221209.0 ⭐️⭐️ Install open source solar power at home.md
similarity index 100%
rename from published/20221209.0 ⭐️⭐️ Install open source solar power at home.md
rename to published/202212/20221209.0 ⭐️⭐️ Install open source solar power at home.md
diff --git a/published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md b/published/202212/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md
similarity index 100%
rename from published/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md
rename to published/202212/20221209.2 ⭐️⭐️ Tea Raises $8.9M to Introduce a New Protocol Helping Open-Source Developers Get Paid.md
diff --git a/published/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md b/published/202212/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
similarity index 100%
rename from published/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
rename to published/202212/20221211.0 ⭐️ Simplify your Linux PC with the PCManFM file manager.md
diff --git a/published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md b/published/202212/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
similarity index 100%
rename from published/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
rename to published/202212/20221212.0 ⭐️⭐️ Linux Kernel 6.1 Released With Initial Rust Code.md
diff --git a/published/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md b/published/202212/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
similarity index 100%
rename from published/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
rename to published/202212/20221212.4 ⭐️⭐️ 5 Best Linux Phones to Watch Out for in 2023.md
diff --git a/published/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md b/published/202212/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
similarity index 100%
rename from published/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
rename to published/202212/20221213.3 ⭐️ Linux Mint Upgrade Tool Usage Guide.md
diff --git a/published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md b/published/202212/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
similarity index 100%
rename from published/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
rename to published/202212/20221213.6 ⭐️⭐️ Try this Linux web browser as your file manager.md
diff --git a/published/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md b/published/202212/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
similarity index 100%
rename from published/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
rename to published/202212/20221215.2 ⭐️⭐️ Improve your documentation with JavaScript.md
diff --git a/published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md b/published/202212/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
similarity index 100%
rename from published/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
rename to published/202212/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
diff --git a/published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md b/published/202212/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
similarity index 100%
rename from published/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
rename to published/202212/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
diff --git a/published/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/published/202212/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
similarity index 100%
rename from published/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
rename to published/202212/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
diff --git a/published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md b/published/202212/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
similarity index 100%
rename from published/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
rename to published/202212/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
diff --git a/published/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/published/202212/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
similarity index 100%
rename from published/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
rename to published/202212/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
diff --git a/published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md b/published/202212/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
similarity index 100%
rename from published/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
rename to published/202212/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
diff --git a/published/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/published/202212/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
similarity index 100%
rename from published/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
rename to published/202212/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
diff --git a/published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md b/published/202212/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
similarity index 100%
rename from published/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
rename to published/202212/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
diff --git a/published/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/published/202212/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
similarity index 100%
rename from published/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
rename to published/202212/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
diff --git a/published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md b/published/202212/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
similarity index 100%
rename from published/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
rename to published/202212/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
From 4fab485dd306592810c8e7f3bd6f32f39a057935 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 1 Jan 2023 11:30:02 +0800
Subject: [PATCH 172/266] ALL
@wxy
https://linux.cn/article-15401-1.html
---
...️⭐️ Vanilla OS Stable Release Has Landed!.md | 137 ++++++++++++++++++
...️⭐️ Vanilla OS Stable Release Has Landed!.md | 134 -----------------
2 files changed, 137 insertions(+), 134 deletions(-)
create mode 100644 published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
delete mode 100644 sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
diff --git a/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md b/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
new file mode 100644
index 0000000000..19088158cd
--- /dev/null
+++ b/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
@@ -0,0 +1,137 @@
+[#]: subject: "Vanilla OS Stable Release Has Landed!"
+[#]: via: "https://news.itsfoss.com/vanilla-os-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15401-1.html"
+
+不普通的普通操作系统:Vanilla OS 稳定版发布了!
+======
+
+> Vanilla OS 已经准备好让你尝试!在这里了解令人兴奋的地方。
+
+![][1]
+
+Vanilla OS 是一个基于 Ubuntu 的发行版,旨在为用户提供一个具有随需应变能力和自由选择软件包的 GNOME 体验。(LCTT 译注:Vanilla —— “香草”,因为作为太普通的香料,所以也有“普普通通”的意思。)
+
+经过几个月的测试,**Vanilla OS 的第一个版本** 终于以 **Vanilla 22.10 Kinetic** 的形式出现了,其提供了原汁原味的 **GNOME 43**。
+
+在最近的一次采访中,我们问创建者:“很多人认为我们已经有太多的发行版了。为什么还要有 Vanilla OS?”,**Mirko Brombin**,分享了一些有趣的见解享。请看下面我们与他的对话,探索关于 Vanilla OS 的令人兴奋的事情:
+
+> **[“不要害怕做出贡献”:Mirko Brombin 谈 Vanilla OS 和其他未来项目][22]**
+
+Vanilla OS 有几个特点,你可能会觉得有帮助,请允许我向你介绍一下。
+
+### 主要亮点
+
+![Vanilla OS 22.10 Kinetic][2]
+
+作为一个新的发行版,Vanilla OS 有一个装备精良的功能集,你可能会喜欢。一些值得注意的亮点包括:
+
+- 原生安装程序
+- Vanilla OS 首次设置First Setup 功能
+- Vanilla OS 控制中心
+- apx 软件包管理器
+- 随需应变能力
+
+#### 原生安装程序
+
+![Vanilla OS 安装程序][3]
+
+Vanilla OS 有一个用 [GTK4][4] 和 [libadwaita][5] 编写的原生的安装程序,它取代了该操作系统在早期开发阶段时使用的 [Calamares][6] 安装程序。
+
+![Vanilla OS 安装程序正在进行][7]
+
+之前,他们还宣布将使用来自 Crystal Linux 团队的 [Jade][8] 安装程序。
+
+但是,他们改变了主意,选择在现有的 [Vanilla 首次设置][10] 项目之上建立 [Vanilla 安装程序][9]。
+
+#### Vanilla OS 首次设置
+
+![Vanilla OS 首次设置][11]
+
+Vanilla OS 的安装完成后,你会看到一个快速设置屏幕,上面用各种语言写着 “欢迎”。
+
+![Vanilla OS 软件包管理器选择][12]
+
+然后它将带你完成各种设置,如选择颜色方案,选择你想要的软件包管理器,是否要安装受限制的编解码器,等等。
+
+我必须说,这很方便! 😃️
+
+#### Vanilla OS 控制中心
+
+![Vanilla OS 控制中心][13]
+
+这个图形化工具使你能够对操作系统进行修改,如运行关键更新和安装额外的驱动程序。
+
+#### 随需应变的不变性
+
+![展示 - Vanilla OS 中的 ABRoot 事务性更新][14]
+
+正如上面 Vanilla OS 的创始人所展示的,这个操作系统可以提供完全的不变性和原子性,允许你在两个根分区(A/B)之间进行交易。
+
+你问这是什么意思? 🤔
+
+嗯,这意味着你的系统的核心部分被锁定,以防止任何不必要的变化,特别是那些由损坏的应用程序或错误的更新引起的变化。
+
+Vanilla OS 使用 [ABRoot][15] 来实现这一目标,之前,他们曾尝试使用 [Almost][16],但结果并不理想。
+
+![][17]
+
+它还有一个**智能更新功能**,他们解释如下:
+
+> VSO(Vanilla System Operator)是一个工具,它将定期检查更新,然后如果设备没有处于大量使用状态,就在后台下载和安装。事实上,VSO 检查是否满足某些检查条件,如资源是否空闲(CPU/RAM),连接是否允许,电池是否至少有 30% 的电量等。
+
+更新是通过 ABroot 应用的,并在下一次重启时得到修补,而不需要花费额外时间。
+
+#### apx 软件包管理器
+
+![Vanilla OS apx][18]
+
+Vanilla OS 带有 [apx][19] 工具,允许你在不修改根文件系统的情况下在管理的容器内安装软件包。
+
+### 下载 Vanilla OS
+
+如果你认为 Vanilla OS 解决了你在 Ubuntu 上遇到的问题,并且想要一个原汁原味的 GNOME 体验,那就来试试吧。
+
+你可以在其 [官方博客文章][20] 中了解更多关于 Vanilla OS 22.10 的信息。
+
+> **[下载 Vanilla OS][21]**
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/vanilla-os-release/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/vanilla-os-release.png
+[2]: https://youtu.be/aDvIJ_Hu90Y
+[3]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer.png
+[4]: https://news.itsfoss.com/gtk-4-release/
+[5]: https://news.itsfoss.com/gnome-libadwaita-library/
+[6]: https://calamares.io
+[7]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer-2.png
+[8]: https://github.com/crystal-linux/jade
+[9]: https://github.com/Vanilla-OS/vanilla-installer
+[10]: https://github.com/Vanilla-OS/first-setup
+[11]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-First-Setup.png
+[12]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Package-Manager.png
+[13]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Control-Center.png
+[14]: https://youtu.be/hIN-x3P12Tk
+[15]: https://github.com/Vanilla-OS/ABRoot
+[16]: https://documentation.vanillaos.org/docs/almost/
+[17]: https://news.itsfoss.com/content/images/2022/12/vanilla-os-updates.png
+[18]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-apx.png
+[19]: https://github.com/Vanilla-OS/apx
+[20]: https://vanillaos.org/2022/12/29/vanilla-os-22-10-kinetic.html
+[21]: https://vanillaos.org
+[22]: https://news.itsfoss.com/interview-mirko-brombin/
\ No newline at end of file
diff --git a/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md b/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
deleted file mode 100644
index 165756e918..0000000000
--- a/sources/news/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
+++ /dev/null
@@ -1,134 +0,0 @@
-[#]: subject: "Vanilla OS Stable Release Has Landed!"
-[#]: via: "https://news.itsfoss.com/vanilla-os-release/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Vanilla OS Stable Release Has Landed!
-======
-
-Vanilla OS is ready for you to try! Learn what's exciting here.
-
-![Vanilla OS Stable Release Has Landed!][1]
-
-Vanilla OS is an Ubuntu-based distro that aims to provide a stock GNOME experience with on-demand immutability and the freedom to choose packages.
-
-After months of testing, **Vanilla OS first release** is finally here in the form of **Vanilla 22.10 Kinetic** featuring **GNOME 43**.
-
-In a recent interview, we asked the creator: '_Many people think we have more than enough distros. Why Vanilla OS?_', **Mirko Brombin**, had some interesting insights to share. Read our conversation with him below to explore exciting things about Vanilla OS:
-
-Vanilla OS has several features that you might find helpful; allow me to introduce them to you.
-
-### Key Highlights
-
-![Vanilla OS 22.10 Kinetic][2]
-
-Being a new distro, Vanilla OS has a well-equipped feature set that you might like. Some notable highlights include the following:
-
-- **Native Installer**
-- **Vanilla OS First Setup Utility**
-- **Vanilla OS Control Center**
-- **apx Package Manager**
-- **On-Demand Immutability**
-
-#### Native Installer
-
-![vanilla os installer][3]
-
-Vanilla OS features a native installer that is written in [GTK4][4] and [libadwaita][5], it replaces the '[Calamares][6]' installer that was being used while the OS was in the early development stages.
-
-![vanilla os installer progress][7]
-
-Previously, they had also announced that they would use the '[Jade][8]' installer from the Crystal Linux team.
-
-But, they changed their mind and opted to build the '[Vanilla Installer][9]' on top of their existing '[Vanilla First Setup][10]' project.
-
-#### Vanilla OS First Setup
-
-![vanilla os first setup][11]
-
-After the installation of Vanilla OS is complete, you are greeted with a quick setup screen, which says 'Welcome' in various languages.
-
-![vanilla os package manager selection][12]
-
-It will then take you through various settings, such as choosing the color scheme, choosing what package managers you want, whether you want to install restricted codecs, and more.
-
-I must say, this is quite handy! 😃️
-
-#### Vanilla OS Control Center
-
-![vanilla os control center][13]
-
-This graphical tool enables you to make changes to the operating system, such as running critical updates and installing additional drivers.
-
-#### On-Demand Immutability
-
-![Showcase - ABRoot transactional updates in Vanilla OS][14]
-
-As showcased above by the founder of Vanilla OS, this OS can provide full immutability and atomicity by allowing you to transact between two root partitions (A/B).
-
-What does that mean, you ask? 🤔
-
-Well, this means that the core parts of your system are locked to prevent any unwanted changes, especially the ones caused by corrupt applications or faulty update.
-
-Vanilla OS uses '[ABRoot][15]' to achieve this, previously, they had tried using '[Almost][16]', but it didn't pan out well.
-
-![][17]
-
-It also features a **smart update feature**, which they explain as follows:
-
-> VSO (Vanilla System Operator) is the tool that will periodically check for an update and then download and install it in the background if the device is not under heavy usage. In fact, VSO checks that certain checks are met, such as whether the resources are free (CPU/RAM), whether the connection allows it, whether the battery is at least 30%, etc.
-
-The updates are applied through ABroot and get patched during the next reboot without taking extra time.
-
-#### apx Package Manager
-
-![vanilla os apx][18]
-
-Vanilla OS features the '[apx][19]' utility, allowing you to install packages inside a managed container without modifying the root file system.
-
-### Download Vanilla OS
-
-If you think Vanilla OS solves the problem you have been facing with Ubuntu and want a stock GNOME experience, give it a go.
-
-You can learn more about Vanilla OS 22.10 in its [official blog post][20].
-
-[Download Vanilla OS][21]
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/vanilla-os-release/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/vanilla-os-release.png
-[2]: https://youtu.be/aDvIJ_Hu90Y
-[3]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer.png
-[4]: https://news.itsfoss.com/gtk-4-release/
-[5]: https://news.itsfoss.com/gnome-libadwaita-library/
-[6]: https://calamares.io
-[7]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer-2.png
-[8]: https://github.com/crystal-linux/jade
-[9]: https://github.com/Vanilla-OS/vanilla-installer
-[10]: https://github.com/Vanilla-OS/first-setup
-[11]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-First-Setup.png
-[12]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Package-Manager.png
-[13]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Control-Center.png
-[14]: https://youtu.be/hIN-x3P12Tk
-[15]: https://github.com/Vanilla-OS/ABRoot
-[16]: https://documentation.vanillaos.org/docs/almost/
-[17]: https://news.itsfoss.com/content/images/2022/12/vanilla-os-updates.png
-[18]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-apx.png
-[19]: https://github.com/Vanilla-OS/apx
-[20]: https://vanillaos.org/2022/12/29/vanilla-os-22-10-kinetic.html
-[21]: https://vanillaos.org
From e76c267cc819e049287dcba0ff051fef98250511 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 1 Jan 2023 11:32:04 +0800
Subject: [PATCH 173/266] R
---
.../20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md b/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
index 19088158cd..834ab618b2 100644
--- a/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
+++ b/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
@@ -7,7 +7,7 @@
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-15401-1.html"
-不普通的普通操作系统:Vanilla OS 稳定版发布了!
+不普通的普通操作系统:Vanilla OS 稳定版发布了!
======
> Vanilla OS 已经准备好让你尝试!在这里了解令人兴奋的地方。
From 47258e686b893ab4d66af209222e0b2e294767b3 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 1 Jan 2023 16:04:46 +0800
Subject: [PATCH 174/266] RP
@geekpi
https://linux.cn/article-15402-1.html
---
... How to Downgrade Flatpak Packages in Linux.md | 37 +++++++++++--------
1 file changed, 21 insertions(+), 16 deletions(-)
rename {translated/tech => published}/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md (62%)
diff --git a/translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
similarity index 62%
rename from translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
rename to published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
index ca5b61f709..dfc488c153 100644
--- a/translated/tech/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
+++ b/published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
@@ -3,28 +3,32 @@
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15402-1.html"
如何在 Linux 中降级 Flatpak 软件包
======
-从技术上讲,次要更新是为了解决问题。但是,当某些更新破坏你当前的工作流程时,情况可能会变得更糟。
+![][0]
-无论是 Flatpak 包还是 Snap,当出现问题时,一切都会在某个时候崩溃。作为一个沙盒打包方案,它可能不会影响整个系统,但如果你遇到一个让你的应用体验变差的 bug,你可能会后悔更新。
+> Flatpak 软件包的一个鲜为人知的特点是,它允许你对已安装的应用程序进行降级。下面是如何使用它的方法。
-比如之前更新的 [Black Box][1] 就带来了一些 bug,无法选择文字!开发人员现在已经解决了这个问题,但在他们没有解决之前,我降级了那个特定的包以使其正常工作。
+从技术上讲,小版本或次要更新是为了解决问题。但是,当某些更新破坏你当前的工作流程时,情况可能会变得更糟。
+
+无论是 Flatpak 包还是 Snap,当出现问题时,一切都会在某个时候崩溃。作为一个沙盒打包方案,它可能不会影响整个系统,但如果你遇到一个让你的应用体验变差的错误,你可能会后悔更新。
+
+比如之前 [Black Box][1] 的更新就带来了一些错误,无法选择文字!开发人员现在已经解决了这个问题,但在他们没有解决之前,我降级了那个特定的包以使其正常工作。
所以,如果你想降级特定的 Flatpak 应用,你可以按照本指南进行操作。
### 在 Linux 中降级 Flatpak 包
-**免责声明:** 与安装 Flatpaks 不同,你需要 **sudo** 权限才能降级 Flatpak 包。如果你的用户没有它们,你可以按照我们关于[如何向用户授予 sudo 访问权限][2]的详细指南进行操作。
+**免责声明:** 与安装 Flatpak 不同,你需要 `sudo` 权限才能降级 Flatpak 包。如果你的用户没有该权限,你可以按照我们关于 [如何向用户授予 sudo 访问权限][2] 的详细指南进行操作。
以下是步骤:
-#### 1.获取包的应用 ID
+#### 1、获取包的应用 ID
第一步是找到要降级的包的应用 ID。你可以列出已安装的软件包轻松找到它:
@@ -38,7 +42,7 @@ flatpak list --app
这里,我要降级 Black Box,所以我的应用 ID 将是 `com.raggesilver.BlackBox`。
-#### 2.列出以前的版本并获取提交代码
+#### 2、列出以前的版本并获取该提交的代码
获得应用 ID 后,你需要列出以前的版本。
@@ -50,9 +54,9 @@ flatpak remote-info --log flathub
![find previous releases in flatpak][5]
-找到首选的先前版本后,复制如上所示的提交代码。
+找到首选的先前版本后,复制如上所示的提交的代码。
-#### 3.降级 Flatpack 包
+#### 3、降级 Flatpack 包
执行前两个步骤后,你应该有以下内容:
@@ -98,7 +102,7 @@ via: https://itsfoss.com/downgrade-flatpak-packages/
作者:[Sagar Sharma][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -106,7 +110,8 @@ via: https://itsfoss.com/downgrade-flatpak-packages/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/blackbox-terminal/
[2]: https://itsfoss.com/add-sudo-user-ubuntu/
-[4]: https://itsfoss.com/wp-content/uploads/2022/12/find-flatpak-package-id-in-linux.png
-[5]: https://itsfoss.com/wp-content/uploads/2022/12/find-previous-releases-in-flatpak-1.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package-in-linux.png
-[7]: https://itsfoss.com/wp-content/uploads/2022/12/downgrade-flatpak-package.png
+[4]: https://itsfoss.com/content/images/wordpress/2022/12/find-flatpak-package-id-in-linux.png
+[5]: https://itsfoss.com/content/images/wordpress/2022/12/find-previous-releases-in-flatpak-1.png
+[6]: https://itsfoss.com/content/images/wordpress/2022/12/downgrade-flatpak-package-in-linux.png
+[7]: https://itsfoss.com/content/images/wordpress/2022/12/downgrade-flatpak-package.png
+[0]: https://img.linux.net.cn/data/attachment/album/202301/01/160400h0mmppwwvxd004bm.jpg
\ No newline at end of file
From 2537136afd56ea80e474a9bd89b500f960c34599 Mon Sep 17 00:00:00 2001
From: MjSeven
Date: Sun, 1 Jan 2023 21:33:06 +0800
Subject: [PATCH 175/266] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...️⭐️ Write a C++ extension module for Python.md | 318 -----------------
...️⭐️ Write a C++ extension module for Python.md | 320 ++++++++++++++++++
2 files changed, 320 insertions(+), 318 deletions(-)
delete mode 100644 sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
create mode 100644 translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
diff --git a/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md b/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
deleted file mode 100644
index f5b8157ba3..0000000000
--- a/sources/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
+++ /dev/null
@@ -1,318 +0,0 @@
-[#]: subject: "Write a C++ extension module for Python"
-[#]: via: "https://opensource.com/article/22/11/extend-c-python"
-[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
-[#]: collector: "lkxed"
-[#]: translator: "MjSeven"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Write a C++ extension module for Python
-======
-
-In a previous article, I gave an overview of [six Python interpreters][1]. On most systems, the CPython interpreter is the default, and also the poll in my last article showed that CPython is the most popular one. Specific to CPython is the ability to write Python modules in C using CPythons extensions API. Writing Python modules in C allows you to move computation-intensive code to C while preserving the ease of access of Python.
-
-In this article, I’ll show you how to write an extension module. Instead of plain C, I use C++ because most compilers usually understand both. I have to mention one major drawback in advance: Python modules built this way are not portable to other interpreters. They only work in conjunction with the CPython interpreter. So if you are looking for a more portable way of interacting with C libraries, consider using the [ctypes][2] module.
-
-### Source code
-
-As usual, you can find the related source code on [GitHub][3]. The C++ files in the repository have the following purpose:
-
-- `my_py_module.cpp`: Definition of the Python module _MyModule_
-- `my_cpp_class.h`: A header-only C++ class which gets exposed to Python
-- `my_class_py_type.h/cpp`: Python representation of our C++ class
-- `pydbg.cpp`: Separate application for debugging purpose
-
-The Python module you build in this article won’t have any meaningful use, but is a good example.
-
-### Build the module
-
-Before looking into the source code, you can check whether the module compiles on your system. [I use CMake][4] for creating the build configuration, so CMake must be installed on your system. In order to configure and build the module, you can either let Python run the process:
-
-```
-$ python3 setup.py build
-```
-
-Or run the process manually:
-
-```
-$ cmake -B build
-$ cmake --build build
-```
-
-After that, you have a file called `MyModule.so` in the `/build` subdirectory.
-
-### Defining an extension module
-
-First, take a look on `my_py_module.cpp`, in particular, the function `PyInit_MyModule`:
-
-```
-PyMODINIT_FUNC
-PyInit_MyModule(void) {
- PyObject* module = PyModule_Create(&my_module);
-
- PyObject *myclass = PyType_FromSpec(&spec_myclass);
- if (myclass == NULL){
- return NULL;
- }
- Py_INCREF(myclass);
-
- if(PyModule_AddObject(module, "MyClass", myclass) < 0){
- Py_DECREF(myclass);
- Py_DECREF(module);
- return NULL;
- }
- return module;
-}
-```
-
-This is the most important code in this example because it acts as the entry point for CPython. In general, when a Python C extension is compiled and made available as a shared object binary, CPython searches for the function `PyInit_` in the eponymous binary (`.so`) and executes it when attempting to import it.
-
-All Python types, whether declarations or instances, are exposed as pointers to [PyObject][5]. In the first part of this function, the root definition of the module is created by running `PyModule_Create(...)`. As you can see in the module specification (`my_module`, same file), it doesn’t have any special functionality.
-
-Afterward, [PyType_FromSpec][6] is called to create a Python [heap type][7] definition for the custom type MyClass. A heap type corresponds to a Python class. The type definition is then assigned to the module MyModule.
-
-_Note that if one of the functions fails, the reference count of previously created PyObjects must be decremented so that they get deleted by the interpreter._
-
-### Specifying a Python type
-
-The specification for the type MyClass is found inside [my_class_py_type.h][8] as an instance of [PyType_Spec][9]:
-
-```
-static PyType_Spec spec_myclass = {
- "MyClass", // name
- sizeof(MyClassObject) + sizeof(MyClass), // basicsize
- 0, // itemsize
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, // flags
- MyClass_slots // slots
-};
-```
-
-This structure defines some basic type information for the class. The value passed for the size consists of the size of the Python representation (`MyClassObject`) and the size of the plain C++ class (`MyClass`). The `MyClassObject` is defined as follows:
-
-```
-typedef struct {
- PyObject_HEAD
- int m_value;
- MyClass* m_myclass;
-} MyClassObject;
-```
-
-The Python representation is basically of type [PyObject][5], defined by the macro `PyObject_HEAD`, and some additional members. The member `m_value` is exposed as ordinary class member while the member `m_myclass` is only accessible from inside C++ code.
-
-The [PyType_Slot][10] defines some additional functionality:
-
-```
-static PyType_Slot MyClass_slots[] = {
- {Py_tp_new, (void*)MyClass_new},
- {Py_tp_init, (void*)MyClass_init},
- {Py_tp_dealloc, (void*)MyClass_Dealloc},
- {Py_tp_members, MyClass_members},
- {Py_tp_methods, MyClass_methods},
- {0, 0} /* Sentinel */
-};
-```
-
-Here, the jump addressed for some initialization and de-initialization functions are set as well as ordinary class methods and members. Additional functionality, like assigning an initial attribute dictionary, could also be set, but this is optional. Those definitions usually end with a sentinel, consisting of `NULL` values.
-
-To complete the type specification, here is the method and member table:
-
-```
-static PyMethodDef MyClass_methods[] = {
- {"addOne", (PyCFunction)MyClass_addOne, METH_NOARGS, PyDoc_STR("Return an incrmented integer")},
- {NULL, NULL} /* Sentinel */
-};
-
-static struct PyMemberDef MyClass_members[] = {
- {"value", T_INT, offsetof(MyClassObject, m_value)},
- {NULL} /* Sentinel */
-};
-```
-
-In the method table, the Python method `addOne` is defined, and it points to the related function `MyClass_addOne`. This function acts as a wrapper. It invokes the `addOne()` method in the C++ class.
-
-In the member table, there is just one member defined for demonstration purposes. Unfortunately, the use of [offsetof][11] in [PyMemberDef][12] doesn’t allow C++ specific types to be added to `MyClassObject`. If you try to place some C++ type container (such as [std::optional][13]), the compiler complains about it in the form of warnings related to memory layout.
-
-### Initialization and de-initialization
-
-The method `MyClass_new` acts only to provide initial values for `MyClassObject` and allocates memory for the base type:
-
-```
-PyObject *MyClass_new(PyTypeObject *type, PyObject *args, PyObject *kwds){
- std::cout << "MtClass_new() called!" << std::endl;
-
- MyClassObject *self;
- self = (MyClassObject*) type->tp_alloc(type, 0);
- if(self != NULL){ // -> allocation successfull
- // assign initial values
- self->m_value = 0;
- self->m_myclass = NULL;
- }
- return (PyObject*) self;
-}
-```
-
-Actual initialization takes place in `MyClass_init`, which corresponds to the [__init__()][14] method in Python:
-
-```
-int MyClass_init(PyObject *self, PyObject *args, PyObject *kwds){
-
- ((MyClassObject *)self)->m_value = 123;
-
- MyClassObject* m = (MyClassObject*)self;
- m->m_myclass = (MyClass*)PyObject_Malloc(sizeof(MyClass));
-
- if(!m->m_myclass){
- PyErr_SetString(PyExc_RuntimeError, "Memory allocation failed");
- return -1;
- }
-
- try {
- new (m->m_myclass) MyClass();
- } catch (const std::exception& ex) {
- PyObject_Free(m->m_myclass);
- m->m_myclass = NULL;
- m->m_value = 0;
- PyErr_SetString(PyExc_RuntimeError, ex.what());
- return -1;
- } catch(...) {
- PyObject_Free(m->m_myclass);
- m->m_myclass = NULL;
- m->m_value = 0;
- PyErr_SetString(PyExc_RuntimeError, "Initialization failed");
- return -1;
- }
-
- return 0;
-}
-```
-
-If you want to have arguments passed during initialization, you must call [PyArg_ParseTuple][15] at this point. For the sake of simplicity, all arguments passed during initialization are ignored in this example. In the first part of the function, the `PyObject` pointer (`self`) is reinterpreted to a pointer to `MyClassObject` in order to get access to our additional members. Additionally, the memory for the C++ class is allocated and its constructor is executed.
-
-Note that exception handling and memory allocation (and de-allocation) must be carefully done in order to prevent memory leaks. When the reference count drops to zero, the `MyClass_dealloc` function takes care of freeing all related heap memory. There’s a [dedicated chapter][16] in the documentation about memory management for C and C++ extensions.
-
-### Method wrapper
-
-Calling a related C++ class method from the Python class is easy:
-
-```
-PyObject* MyClass_addOne(PyObject *self, PyObject *args){
- assert(self);
-
- MyClassObject* _self = reinterpret_cast(self);
- unsigned long val = _self->m_myclass->addOne();
- return PyLong_FromUnsignedLong(val);
-}
-```
-
-Again, the `PyObject*` argument (`self`) is casted to `MyClassObject*` in order to get access to `m_myclass`, a pointer to the C++ class instance. With this information, the classes method `addOne()` is called and the result is returned in form of a [Python integer object][17].
-
-### 3 ways to debug
-
-For debugging purposes, it can be valuable to compile the CPython interpreter in debugging configuration. A detailed description can be found in the [official documentation][18]. It’s possible to follow the next steps, as long as additional debug symbols for the pre-installed interpreter are downloaded.
-
-#### GNU Debugger
-
-Good old [GNU Debugger (GDB)][19] is, of course, also useful here. I include a [gdbinit][20] file, defining some options and breakpoints. There’s also the [gdb.sh][21] script, which creates a debug build and initiates a GDB session:
-
-![Gnu Debugger (GDB) is useful for your Python C and C++ extensions.][22]
-
-GDB invokes the CPython interpreter with the script file [main.py][23]. The script file allows you to easily define all the actions you want to perform with the Python extension module.
-
-#### C++ application
-
-Another approach is to embed the CPython interpreter in a separate C++ application. In the repository, this can be found in the file [pydbg.cpp][24]:
-
-```
-int main(int argc, char *argv[], char *envp[])
-{
- Py_SetProgramName(L"DbgPythonCppExtension");
- Py_Initialize();
-
- PyObject *pmodule = PyImport_ImportModule("MyModule");
- if (!pmodule) {
- PyErr_Print();
- std::cerr << "Failed to import module MyModule" << std::endl;
- return -1;
- }
-
- PyObject *myClassType = PyObject_GetAttrString(pmodule, "MyClass");
- if (!myClassType) {
- std::cerr << "Unable to get type MyClass from MyModule" << std::endl;
- return -1;
- }
-
- PyObject *myClassInstance = PyObject_CallObject(myClassType, NULL);
-
- if (!myClassInstance) {
- std::cerr << "Instantioation of MyClass failed" << std::endl;
- return -1;
- }
-
- Py_DecRef(myClassInstance); // invoke deallocation
- return 0;
-}
-```
-
-Using the [high level interface][25], it’s possible to include the extension module and perform actions on it. This allows you to debug in the native IDE environment. It also gives you finer control of the variables passed from and to the extension module.
-
-The drawback is the high expense of creating an extra application.
-
-#### VSCode and VSCodium LLDB extension
-
-Using a debugger extension like [CodeLLDB][26] is probably the most convenient debugging option. The repository includes the VSCode or VSCodium configuration files for building the extension ([task.json][27], [CMake Tools][28]) and invoking the debugger ([launch.json][29]). This approach combines the advantages of the previous ones: Debugging in an graphical IDE, defining actions in a Python script file or even dynamically in the interpreter prompt.
-
-![VSCodium features an integrated debugger.][30]
-
-### Extend C++ with Python
-
-All functionality available from Python code is also available from within a C or C++ extension. While coding in Python is often considered as an easy win, extending Python in C or C++ can also be a pain. On the other hand, while native Python code is slower than C++, a C or C++ extension makes it possible to elevate a computation-intensive task to the speed of native machine code.
-
-You must also consider the usage of an ABI. The stable ABI provides a way to maintain backwards compatibility to older versions of CPython as described in [the documentation][31].
-
-In the end, you must weigh the advantages and disadvantages yourself. Should you decide to use C extensions to make certain functionality available to you in Python, you’ve seen how it can be done.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/11/extend-c-python
-
-作者:[Stephan Avenwedde][a]
-选题:[lkxed][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/hansic99
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/22/9/python-interpreters-2022
-[2]: https://docs.python.org/3/library/ctypes.html#module-ctypes
-[3]: https://github.com/hANSIc99/PythonCppExtension
-[4]: https://opensource.com/article/21/5/cmake
-[5]: https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pyobject#c.PyObject
-[6]: https://docs.python.org/3/c-api/type.html#c.PyType_FromSpec
-[7]: https://docs.python.org/3/c-api/typeobj.html#heap-types
-[8]: https://github.com/hANSIc99/PythonCppExtension/blob/main/my_class_py_type.h
-[9]: https://docs.python.org/3/c-api/type.html#c.PyType_Spec
-[10]: https://docs.python.org/release/3.9.1/c-api/type.html?highlight=pytype_slot#c.PyType_Slot
-[11]: https://en.cppreference.com/w/cpp/types/offsetof
-[12]: https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pymemberdef#c.PyMemberDef
-[13]: https://en.cppreference.com/w/cpp/utility/optional
-[14]: https://docs.python.org/3/library/dataclasses.html?highlight=__init__
-[15]: https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuple
-[16]: https://docs.python.org/3/c-api/memory.html
-[17]: https://docs.python.org/3/c-api/long.html
-[18]: https://docs.python.org/3/c-api/intro.html#debugging-builds
-[19]: https://opensource.com/article/21/3/debug-code-gdb
-[20]: https://github.com/hANSIc99/PythonCppExtension/blob/main/gdbinit
-[21]: https://github.com/hANSIc99/PythonCppExtension/blob/main/gdb.sh
-[22]: https://opensource.com/sites/default/files/2022-11/gdb_session_b_0.png
-[23]: https://github.com/hANSIc99/PythonCppExtension/blob/main/main.py
-[24]: https://github.com/hANSIc99/PythonCppExtension/blob/main/pydbg.cpp
-[25]: https://docs.python.org/3/extending/embedding.html#very-high-level-embedding
-[26]: https://github.com/vadimcn/vscode-lldb
-[27]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/tasks.json
-[28]: https://github.com/microsoft/vscode-cmake-tools
-[29]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/launch.json
-[30]: https://opensource.com/sites/default/files/2022-11/vscodium_debug_session.png
-[31]: https://docs.python.org/3/c-api/stable.html
diff --git a/translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md b/translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
new file mode 100644
index 0000000000..184640b701
--- /dev/null
+++ b/translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
@@ -0,0 +1,320 @@
+[#]: subject: "Write a C++ extension module for Python"
+[#]: via: "https://opensource.com/article/22/11/extend-c-python"
+[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
+[#]: collector: "lkxed"
+[#]: translator: "MjSeven"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+为 Python 写一个 C++ 扩展模块
+======
+
+使用 C 扩展为 Python 提供特定功能。
+
+在前一篇文章中,我介绍了[六个 Python 解释器][1]。在大多数系统上,CPython 是默认的解释器,而且根据民意调查显示,它还是最流行的解释器。Cpython 的独有功能是使用扩展 API 用 C 语言编写 Python 模块。用 C 语言编写 Python 模块允许你将计算密集型代码转移到 C,同时保留 Python 的易用性。
+
+在本文中,我将向你展示如何编写一个 C++ 扩展模块。使用 C++ 而不是 C,因为大多数编译器通常都能理解这两种语言。我必须提前说明缺点:以这种方式构建的 Python 模块不能移植到其他解释器中。它们只与 CPython 解释器配合工作。因此,如果你正在寻找一种可移植性更好的与 C 语言模块交互的方式,考虑下使用 [ctypes][2]模块。
+
+### 源代码
+
+和往常一样,你可以在 [GitHub][3] 上找到相关的源代码。仓库中的 C++ 文件有以下用途:
+
+- `my_py_module.cpp`: Python 模块 _MyModule_ 的定义
+- `my_cpp_class.h`: 一个头文件 - 只有一个暴露给 Python 的 C++ 类
+- `my_class_py_type.h/cpp`: Python 形式的 C++ 类
+- `pydbg.cpp`: 用于调试的单独应用程序
+
+本文构建的 Python 模块不会有任何实际用途,但它是一个很好的示例。
+
+### 构建模块
+
+在查看源代码之前,你可以检查它是否能在你的系统上编译。[我使用 CMake][4]来创建构建的配置信息,因此你的系统上必须安装 CMake。为了配置和构建这个模块,可以让 Python 去执行这个过程:
+
+```
+$ python3 setup.py build
+```
+
+或者手动执行:
+
+```
+$ cmake -B build
+$ cmake --build build
+```
+
+之后,在 `/build` 子目录下你会有一个名为 `MyModule. so` 的文件。
+
+### 定义扩展模块
+
+首先,看一下 `my_py_module.cpp` 文件,尤其是 `PyInit_MyModule` 函数:
+
+``` cpp
+PyMODINIT_FUNC
+PyInit_MyModule(void) {
+ PyObject* module = PyModule_Create(&my_module);
+
+ PyObject *myclass = PyType_FromSpec(&spec_myclass);
+ if (myclass == NULL){
+ return NULL;
+ }
+ Py_INCREF(myclass);
+
+ if(PyModule_AddObject(module, "MyClass", myclass) < 0){
+ Py_DECREF(myclass);
+ Py_DECREF(module);
+ return NULL;
+ }
+ return module;
+}
+```
+
+这是本例中最重要的代码,因为它是 CPython 的入口点。一般来说,当一个 Python C 扩展被编译并作为共享对象二进制文件提供时,CPython 会在同名二进制文件中(`.so`)搜索 `PyInit_` 函数,并在试图导入时执行它。
+
+无论是声明还是实例,所有 Python 类型都是 [PyObject][5] 的一个指针。在此函数的第一部分中,`module` 通过 `PyModule_Create(...)` 创建的。正如你在 `module` 详述(`my_py_module`,同名文件)中看到的,它没有任何特殊的功能。
+
+之后,调用 [PyType_FromSpec][6] 为自定义类型 MyClass 创建一个 Python [堆类型][7]定义。一个堆类型对应于一个 Python 类,然后将它赋值给 MyModule 模块。
+
+_注意,如果其中一个函数返回失败,则必须减少以前创建的复制对象的引用计数,以便解释器删除它们。_
+
+### 指定 Python 类型
+
+MyClass 详设在 [my_class_py_type.h][8] 中可以找到,它作为 [PyType_Spec][9] 的一个实例:
+
+```cpp
+static PyType_Spec spec_myclass = {
+ "MyClass", // name
+ sizeof(MyClassObject) + sizeof(MyClass), // basicsize
+ 0, // itemsize
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, // flags
+ MyClass_slots // slots
+};
+```
+
+它定义了一些基本类型信息,它的大小包括 Python 表示的大小(`MyClassObject`)和普通 C++ 类的大小(`MyClass`)。`MyClassObject` 定义如下:
+
+```cpp
+typedef struct {
+ PyObject_HEAD
+ int m_value;
+ MyClass* m_myclass;
+} MyClassObject;
+```
+
+Python 表示的话就是 [PyObject][5] 类型,由 `PyObject_HEAD` 宏和其他一些成员定义。成员 `m_value` 视为普通类成员,而成员 `m_myclass` 只能在 C++ 代码内部访问。
+
+[PyType_Slot][10] 定义了一些其他功能:
+
+```cpp
+static PyType_Slot MyClass_slots[] = {
+ {Py_tp_new, (void*)MyClass_new},
+ {Py_tp_init, (void*)MyClass_init},
+ {Py_tp_dealloc, (void*)MyClass_Dealloc},
+ {Py_tp_members, MyClass_members},
+ {Py_tp_methods, MyClass_methods},
+ {0, 0} /* Sentinel */
+};
+```
+
+在这里,设置了一些初始化和析构函数的跳转,还有普通的类方法和成员,还可以设置其他功能,如分配初始属性字典,但这是可选的。这些定义通常以一个哨兵结束,包含 `NULL` 值。
+
+要完成类型详述,还包括下面的方法和成员表:
+
+```cpp
+static PyMethodDef MyClass_methods[] = {
+ {"addOne", (PyCFunction)MyClass_addOne, METH_NOARGS, PyDoc_STR("Return an incrmented integer")},
+ {NULL, NULL} /* Sentinel */
+};
+
+static struct PyMemberDef MyClass_members[] = {
+ {"value", T_INT, offsetof(MyClassObject, m_value)},
+ {NULL} /* Sentinel */
+};
+```
+
+在方法表中,定义了 Python 方法 `addOne`,它指向相关的 C++ 函数 `MyClass_addOne`。它充当了一个包装器,它在 C++ 类中调用 `addOne()` 方法。
+
+在成员表中,只有一个为演示目的而定义的成员。不幸的是,在 [PyMemberDef][12] 中使用的 [offsetof][11] 不允许添加 C++ 类型到 `MyClassObject`。如果你试图放置一些 C++ 类型的容器(如 [std::optional][13]),编译器会抱怨一些内存布局相关的警告。
+
+### 初始化和析构
+
+`MyClass_new` 方法只为 `MyClassObject` 提供一些初始值,并为其类型分配内存:
+
+```cpp
+PyObject *MyClass_new(PyTypeObject *type, PyObject *args, PyObject *kwds){
+ std::cout << "MtClass_new() called!" << std::endl;
+
+ MyClassObject *self;
+ self = (MyClassObject*) type->tp_alloc(type, 0);
+ if(self != NULL){ // -> 分配成功
+ // 赋初始值
+ self->m_value = 0;
+ self->m_myclass = NULL;
+ }
+ return (PyObject*) self;
+}
+```
+
+实际的初始化发生在 `MyClass_init` 中,它对应于 Python 中的 [\_\_init__()][14] 方法:
+
+```cpp
+int MyClass_init(PyObject *self, PyObject *args, PyObject *kwds){
+
+ ((MyClassObject *)self)->m_value = 123;
+
+ MyClassObject* m = (MyClassObject*)self;
+ m->m_myclass = (MyClass*)PyObject_Malloc(sizeof(MyClass));
+
+ if(!m->m_myclass){
+ PyErr_SetString(PyExc_RuntimeError, "Memory allocation failed");
+ return -1;
+ }
+
+ try {
+ new (m->m_myclass) MyClass();
+ } catch (const std::exception& ex) {
+ PyObject_Free(m->m_myclass);
+ m->m_myclass = NULL;
+ m->m_value = 0;
+ PyErr_SetString(PyExc_RuntimeError, ex.what());
+ return -1;
+ } catch(...) {
+ PyObject_Free(m->m_myclass);
+ m->m_myclass = NULL;
+ m->m_value = 0;
+ PyErr_SetString(PyExc_RuntimeError, "Initialization failed");
+ return -1;
+ }
+
+ return 0;
+}
+```
+
+如果你想在初始化过程中传递参数,必须在此时调用 [PyArg_ParseTuple][15]。简单起见,本例将忽略初始化过程中传递的所有参数。在函数的第一部分中,`PyObject` 指针(`self`)被强转为 `MyClassObject` 类型的指针,以便访问其他成员。此外,还分配了 C++ 类的内存,并执行了构造函数。
+
+注意,为了防止内存泄漏,必须仔细执行异常处理和内存分配(还有释放)。当引用计数将为零时,`MyClass_dealloc` 函数负责释放所有相关的堆内存。在文档中有一个章节专门讲述关于 C 和 C++ 扩展的内存管理。
+
+### 包装方法
+
+从 Python 类中调用相关的 C++ 类方法很简单:
+
+```cpp
+PyObject* MyClass_addOne(PyObject *self, PyObject *args){
+ assert(self);
+
+ MyClassObject* _self = reinterpret_cast(self);
+ unsigned long val = _self->m_myclass->addOne();
+ return PyLong_FromUnsignedLong(val);
+}
+```
+
+同样,`PyObject` 参数(`self`)被强转为 `MyClassObject` 类型以便访问 `m_myclass`,它指向 C++ 对应类实例的指针。有了这些信息,调用 `addOne()` 类方法,并且结果以[ Python 整数对象][17]返回。
+
+### 3 种方法调试
+
+出于调试目的,在调试配置中编译 CPython 解释器是很有价值的。详细描述参阅[官方文档][18]。只要下载了预安装的解释器的其他调试符号,就可以按照下面的步骤进行操作。
+
+#### GNU 调试器
+
+当然,老式的 [GNU 调试器(GDB)][19]也可以派上用场。源码中包含了一个 [gdbinit][20] 文件,定义了一些选项和断点,另外还有一个 [gdb.sh][21] 脚本,它会创建一个调试构建并启动一个 GDB 会话:
+
+![Gnu 调试器(GDB)对于 Python C 和 C++ 扩展非常有用][22]
+
+GDB 使用脚本文件 [main.py][23] 调用 CPython 解释器,它允许你轻松定义你想要使用 Python 扩展模块执行的所有操作。
+
+#### C++ 应用
+
+另一种方法是将 CPython 解释器嵌入到一个单独的 C++ 应用程序中。可以在仓库的 [pydbg.cpp][24] 文件中找到:
+
+```cpp
+int main(int argc, char *argv[], char *envp[])
+{
+ Py_SetProgramName(L"DbgPythonCppExtension");
+ Py_Initialize();
+
+ PyObject *pmodule = PyImport_ImportModule("MyModule");
+ if (!pmodule) {
+ PyErr_Print();
+ std::cerr << "Failed to import module MyModule" << std::endl;
+ return -1;
+ }
+
+ PyObject *myClassType = PyObject_GetAttrString(pmodule, "MyClass");
+ if (!myClassType) {
+ std::cerr << "Unable to get type MyClass from MyModule" << std::endl;
+ return -1;
+ }
+
+ PyObject *myClassInstance = PyObject_CallObject(myClassType, NULL);
+
+ if (!myClassInstance) {
+ std::cerr << "Instantioation of MyClass failed" << std::endl;
+ return -1;
+ }
+
+ Py_DecRef(myClassInstance); // invoke deallocation
+ return 0;
+}
+```
+
+使用[高级接口][25],可以导入扩展模块并对其执行操作。它允许你在本地 IDE 环境中进行调试,还能让你更好地控制传递或来自扩展模块的变量。
+
+缺点是创建一个额外的应用程序的成本很高。
+
+#### VSCode 和 VSCodium LLDB 扩展
+
+使用像 [CodeLLDB][26] 这样的调试器扩展可能是最方便的调试选项。仓库包含了一些 VSCode/VSCodium 的配置文件,用于构建扩展,如 [task.json][27]、[CMake Tools][28] 和调用调试器([launch.json][29])。这种方法结合了前面几种方法的优点:在图形 IDE 中调试,在 Python 脚本文件中定义操作,甚至在解释器提示符中动态定义操作。
+
+![VSCodium 有一个集成的调试器。][30]
+
+### 用 C++ 扩展 Python
+
+Python 的所有功能也可以从 C 或 C++ 扩展中获得。虽然用 Python 写代码通常认为是一件容易的事情,但用 C 或 C++ 扩展 Python 代码是一件痛苦的事情。另一方面,虽然原生 Python 代码比 C++ 慢,但 C 或 C++ 扩展可以将计算密集型任务提升到原生机器码的速度。
+
+你还必须考虑 ABI 的使用。稳定的 ABI 提供了一种方法来保持旧版本 CPython 的向后兼容性,如[文档][31]所述。
+
+最后,你必须自己权衡利弊。如果你决定使用 C 语言来扩展 Python 中的一些功能,你已经看到了如何实现它。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/11/extend-c-python
+
+作者:[Stephan Avenwedde][a]
+选题:[lkxed][b]
+译者:[MjSeven](https://github.com/MjSeven)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/hansic99
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/22/9/python-interpreters-2022
+[2]: https://docs.python.org/3/library/ctypes.html#module-ctypes
+[3]: https://github.com/hANSIc99/PythonCppExtension
+[4]: https://opensource.com/article/21/5/cmake
+[5]: https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pyobject#c.PyObject
+[6]: https://docs.python.org/3/c-api/type.html#c.PyType_FromSpec
+[7]: https://docs.python.org/3/c-api/typeobj.html#heap-types
+[8]: https://github.com/hANSIc99/PythonCppExtension/blob/main/my_class_py_type.h
+[9]: https://docs.python.org/3/c-api/type.html#c.PyType_Spec
+[10]: https://docs.python.org/release/3.9.1/c-api/type.html?highlight=pytype_slot#c.PyType_Slot
+[11]: https://en.cppreference.com/w/cpp/types/offsetof
+[12]: https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pymemberdef#c.PyMemberDef
+[13]: https://en.cppreference.com/w/cpp/utility/optional
+[14]: https://docs.python.org/3/library/dataclasses.html?highlight=__init__
+[15]: https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuple
+[16]: https://docs.python.org/3/c-api/memory.html
+[17]: https://docs.python.org/3/c-api/long.html
+[18]: https://docs.python.org/3/c-api/intro.html#debugging-builds
+[19]: https://opensource.com/article/21/3/debug-code-gdb
+[20]: https://github.com/hANSIc99/PythonCppExtension/blob/main/gdbinit
+[21]: https://github.com/hANSIc99/PythonCppExtension/blob/main/gdb.sh
+[22]: https://opensource.com/sites/default/files/2022-11/gdb_session_b_0.png
+[23]: https://github.com/hANSIc99/PythonCppExtension/blob/main/main.py
+[24]: https://github.com/hANSIc99/PythonCppExtension/blob/main/pydbg.cpp
+[25]: https://docs.python.org/3/extending/embedding.html#very-high-level-embedding
+[26]: https://github.com/vadimcn/vscode-lldb
+[27]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/tasks.json
+[28]: https://github.com/microsoft/vscode-cmake-tools
+[29]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/launch.json
+[30]: https://opensource.com/sites/default/files/2022-11/vscodium_debug_session.png
+[31]: https://docs.python.org/3/c-api/stable.html
From 93a7b20dc1749374ab6725915fb86009c4bad49f Mon Sep 17 00:00:00 2001
From: CanYellow
Date: Mon, 2 Jan 2023 14:58:04 +0800
Subject: [PATCH 176/266] Translated (#28352)
* 1st h
* 2
* finished
* finished
---
...s for measuring your open source software usage.md | 142 -----------------
...s for measuring your open source software usage.md | 145 ++++++++++++++++++
2 files changed, 145 insertions(+), 142 deletions(-)
delete mode 100644 sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
create mode 100644 translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
diff --git a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
deleted file mode 100644
index 6c4a9eec17..0000000000
--- a/sources/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
+++ /dev/null
@@ -1,142 +0,0 @@
-[#]: subject: "8 ideas for measuring your open source software usage"
-[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics"
-[#]: author: "Georg Link https://opensource.com/users/georglink"
-[#]: collector: "lkxed"
-[#]: translator: "CanYellow"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-8 ideas for measuring your open source software usage
-======
-
-Those of us who support open source project communities are often asked about usage metrics — a lot. The goal of these metrics is usually to demonstrate the software's importance as measured by its user base and awareness. We typically want to know: how many people use the software, how many installations are there, and how many lives are being touched.
-
-To make a long story short: We cannot answer these questions directly.
-
-Sorry to disappoint you if you were hoping for a definitive solution. No one has the perfect answers to questions about usage metrics. At least, no precise answers.
-
-The good news is that there are approximations and alternative metrics that can satisfy your thirst for knowledge about the software's usage, at least partially. This article explores these alternatives including their benefits and shortcomings.
-
-### Downloads
-
-When you visit websites that offer software, you can often see how many times the software has been downloaded. An example that comes to mind is Firefox, which used to have a download counter. It was an impressive number and gave the impression that Firefox was a popular browser—which it was for a while.
-
-However, individual behavior can directly impact the accuracy of this number. For example, when a person wipes their machine regularly, each rebuild incurs a separate download. To account for this reality, there needs to be a way to subtract a few dozen (maybe hundreds) downloads from the number because of that one person.
-
-Not only can downloads overestimate usage, but they can also underestimate usage. For instance, a system administrator may download a new version of Firefox once to a flash drive and then install it on hundreds of devices.
-
-Download metrics are easy to collect because you can log each download request on the server. The problem is that you don't know what happens to the software after it is downloaded. Was the person able to use the software as anticipated? Or did the person run into issues and abandon the software?
-
-For open source projects, you can consider a variety of download metrics, such as the number of binaries downloaded from:
-
-- the project website
-- package managers such as npm, PyPi, and Maven
-- code repositories like GitHub, GitLab, and Gitee
-
-You may also be interested in downloads of the source code because downstream projects are most likely to use this format (also read [How to measure the impact of your open source project][1]). Relevant download metrics include:
-
-- The number of clones (source code downloads) from code repositories like GitHub, GitLab, and Gitee
-- The number of archives (tar, zip) downloaded from the website
-- The number of source code downloads through package managers like npm, PyPi, and Maven
-
-Download metrics for source code are an even less reliable measure than binary downloads (although there is no research to demonstrate this). Just imagine that a developer wants to use the most recent version of your source code and has configured their build pipeline to always clone your repository for every build. Now imagine that an automated build process was failing and retrying to build, constantly cloning your repository. You can also imagine a scenario where the metric is lower than expected—say the repository is cached somewhere, and downloads are served by the cache.
-
-**[ Related read [5 metrics to track in your open source community][2] ]**
-
-In conclusion, download metrics are good proxies for detecting trends and providing context around current usage. We cannot define specifically how a download translates to usage. But we can say that an increase in downloads is an indicator of more potential users. For example, if you advertise your software and see that download numbers are higher during the campaign, it would be fair to assume that the advertisement prompted more people to download the software. The source and metadata of the download can also provide additional context for usage patterns. What versions of your software are still in use? What operating system or language-specific versions are more popular? This helps the community prioritize which platforms to support and test.
-
-### Issues
-
-As an open source project, you probably have an issue tracker. When someone opens an issue, two common goals are to report a bug or request a feature. The issue author has likely used your software. As a user, they would have found a bug or identified the need for a new feature.
-
-Obviously, most users don't take the extra step to file an issue. Issue authors are dedicated users and we are thankful for them. Also, by opening an issue, they have become a non-code contributor. They may become a code contributor. A rule of thumb is that for every 10,000 users, you may get 100 who open an issue and one who contributes code. Depending on the type of user, these ratios may differ.
-
-With regard to metrics, you can count the number of issue authors as a lower-bound estimation for usage. Related metrics can include:
-
-- The number of issue authors
-- The number of active issue authors (opened an issue in the last 6 months)
-- The number of issue authors who also contribute code
-- The number of issues opened
-- The number of issue comments written
-
-### User mailing lists, forums, and Q&A sites
-
-Many open source projects have mailing lists for users, a forum, and presence on a Q&A site, such as Stack Overflow. Similar to issue authors, people who post there can be considered the tip of the iceberg of users. Metrics around how active a community is in these mailing lists, forums, and Q&A sites can also be used as a proxy for increasing or decreasing the user base. Related metrics can focus on the activity in these places, including:
-
-- The number of user mailing list subscribers
-- The number of forum users
-- The number of questions asked
-- The number of answers provided
-- The number of messages created
-
-### Call-home feature
-
-To get accurate counts of users, one idea is to have your software report back when it is in use.
-
-This can be creepy. Imagine a system administrator whose firewall reports an unexpected connection to your server. Not only could the report never reach you (it was blocked), but your software may be banned from future use.
-
-Responsible ways to have a call-home feature is an optional service to look for updates and let the user know to use the latest version. Another optional feature can focus on usage telemetry where you ask the user whether your software may, anonymously, report back how the software is used. When implemented thoughtfully, this approach can allow users to help improve the software by their style of using it. A user may have the opinion: "I often don't allow this usage information sharing but for some software I do because I hope the developers will make it better for me in the long term."
-
-### Stars and forks
-
-Stars and forks are features on social coding platforms like GitHub, GitLab, and Gitee. Users on these platforms can star a project. Why do they star projects? GitHub's documentation explains, "You can star repositories and topics to keep track of projects you find interesting and discover related content in your news feed." Starring is the equivalent of bookmarking and also provides a way to show appreciation to a repository maintainer. Stars have been used as an indicator of the popularity of a project. When a project has a big announcement that attracts considerable attention, the star count tends to increase. The star metric does not indicate the usage of the software.
-
-Forks on these social coding platforms are clones of a repository. Non-maintainers can make changes in their fork and submit them for review through a pull request. Forks are more a reflection of community size than stars. Developers may also fork a project to save a copy they can access even after the original repository has disappeared. Due to the use of forks in the contribution workflow, the metric is a good indicator for the developer community. Forks do not typically indicate usage by non-developers because non-developers usually do not create forks.
-
-### Social media
-
-Social media platforms provide gathering places for people with shared interests, including Facebook, Instagram, LinkedIn, Reddit, Twitter, and more. Using a social media strategy, open source projects can attract people with interest and affinity for their projects by setting up respective gathering spaces on these platforms. Through these social media channels, open source projects can share news and updates and highlight contributors and users. They can also be used to meet people who would not otherwise interact with your project.
-
-We are hesitant to suggest the following metrics because they have no clear connection to actual usage of your software and often require analysis for positive, negative, and neutral sentiment. People may be excited about your project for many different reasons and want to follow it without actually using it. However, like other metrics already discussed, showing that you are able to draw a crowd in social media spaces is an indicator of the interest in your project overall. Metrics for different social media platforms may include:
-
-- The number of followers or subscribers
-- The number of messages
-- The number of active message authors
-- The number of likes, shares, reactions, and other interactions
-
-### Web analytics and documentation
-
-Website traffic is a useful metric as well. This metric is influenced more by your outreach and marketing activities than your number of users. However, we have an ace up our sleeve: our user documentation, tutorials, handbooks, and API documentation. We can see what topics on our website draw attention, including documentation. The number of visitors to the documentation would arguably increase with an increase in the number of discrete users of the software. We can therefore detect general interest in the project with visitors to the website and more specifically observe user trends by observing visitors to the documentation. Metrics may include:
-
-- The number of website visitors
-- The number of documentation visitors
-- The duration visitors spend on your website or in documentation
-
-### Events
-
-Event metrics are available if you are hosting events around your project. This is a great way to build community. How many people submit abstracts to speak at your events? How many people show up to your events? This can be interesting for both in-person and virtual events. Of course, how you advertise your event strongly influences how many people show up. Also, you may co-locate your event with a larger event where people travel anyway, and thus, are in town and can easily attend your event. As long as you use a consistent event strategy, you can make a case that a rise in speaker submissions and attendee registrations are indicative of increasing popularity and user base.
-
-You don't need to host your own event to collect insightful metrics. If you host talks about your project at open source events, you can measure how many people show up to your session focused on your project. At events like FOSDEM, some talks are specifically focused on updates or announcements of open source projects and the rooms are filled to the brim (like almost all sessions at FOSDEM).
-
-Metrics you might consider:
-
-- The number of attendees at your project-centric event
-- The number of talks submitted to your project-centric event
-- The number of attendees at your project-centric talks
-
-### Conclusion about approximating usage of open source software
-
-As we've illustrated, there are many metrics that can indicate trends around the usage of your software, and all are imperfect. In most cases, these metrics can be heavily influenced by individual behavior, system design, and noise. As such, we suggest that you never use any of these metrics in isolation, given the relative uncertainty of each one. But if you collect a set of metrics from a variety of sources, you should be able to detect trends in behavior and usage. If you have the means to compare the same set of metrics across multiple open source projects with commonalities—such as similar functionality, strong interdependencies, hosted under the same foundation, and other characteristics—you can improve your sense of behavioral baselines.
-
-Note that in this overview, we've also chosen to highlight metrics that evaluate direct usage. As most software depends on a variety of other software packages, we would be remiss if we did not mention that usage and behavior can also be heavily impacted by indirect usage as part of a dependency chain. As such, we recommend incorporating the count of upstream and downstream dependencies as another layer of context in your analysis.
-
-In closing, as the wielder of data and metrics, we encourage you to recognize the power and responsibility that you have for your stakeholders. Any metric that you publish has the potential to influence behavior. It is a best practice to always share your context—bases, sources, estimations, and other critical contextual information—as this will help others to interpret your results.
-
-We thank the CHAOSS Community for the insightful conversation at CHAOSScon EU 2022 in Dublin, Ireland that sparked the idea for this blog post and to the CHAOSS Community members who reviewed and helped improve this article.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/open-source-usage-metrics
-
-作者:[Georg Link][a]
-选题:[lkxed][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/georglink
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/18/5/metrics-project-success
-[2]: https://opensource.com/article/22/11/community-metrics
diff --git a/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
new file mode 100644
index 0000000000..f3efee7126
--- /dev/null
+++ b/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
@@ -0,0 +1,145 @@
+[#]: subject: "8 ideas for measuring your open source software usage"
+[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics"
+[#]: author: "Georg Link https://opensource.com/users/georglink"
+[#]: collector: "lkxed"
+[#]: translator: "CanYellow"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+衡量你开源软件使用的8个方法
+======
+
+我们这些支持开源项目社区的人经常被问到很多有关使用指标的问题。这些指标通常是为了通过用户群体和用户认知来衡量软件的重要性。我们一般都想知道有多少人使用该软件,有多少次安装以及触发了多少次实例。
+
+长话短说,我们尚无法直接回答上述问题。
+
+如果你想要寻找一个终极解决方案,那很抱歉要让你失望了。有关使用指标的问题,没有人有完美的答案,至少没有准确的答案。
+
+好消息是,有一些近似的和可选的指标至少能够部分地满足你对软件使用知识的渴求。本文探讨了这些替代方案以及他们的优点和缺点。
+
+### 下载
+
+当你浏览提供软件的网站时,你通常可以看到软件的下载次数。映入脑海的一个例子是 Firefox ,它曾经有一个下载计数器。Firefox 的下载量是一个印象深刻的数字,给人留下 Firefox 在一段时间内是一个流行的浏览器。
+
+然而,个人行为会直接影响这一数字的准确性。举例而言,当一个人定期重置他们的设备时,每一次重建都会引发一次独立的下载。考虑到这一现实,需要设计一种方法从下载量中去除几十次由上述人员带来的下载次数。
+
+下载量不仅会高估使用量,还会低估使用量。例如,一个系统管理员可能会下载一个新版本的 Firefox 一次并将其拷贝到闪存上,然后安装到数百台设备上。
+
+下载量指标是易于收集的,你可以在服务器上记录每一个下载请求。问题在于你不知道在这些软件下载以后会发生什么。下载它的人是否如预期的那样使用软件,还是运行时遇到了问题而遗弃了软件。
+
+对于开源项目而言,你可以考虑各种下载量指标,比如来自以下途径的下载指标:
+
+- 项目官网
+- 包管理器,比如 npm,PyPi 和 Maven
+- 代码仓库,如 Github,GitLab,Gitee 等
+
+你可能还对源代码的下载量感兴趣,因为下游项目更可能使用源代码形式 (见于[《如何衡量你的开源项目的影响》][1]一文)。相应的下载指标包括:
+
+- 从代码仓库克隆的数量,比如 GitHub,GitLab 和 Gitee
+- 从官网下载的归档文件 (tar,zip) 的数量
+- 通过像 npm,PyPi 和 Maven 这样的包管理器下载的源代码数量
+
+源代码的下载指标比二进制代码的下载指标更不可靠(虽然尚无相关研究表明如此)。试想一下,一名开发人员想要你的最新版本的源代码并已经配置好了他们的构建流程来总是在每一次构建中都克隆你的版本库。再想象一个自动构建过程失败了,它试图重新构建而不断地克隆你的版本库。你还可以考虑这样一个下载量低于预期的场景——源代码仓库在某些地方缓存了,下载来源是由这些缓存所提供的。
+
+**[相关阅读[跟踪你的开源社区的5个指标][2]]**
+
+总而言之,下载量指标是用于提供当前使用情况和探测趋势的很好的代表。我们无法明确地定义一次下载是如何转化为使用的。不过我们可以认为增加的下载量是更多潜在用户的标志。举例而言,如果你为你的软件做了广告并在活动期间得到了更高的下载量,可以公正的假定广告推动了更多人下载软件。下载行为的来源与元数据还可以提供额外的与使用行为相关的内容。你的软件的哪些版本仍在使用中?什么操作系统或者专属语言的版本更加流行?这有助于社区决定将哪个平台的软件作为支持与测试的优先选项。
+
+### 提问
+
+作为一个开源项目,你可能有一个问题追踪器。当某个人提出一个议题时一般有两个目标,报告一个漏洞或者请求增加一项功能。提问者可能使用过你的软件。作为一名用户,他可能发现了一个漏洞或者确定了对新功能的需求。
+
+很明显,大多数用户不会执行额外的步骤来提交问题。提问者是我们的忠实用户,我们对他们表示感谢。此外,通过提出问题,他们成为非代码贡献者,他们也有希望成为代码贡献者。经验法则是大约每10000名用户中,可能有100名提问者以及1名代码贡献者,当然取决于用户类型,上述比例可能有出入。
+
+回到指标问题,你可以将提问者数量作为评估使用量的下界。相关的指标包括:
+
+- 提问者数量
+- 活跃提问者的数量 (在过去6个月内提出问题的提问者)
+- 同时有代码贡献的提问者的数量
+- 尚未解决的问题的数量
+- 发布的问题评论的数量
+
+### 邮件列表,论坛和问答网站
+
+很多开源项目都拥有用户邮件列表,论坛,并且出现在类似 Stack Overflow 的问答网站上。与提问者一样,在这些地方发帖的人可被视作用户的冰山一角。与邮件列表、论坛和问答网站上的社区活跃程度相关的指标也可用于反映用户数量的上升或下降。相关指标可以集中于以下地方的活动,包括:
+
+- 用户邮件列表的订阅量
+- 论坛用户的数量
+- 问题的数量
+- 答案的数量
+- 发布信息的数量
+
+### 上报功能
+
+为了获得精确的用户数量,一个方案是让软件在使用时上报信息。
+
+这是令人毛骨悚然的。想象一下,系统管理员的防火墙报告了一个非预期的到你的服务器的网络连接,你不仅无法再收到软件报告(被防火墙拦截了),恐怕连你的软件也可能在未来被禁止使用。
+
+负责任的设置上报功能的方式为设置一项可选服务来检查更新并让用户知道使用最新版本。另一项可选功能可以集中在使用检测上,你可以通过该功能询问用户是否允许匿名上报软件使用情况。如果经过深思熟虑的实施,这种方式可以允许用户通过他们使用软件的方式帮助优化软件。用户可以持有这样的意见:我一般不允许使用信息分享;但对于一些软件,因为希望开发人员从长远来看会将软件优化得更好,我愿意这样做。
+
+### 加星标与克隆
+
+加星标与克隆是如 GitHub 、 GitLab 、 Gitee 等社交化编程平台的功能。平台用户可以给一个项目加星标。为什么他们要给项目加星标呢?GitHub 的文档作出了解释:你可以给一个仓库和主题加星标以保持对感兴趣的项目的跟踪和在你的新闻订阅中发现相关的内容。给一个项目加星标与将其加入书签的效果一样,并且还提供了一种向项目仓库的维护者展示赞赏的方式。星标的数量已经成为了项目流行程度的标志。当一个项目发布重大公告并获得相当的关注时,项目的星标数量会呈上升趋势。星标的数量指标并不反映软件的使用量。
+
+在社交化编程平台上的克隆 (Forks) 即将项目仓库复制一份在自己名下。仓库的非维护者可以在他们自己的克隆仓库中做修改并将修改通过拉取请求 (pull request) 的方式提交审核。克隆比星标更能反映软件社区的大小。开发者也可能为了保存一份代码副本而克隆一个项目以便在原始仓库消失后他们仍能访问代码。因为克隆功能在代码贡献工作流中的应用,克隆量是衡量开发社区的良好指标。克隆量通常也不反映非开发人员的使用,因为非开发人员一般不创建克隆。
+
+### 社交媒体
+
+包括 Facebook、Instagram、LinkIn、Reddit、Twtter等的社交媒体平台提供了相同兴趣的人们聚集的平台。采用社交媒体策略,开源项目可以通过在平台上设置相应的聚集空间来吸引对项目感兴趣的人们。通过这些社交媒体途径,开源项目可以分享项目新闻、更新、突出共献者和用户。这些社交媒体途径还可以用于认识那些本不会通过其他途径与项目互动的人。
+
+我在犹豫是否建议关注指标因为它与软件的真实使用量没有清晰的联系,并通常需要分析其中的积极、消极和中性的情绪。人们可能因为很多不同的原因对你的项目感到激动并想要在不实际使用的情况下关注它。然而与之前已经讨论过的指标一样,能够在社交媒体上吸收人群本就是项目受关注的整体指标。不同社交媒体平台的指标包括:
+
+- 关注与订阅的数量
+- 消息的数量
+- 活跃的消息作者的数量
+- 喜欢、分享、回复以及其他交互的数量
+
+### 网站分析与文档
+
+网站流量也是一个有用的指标。这一指标主要由你的服务范围以及市场营销活动影响而不是用户量。然而,我们还有一张王牌:我们的用户文档、教程、手册以及 API 文档。我们可以发现我们的网站以及文档中的什么主题更引人注意。文档的访问者数量应当大概随着软件的使用者数量增长而增长。因此我们可以通过网站的访问量探知对项目的一般性的兴趣并进一步通过观察文档的访问者观察用户风向。这些指标包括:
+
+- 网站访问者数量
+- 文档访问者的数量
+- 访问者在你的网站与文档上所花的时间
+
+### 活动
+
+活动指标可以在你主持与项目相关的活动时使用。这是建立社区的很好的方式。有多少人提交摘要在你的活动中发言?有多少人出席你的活动?不论是在线下活动还是线上活动中这可能都很有趣。当然,你如何推广你的活动可以很大程度上决定有多少人到场。同时你可以将自己的活动与人们出行的大型活动放在一起以方便人们参加你的活动。只要你使用一贯的活动策略,你可以通过演讲者提交与参会者注册的增加表征软件受欢迎程度与用户群的增加。
+
+你并不需要举办你自己的活动来收集有用的指标。如果你在开源活动中主持有关你项目的讨论,你可以衡量有多少人出席主要聚焦你的项目的会议。像 [FOSDEM][T1] 这样的活动,一些讨论特别聚焦开源项目的更新与公告,会议室中都挤满了人(像 FOSDEM 的所有会议一样)。
+
+你可以考虑如下指标:
+
+- 以你的项目为中心的活动的出席人数
+- 提交到以你的项目为中心的活动的演讲数量
+- 以你的项目为中心的演讲的出席人数
+
+### 关于估算开源软件使用的结论
+
+正如我们已经如上展现的,有很多指标可以反映软件使用的趋势,没有一个指标是完美的。在大多数情况下,这些指标可能被个人行为、系统设计和噪音所严重影响。因此,考虑到每一个指标的相对不确定性,我们建议你不要孤立地使用任何一个指标。但是如果你从不同的来源收集了一系列的指标,你应当能够探测到用户行为与软件使用的趋势。如果你有手段比较多个具有共性——比如相似的功能、强大的相互依赖以及由同一基金会托管和其他特征——的开源项目的同一组指标,你就可以提升你对用户行为基线的感知。
+
+需要注意的是,在本概述中,我们选择突出能够评估直接使用情况的指标。而大多数软件都依赖于其他各种软件包,如果我们不提及作为软件依赖链的一部分被间接使用也会严重影响软件使用与行为,这就是我们的疏忽。因此,我们建议将上下游依赖的合计数量作为你的分析中的另一层内容。
+
+最后,作为数据与指标的使用者,我们鼓励你认识到你的利益相关方的权利与责任。你发布的任何指标都有可能影响用户行为。最佳实践是总是一同分享你的背景信息——基础、来源、估算方法和其他关键上下文信息,这有助于其他人解释你的结果。
+
+我们感谢 [CHAOSS][T2] 社区在爱尔兰都柏林举行的 CHAOSScon EU 2022 上的富有洞察力的对话,上述对话激发这篇博文的想法。我们还要感谢审阅并帮助优化本文的 CHAOSS 社区的成员。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/open-source-usage-metrics
+
+作者:[Georg Link][a]
+选题:[lkxed][b]
+译者:[CanYellow](https://github.com/CanYellow)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/georglink
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/18/5/metrics-project-success
+[2]: https://opensource.com/article/22/11/community-metrics
+
+[T1]: https://fosdem.org/
+[T2]: https://chaoss.community
From e238594bd53ebaadd35562b709da284faa246dbc Mon Sep 17 00:00:00 2001
From: CanYellow
Date: Mon, 2 Jan 2023 16:52:34 +0800
Subject: [PATCH 177/266] Update 20210718 Is Open-Source Software Secure.md
---
sources/talk/20210718 Is Open-Source Software Secure.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/talk/20210718 Is Open-Source Software Secure.md b/sources/talk/20210718 Is Open-Source Software Secure.md
index d6d249b54b..01d262a018 100644
--- a/sources/talk/20210718 Is Open-Source Software Secure.md
+++ b/sources/talk/20210718 Is Open-Source Software Secure.md
@@ -2,7 +2,7 @@
[#]: via: (https://news.itsfoss.com/open-source-software-security/)
[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/)
[#]: collector: (lujun9972)
-[#]: translator: ( )
+[#]: translator: (CanYellow)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
From 753a74abfd83f3f1ab72eba8f75eca31bab3fcca Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 2 Jan 2023 17:04:36 +0800
Subject: [PATCH 178/266] RP
@geekpi
https://linux.cn/article-15404-1.html
---
...ightful features of the Linux QtFM file manager.md | 50 +++++++++++--------
1 file changed, 28 insertions(+), 22 deletions(-)
rename {translated/tech => published}/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md (54%)
diff --git a/translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
similarity index 54%
rename from translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
rename to published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
index 19cb2172d2..0b6dccf74a 100644
--- a/translated/tech/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
+++ b/published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
@@ -3,58 +3,63 @@
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15404-1.html"
-# Linux QtFM 文件管理器的 3 个令人愉快的功能
+Linux QtFM 文件管理器的 3 个令人愉快的功能
+======
-QtFM 是一个简单的文件管理器,旨在通过快速直观的界面提供文件管理的基本功能。它适用于 Linux、BSD 和 macOS。
+![][0]
+
+> 这个 Linux 文件管理器做了你所期望的一切,没有留下不愉快的惊喜。但这里有一些令人惊喜的事情,使它值得一试。
+
+QtFM 是一个简单的文件管理器,旨在通过一个快速直观的界面提供文件管理的基本功能。它适用于 Linux、BSD 和 macOS。
QtFM,顾名思义,使用 Qt(规范发音为 “cute”)编程工具包。我在 C++ 和 Python 中使用过 Qt 工具包,使用它总是一种乐趣。它是跨平台的,具有多个有用的抽象级别,因此开发人员不必直接与特定于供应商的 SDK 交互,而且它具有高度可配置性。从用户的角度来看,无论你使用的是最新的硬件还是[旧计算机][1],这都是一种“自然”且快速的体验。
### 使用 QtFM
-QtFM 没有太多内容。它专注于实现其名称所声称的:Qt 的文件管理器 (FM)。布局可能是你对文件管理器的期望:左侧是常用位置和设备的列表,右侧是文件列表。
+QtFM 没有太多内容。它专注于实现其名称所声称的:Qt 的文件管理器(FM)。其布局可能是你对文件管理器的期望:左侧是常用位置和设备的列表,右侧是文件列表。
![QtFM file manager][2]
-它只有四个菜单。
+它只有四个菜单:
-- **文件**:创建新文件或文件夹,打开新选项卡或窗口,或退出应用。
-- **编辑**:在左侧面板中复制、粘贴、移至垃圾箱或创建新书签。
-- **视图**:在列表视图和图标视图之间切换,调整布局。
-- **帮助**:许可信息和在线文档链接。
+- 文件File:创建新文件或文件夹,打开新选项卡或窗口,或退出应用。
+- 编辑Edit:在左侧面板中复制、粘贴、移至垃圾箱或创建新书签。
+- 视图View:在列表视图和图标视图之间切换,调整布局。
+- 帮助Help:许可信息和在线文档链接。
与 QtFM 交互与你可能习惯使用的任何标准文件管理器的体验大致相同。你可以点击导航、在其默认应用中打开文件、拖放文件和文件夹、复制和粘贴文件和文件夹、启动应用,以及你在与计算机内容交互时执行的任何其他操作。它很熟悉,所以基本上没有学习曲线,也没有不愉快的惊喜。
然而,也有一些惊喜。这是我最喜欢的三个。
-### 1. 将命令放入上下文菜单
+### 1、将命令放入上下文菜单
-使用 QtFM,你可以将可以在终端中运行的任何命令添加到右键单击上下文菜单中。例如,假设你想要一个将图像转换为 [webp 格式][3]的选项到右键菜单。无需学习复杂的框架或脚本语言,无需开发插件。你只需 3 个步骤即可完成:
+使用 QtFM,你可以将可以在终端中运行的任何命令添加到右键单击上下文菜单中。例如,假设你想要一个将图像转换为 [webp 格式][3] 的选项到右键菜单。无需学习复杂的框架或脚本语言,无需开发插件。你只需 3 个步骤即可完成:
-- 转到**编辑**菜单并选择**设置**。
-- 单击**自定义操作选项卡**。
-- 单击**添加**按钮并输入要运行的命令,对源文件使用 `%f`,对新文件使用 `%n`。
+- 转到 “编辑Edit” 菜单并选择 “设置Settings”。
+- 单击 “自定义操作选项卡Custom actions tab”。
+- 单击 “添加Add” 按钮并输入要运行的命令,用 `%f` 代表源文件,用 `%n` 代表新文件。
![QtFM custom actions][4]
该操作现在出现在你的 QtFM 上下文菜单中。
-### 2. 灵活的布局
+### 2、灵活的布局
-Qt 工具包的内置功能之一是它的许多组件(“小部件”)是可分离的。QtFM 利用了这一点,并允许你从**视图**菜单中解锁其布局。解锁后,你可以拖动工具栏和侧面板,将它们固定在窗口周围的新位置。我能够将菜单栏、导航工具栏和 URI 字段组合到一个统一的面板中,并且为了方便,我在窗口的右侧放置了一个文件树。
+Qt 工具包的内置功能之一是它的许多组件(“小部件”)是可分离的。QtFM 利用了这一点,并允许你从 “视图View” 菜单中解锁其布局。解锁后,你可以拖动工具栏和侧面板,将它们固定在窗口周围的新位置。我能够将菜单栏、导航工具栏和 URI 字段组合到一个统一的面板中,并且为了方便,我在窗口的右侧放置了一个文件树。
![QtFM unlocking the layout][5]
这不需要应用设计甚至配置的特殊知识。你只需解锁、拖放和锁定。
-### 3. 标签视图
+### 3、标签视图
许多 Linux 文件管理器提供选项卡的方式与大多数 Web 浏览器相同。这是一个简单的界面技巧,可让你方便地保留多个位置。我不知道它是否真的节省了时间,但我总觉得它确实如此。QtFM 也提供选项卡,我特别喜欢它实现选项卡的方式有两点。
-首先,选项卡默认位于窗口底部(你可以在**设置**中更改它)。因为我倾向于从左到右、从上到下阅读,所以我通常更喜欢在窗口的底部和右端设置“额外”信息。当然,“额外”信息的构成因用户而异,因此我不会责怪任何开发人员将小部件和面板放置在我不会放置小部件和面板的地方。不过,当开发人员不小心同意我的偏好时,这很好。
+首先,选项卡默认位于窗口底部(你可以在 “设置Settings” 中更改它)。因为我倾向于从左到右、从上到下阅读,所以我通常更喜欢在窗口的底部和右端设置“额外”信息。当然,“额外”信息的构成因用户而异,因此我不会责怪任何开发人员将小部件和面板放置在我不会放置小部件和面板的地方。不过,当开发人员不小心同意我的偏好时,这很好。
其次,标签是响应式的。只需将鼠标悬停在目标选项卡上,即可将文件或文件夹从一个选项卡拖动到另一个选项卡中。感觉就像从一个窗口拖放到另一个窗口一样自然。
@@ -66,7 +71,7 @@ Qt 工具包的内置功能之一是它的许多组件(“小部件”)是
$ sudo apt install qtfm
```
-如果你的发行版不提供 QtFM,你可以在其[网站][6]上找到它的软件包,或者你可以从它的 [Git 仓库][7]下载源码。
+如果你的发行版不提供 QtFM,你可以在其 [网站][6] 上找到它的软件包,或者你可以从它的 [Git 仓库][7] 下载源码。
---
@@ -75,7 +80,7 @@ via: https://opensource.com/article/22/12/linux-file-manager-qtfm
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者 ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux 中国](https://linux.cn/) 荣誉推出
@@ -88,3 +93,4 @@ via: https://opensource.com/article/22/12/linux-file-manager-qtfm
[5]: https://opensource.com/sites/default/files/2022-12/qtfm-layout-unlock.webp
[6]: https://qtfm.eu/
[7]: https://github.com/rodlie/qtfm/
+[0]: https://img.linux.net.cn/data/attachment/album/202301/02/170250zuwyuzzr9o3myl3l.jpg
\ No newline at end of file
From 63af5460784b272e0369705f23904c20751fda94 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 2 Jan 2023 17:36:04 +0800
Subject: [PATCH 179/266] RP
@MjSeven
https://linux.cn/article-15405-1.html
---
...️⭐️ Write a C++ extension module for Python.md | 53 ++++++++++---------
1 file changed, 28 insertions(+), 25 deletions(-)
rename {translated/tech => published}/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md (85%)
diff --git a/translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md b/published/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
similarity index 85%
rename from translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
rename to published/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
index 184640b701..5f426b7f7d 100644
--- a/translated/tech/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
+++ b/published/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md
@@ -3,24 +3,26 @@
[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
[#]: collector: "lkxed"
[#]: translator: "MjSeven"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15405-1.html"
为 Python 写一个 C++ 扩展模块
======
-使用 C 扩展为 Python 提供特定功能。
+![][0]
-在前一篇文章中,我介绍了[六个 Python 解释器][1]。在大多数系统上,CPython 是默认的解释器,而且根据民意调查显示,它还是最流行的解释器。Cpython 的独有功能是使用扩展 API 用 C 语言编写 Python 模块。用 C 语言编写 Python 模块允许你将计算密集型代码转移到 C,同时保留 Python 的易用性。
+> 使用 C 扩展为 Python 提供特定功能。
-在本文中,我将向你展示如何编写一个 C++ 扩展模块。使用 C++ 而不是 C,因为大多数编译器通常都能理解这两种语言。我必须提前说明缺点:以这种方式构建的 Python 模块不能移植到其他解释器中。它们只与 CPython 解释器配合工作。因此,如果你正在寻找一种可移植性更好的与 C 语言模块交互的方式,考虑下使用 [ctypes][2]模块。
+在前一篇文章中,我介绍了 [六个 Python 解释器][1]。在大多数系统上,CPython 是默认的解释器,而且根据民意调查显示,它还是最流行的解释器。Cpython 的独有功能是使用扩展 API 用 C 语言编写 Python 模块。用 C 语言编写 Python 模块允许你将计算密集型代码转移到 C,同时保留 Python 的易用性。
+
+在本文中,我将向你展示如何编写一个 C++ 扩展模块。使用 C++ 而不是 C,因为大多数编译器通常都能理解这两种语言。我必须提前说明缺点:以这种方式构建的 Python 模块不能移植到其他解释器中。它们只与 CPython 解释器配合工作。因此,如果你正在寻找一种可移植性更好的与 C 语言模块交互的方式,考虑下使用 [ctypes][2] 模块。
### 源代码
和往常一样,你可以在 [GitHub][3] 上找到相关的源代码。仓库中的 C++ 文件有以下用途:
-- `my_py_module.cpp`: Python 模块 _MyModule_ 的定义
+- `my_py_module.cpp`: Python 模块 `MyModule` 的定义
- `my_cpp_class.h`: 一个头文件 - 只有一个暴露给 Python 的 C++ 类
- `my_class_py_type.h/cpp`: Python 形式的 C++ 类
- `pydbg.cpp`: 用于调试的单独应用程序
@@ -29,7 +31,7 @@
### 构建模块
-在查看源代码之前,你可以检查它是否能在你的系统上编译。[我使用 CMake][4]来创建构建的配置信息,因此你的系统上必须安装 CMake。为了配置和构建这个模块,可以让 Python 去执行这个过程:
+在查看源代码之前,你可以检查它是否能在你的系统上编译。[我使用 CMake][4] 来创建构建的配置信息,因此你的系统上必须安装 CMake。为了配置和构建这个模块,可以让 Python 去执行这个过程:
```
$ python3 setup.py build
@@ -48,7 +50,7 @@ $ cmake --build build
首先,看一下 `my_py_module.cpp` 文件,尤其是 `PyInit_MyModule` 函数:
-``` cpp
+```
PyMODINIT_FUNC
PyInit_MyModule(void) {
PyObject* module = PyModule_Create(&my_module);
@@ -72,15 +74,15 @@ PyInit_MyModule(void) {
无论是声明还是实例,所有 Python 类型都是 [PyObject][5] 的一个指针。在此函数的第一部分中,`module` 通过 `PyModule_Create(...)` 创建的。正如你在 `module` 详述(`my_py_module`,同名文件)中看到的,它没有任何特殊的功能。
-之后,调用 [PyType_FromSpec][6] 为自定义类型 MyClass 创建一个 Python [堆类型][7]定义。一个堆类型对应于一个 Python 类,然后将它赋值给 MyModule 模块。
+之后,调用 [PyType_FromSpec][6] 为自定义类型 `MyClass` 创建一个 Python [堆类型][7] 定义。一个堆类型对应于一个 Python 类,然后将它赋值给 `MyModule` 模块。
_注意,如果其中一个函数返回失败,则必须减少以前创建的复制对象的引用计数,以便解释器删除它们。_
### 指定 Python 类型
-MyClass 详设在 [my_class_py_type.h][8] 中可以找到,它作为 [PyType_Spec][9] 的一个实例:
+`MyClass` 详述在 [my_class_py_type.h][8] 中可以找到,它作为 [PyType_Spec][9] 的一个实例:
-```cpp
+```
static PyType_Spec spec_myclass = {
"MyClass", // name
sizeof(MyClassObject) + sizeof(MyClass), // basicsize
@@ -92,7 +94,7 @@ static PyType_Spec spec_myclass = {
它定义了一些基本类型信息,它的大小包括 Python 表示的大小(`MyClassObject`)和普通 C++ 类的大小(`MyClass`)。`MyClassObject` 定义如下:
-```cpp
+```
typedef struct {
PyObject_HEAD
int m_value;
@@ -104,7 +106,7 @@ Python 表示的话就是 [PyObject][5] 类型,由 `PyObject_HEAD` 宏和其
[PyType_Slot][10] 定义了一些其他功能:
-```cpp
+```
static PyType_Slot MyClass_slots[] = {
{Py_tp_new, (void*)MyClass_new},
{Py_tp_init, (void*)MyClass_init},
@@ -119,7 +121,7 @@ static PyType_Slot MyClass_slots[] = {
要完成类型详述,还包括下面的方法和成员表:
-```cpp
+```
static PyMethodDef MyClass_methods[] = {
{"addOne", (PyCFunction)MyClass_addOne, METH_NOARGS, PyDoc_STR("Return an incrmented integer")},
{NULL, NULL} /* Sentinel */
@@ -139,7 +141,7 @@ static struct PyMemberDef MyClass_members[] = {
`MyClass_new` 方法只为 `MyClassObject` 提供一些初始值,并为其类型分配内存:
-```cpp
+```
PyObject *MyClass_new(PyTypeObject *type, PyObject *args, PyObject *kwds){
std::cout << "MtClass_new() called!" << std::endl;
@@ -156,7 +158,7 @@ PyObject *MyClass_new(PyTypeObject *type, PyObject *args, PyObject *kwds){
实际的初始化发生在 `MyClass_init` 中,它对应于 Python 中的 [\_\_init__()][14] 方法:
-```cpp
+```
int MyClass_init(PyObject *self, PyObject *args, PyObject *kwds){
((MyClassObject *)self)->m_value = 123;
@@ -197,7 +199,7 @@ int MyClass_init(PyObject *self, PyObject *args, PyObject *kwds){
从 Python 类中调用相关的 C++ 类方法很简单:
-```cpp
+```
PyObject* MyClass_addOne(PyObject *self, PyObject *args){
assert(self);
@@ -207,15 +209,15 @@ PyObject* MyClass_addOne(PyObject *self, PyObject *args){
}
```
-同样,`PyObject` 参数(`self`)被强转为 `MyClassObject` 类型以便访问 `m_myclass`,它指向 C++ 对应类实例的指针。有了这些信息,调用 `addOne()` 类方法,并且结果以[ Python 整数对象][17]返回。
+同样,`PyObject` 参数(`self`)被强转为 `MyClassObject` 类型以便访问 `m_myclass`,它指向 C++ 对应类实例的指针。有了这些信息,调用 `addOne()` 类方法,并且结果以 [Python 整数对象][17] 返回。
### 3 种方法调试
-出于调试目的,在调试配置中编译 CPython 解释器是很有价值的。详细描述参阅[官方文档][18]。只要下载了预安装的解释器的其他调试符号,就可以按照下面的步骤进行操作。
+出于调试目的,在调试配置中编译 CPython 解释器是很有价值的。详细描述参阅 [官方文档][18]。只要下载了预安装的解释器的其他调试符号,就可以按照下面的步骤进行操作。
#### GNU 调试器
-当然,老式的 [GNU 调试器(GDB)][19]也可以派上用场。源码中包含了一个 [gdbinit][20] 文件,定义了一些选项和断点,另外还有一个 [gdb.sh][21] 脚本,它会创建一个调试构建并启动一个 GDB 会话:
+当然,老式的 [GNU 调试器(GDB)][19] 也可以派上用场。源码中包含了一个 [gdbinit][20] 文件,定义了一些选项和断点,另外还有一个 [gdb.sh][21] 脚本,它会创建一个调试构建并启动一个 GDB 会话:
![Gnu 调试器(GDB)对于 Python C 和 C++ 扩展非常有用][22]
@@ -225,7 +227,7 @@ GDB 使用脚本文件 [main.py][23] 调用 CPython 解释器,它允许你轻
另一种方法是将 CPython 解释器嵌入到一个单独的 C++ 应用程序中。可以在仓库的 [pydbg.cpp][24] 文件中找到:
-```cpp
+```
int main(int argc, char *argv[], char *envp[])
{
Py_SetProgramName(L"DbgPythonCppExtension");
@@ -256,7 +258,7 @@ int main(int argc, char *argv[], char *envp[])
}
```
-使用[高级接口][25],可以导入扩展模块并对其执行操作。它允许你在本地 IDE 环境中进行调试,还能让你更好地控制传递或来自扩展模块的变量。
+使用 [高级接口][25],可以导入扩展模块并对其执行操作。它允许你在本地 IDE 环境中进行调试,还能让你更好地控制传递或来自扩展模块的变量。
缺点是创建一个额外的应用程序的成本很高。
@@ -270,7 +272,7 @@ int main(int argc, char *argv[], char *envp[])
Python 的所有功能也可以从 C 或 C++ 扩展中获得。虽然用 Python 写代码通常认为是一件容易的事情,但用 C 或 C++ 扩展 Python 代码是一件痛苦的事情。另一方面,虽然原生 Python 代码比 C++ 慢,但 C 或 C++ 扩展可以将计算密集型任务提升到原生机器码的速度。
-你还必须考虑 ABI 的使用。稳定的 ABI 提供了一种方法来保持旧版本 CPython 的向后兼容性,如[文档][31]所述。
+你还必须考虑 ABI 的使用。稳定的 ABI 提供了一种方法来保持旧版本 CPython 的向后兼容性,如 [文档][31] 所述。
最后,你必须自己权衡利弊。如果你决定使用 C 语言来扩展 Python 中的一些功能,你已经看到了如何实现它。
@@ -281,7 +283,7 @@ via: https://opensource.com/article/22/11/extend-c-python
作者:[Stephan Avenwedde][a]
选题:[lkxed][b]
译者:[MjSeven](https://github.com/MjSeven)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -318,3 +320,4 @@ via: https://opensource.com/article/22/11/extend-c-python
[29]: https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/launch.json
[30]: https://opensource.com/sites/default/files/2022-11/vscodium_debug_session.png
[31]: https://docs.python.org/3/c-api/stable.html
+[0]: https://img.linux.net.cn/data/attachment/album/202301/02/173501o26htajatlpj0lqt.jpg
\ No newline at end of file
From d28829db92ec720f6ecbfbbd8cdd310f5a78a39f Mon Sep 17 00:00:00 2001
From: geekpi
Date: Tue, 3 Jan 2023 08:51:21 +0800
Subject: [PATCH 180/266] translated
---
...️ How to Update Flatpak Packages in Linux.md | 127 ------------------
...️ How to Update Flatpak Packages in Linux.md | 127 ++++++++++++++++++
2 files changed, 127 insertions(+), 127 deletions(-)
delete mode 100644 sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
create mode 100644 translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
diff --git a/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
deleted file mode 100644
index beb10e6833..0000000000
--- a/sources/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
+++ /dev/null
@@ -1,127 +0,0 @@
-[#]: subject: "How to Update Flatpak Packages in Linux"
-[#]: via: "https://itsfoss.com/update-flatpak/"
-[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How to Update Flatpak Packages in Linux
-======
-
-I believe almost all Linux users keep their systems updated.
-
-But that update is usually for the default [package manager][1]. For example, [updating Ubuntu][2] often means updating all the APT packages.
-
-However, there are other packaging formats like Snap and Flatpak. The Snap applications get updated automatically but not the Flatpak ones.
-
-How do you update the Flatpak packages then? Well, you can update all the installed and updatable Flatpak packages using this command:
-
-```
-flatpak update
-```
-
-That’s quite simple. But let me discuss a few more things about updating Flatpak, such as:
-
-- Updating all or specific Flatpak packages
-- Updating Flatpak packages via Software Center
-
-Let’s start with the terminal method first.
-
-### Method 1: Using the terminal for updating Flatpak packages
-
-Let me first start with the most practical approach that you should also begin with.
-
-#### Update every outdated Flatpak package
-
-Updating the whole catalog of existing flatpak packages is quite easy.
-
-Enter the given command, and it will get you the list of outdated packages:
-
-```
-flatpak update
-```
-
-![3. update flatpak packages in linux][3]
-
-You just have to enter “Y” and press the Enter key, which will take care of every update.
-
-#### Updating specific Flatpak package
-
-To update specific packages, you’d need the list of the packages that can be updated. You used the same command you saw earlier.
-
-```
-flatpak update
-```
-
-![3. update flatpak packages in linux][4]
-
-Copy the name of the package you want to update from the output. Use the package name in the following fashion:
-
-```
-flatpak update package_name
-```
-
-For example, if you want to update Telegram, the following command will get the job done:
-
-```
-flatpak update org.telegram.desktop
-```
-
-![4. update specific package in flatpak][5]
-
-That’s it!
-
-### Method 2: Update Flatpak applications from the software center
-
-Distributions that come up with Flatpak buil-in support provide updates to Flatpak applications in the software center. Fedora and Linux Mint are such distributions.
-
-But if you are using Ubuntu, you’d need to add flatpak support to the GNOME software center:
-
-```
-sudo apt install gnome-software-plugin-flatpak
-```
-
-Once done, you will have two software centers in Ubuntu. That’s because the default software center is not GNOME’s but Snap Store.
-
-Open this new software center from the system menu:
-
-![1. open software center in ubuntu][6]
-
-Go to the `Updates` section and you will find the list of outdated packages. This includes both APT and Flatpak packages.
-
-![2. update flatpak from software center][7]
-
-From here, you can update all the packages at once, or you can be selective with what to update.
-
-### Wrapping Up
-
-Many Linux desktop users tend to forget to update the Flatpak packages as they are not included in the regular system updates.
-
-As Flatpak is a sandboxed packaging solution, you may not face any issues related to outdated packages, but you will miss out on new features and fixes for sure.
-
-This is why I recommend running the Flatpak update command once ever few weeks.
-
-I hope you like this quick little Flatpak tip helpful.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/update-flatpak/
-
-作者:[Sagar Sharma][a]
-选题:[lkxed][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/sagar/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/package-manager/
-[2]: https://itsfoss.com/update-ubuntu/
-[3]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png
-[4]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png
-[5]: https://itsfoss.com/wp-content/uploads/2022/12/4.-update-specific-package-in-flatpak.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/12/1.-open-software-center-in-ubuntu.png
-[7]: https://itsfoss.com/wp-content/uploads/2022/12/2.-update-flatpak-from-software-center.png
diff --git a/translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
new file mode 100644
index 0000000000..ac4468acc0
--- /dev/null
+++ b/translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
@@ -0,0 +1,127 @@
+[#]: subject: "How to Update Flatpak Packages in Linux"
+[#]: via: "https://itsfoss.com/update-flatpak/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+如何在 Linux 中更新 Flatpak 软件包
+======
+
+我相信几乎所有的 Linux 用户都会保持他们系统的更新。
+
+但这种更新通常是针对默认的[包管理器][1]。例如,[更新 Ubuntu][2] 往往意味着更新所有的 APT 软件包。
+
+然而,还有其他的打包格式,如 Snap 和 Flatpak。Snap 应用程序会自动更新,但 Flatpak 的不会。
+
+那么你如何更新 Flatpak 软件包呢?好吧,你可以用这个命令来更新所有已安装和可更新的 Flatpak 包:
+
+```
+flatpak update
+```
+
+这很简单。但让我再讨论一下关于更新 Flatpak 的一些事情,比如说:
+
+- 更新所有或特定的 Flatpak 包
+- 通过软件中心更新 Flatpak 包
+
+让我们先从终端的方法开始。
+
+### 方法 1:使用终端来更新 Flatpak 包
+
+首先让我从最实用的方法开始,你也应该从这个方法开始。
+
+#### 更新每一个过时的 Flatpak 包
+
+更新现有的 Flatpak 包的整个目录是很容易的。
+
+输入给定的命令,就可以得到过期包的列表:
+
+```
+flatpak update
+```
+
+![3. update flatpak packages in linux][3]
+
+你只需输入 “Y” 并按下回车键,就能搞定每一个更新。
+
+#### 更新特定的 Flatpak 包
+
+要更新特定的软件包,你需要可以更新的软件包的列表。你用的是你之前看到的那个命令。
+
+```
+flatpak update
+```
+
+![3. update flatpak packages in linux][4]
+
+从输出中复制你要更新的软件包的名称。在以下命令中使用软件包的名称:
+
+```
+flatpak update package_name
+```
+
+例如,如果你想更新Telegram,下面的命令可以完成这项工作:
+
+```
+flatpak update org.telegram.desktop
+```
+
+![4. update specific package in flatpak][5]
+
+这就完成了
+
+### 方法 2:从软件中心更新 Flatpak 应用
+
+有 Flatpak 内置支持的发行版会在软件中心提供 Flatpak 应用的更新。Fedora 和 Linux Mint 就是这样的发行版。
+
+但如果你使用的是 Ubuntu,你就需要在 GNOME 软件中心添加 Flatpak 支持:
+
+```
+sudo apt install gnome-software-plugin-flatpak
+```
+
+完成后,你将在 Ubuntu 中拥有两个软件中心。这是因为默认的软件中心不是 GNOME 的,而是 Snap Store。
+
+从系统菜单中打开这个新的软件中心:
+
+![1. open software center in ubuntu][6]
+
+进入`更新`页面,你会发现过时的软件包列表。这包括 APT 和 Flatpak 软件包。
+
+![2. update flatpak from software center][7]
+
+在这里,你可以一次更新所有的软件包,或者你可以有选择地更新什么。
+
+### 总结
+
+许多 Linux 桌面用户往往忘记更新 Flatpak 软件包,因为它们不包括在定期的系统更新中。
+
+由于 Flatpak 是一个沙盒式的打包解决方案,你可能不会面临任何与过时的软件包有关的问题,但你肯定会错过新的功能和修复。
+
+这就是为什么我建议每隔几周运行一次 Flatpak 更新命令。
+
+我希望你喜欢这个快速的 Flatpak 小技巧。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/update-flatpak/
+
+作者:[Sagar Sharma][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/sagar/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/package-manager/
+[2]: https://itsfoss.com/update-ubuntu/
+[3]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png
+[4]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png
+[5]: https://itsfoss.com/wp-content/uploads/2022/12/4.-update-specific-package-in-flatpak.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/12/1.-open-software-center-in-ubuntu.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/12/2.-update-flatpak-from-software-center.png
From 39a7a28e9fd0a4896f20e7d05ab27874c8ede109 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Tue, 3 Jan 2023 08:55:38 +0800
Subject: [PATCH 181/266] translating
---
... Google, Alexa, and Siri in Works for Home Assistant Platform.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
index 80b6010732..4e14013469 100644
--- a/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
+++ b/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
@@ -2,7 +2,7 @@
[#]: via: "https://news.itsfoss.com/open-source-assistant/"
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From d5d10d0d83f551627b792367edff85780d31f000 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Tue, 3 Jan 2023 15:42:29 +0800
Subject: [PATCH 182/266] RP
@geekpi
https://linux.cn/article-15408-1.html
---
...️ How to Update Flatpak Packages in Linux.md | 43 ++++++++++---------
1 file changed, 23 insertions(+), 20 deletions(-)
rename {translated/tech => published}/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md (68%)
diff --git a/translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
similarity index 68%
rename from translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
rename to published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
index ac4468acc0..4c68d5c5f1 100644
--- a/translated/tech/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
+++ b/published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
@@ -3,18 +3,20 @@
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15408-1.html"
如何在 Linux 中更新 Flatpak 软件包
======
+![][0]
+
我相信几乎所有的 Linux 用户都会保持他们系统的更新。
-但这种更新通常是针对默认的[包管理器][1]。例如,[更新 Ubuntu][2] 往往意味着更新所有的 APT 软件包。
+但这种更新通常是针对默认的 [包管理器][1]。例如,[更新 Ubuntu][2] 往往意味着更新所有的 APT 软件包。
-然而,还有其他的打包格式,如 Snap 和 Flatpak。Snap 应用程序会自动更新,但 Flatpak 的不会。
+然而,还有其他的打包格式,如 Snap 和 Flatpak。Snap 应用程序会自动更新,但 Flatpak 不会。
那么你如何更新 Flatpak 软件包呢?好吧,你可以用这个命令来更新所有已安装和可更新的 Flatpak 包:
@@ -43,9 +45,9 @@ flatpak update
flatpak update
```
-![3. update flatpak packages in linux][3]
+![update flatpak packages in linux][3]
-你只需输入 “Y” 并按下回车键,就能搞定每一个更新。
+你只需输入 `Y` 并按下回车键,就能搞定每一个更新。
#### 更新特定的 Flatpak 包
@@ -55,7 +57,7 @@ flatpak update
flatpak update
```
-![3. update flatpak packages in linux][4]
+![update flatpak packages in linux][4]
从输出中复制你要更新的软件包的名称。在以下命令中使用软件包的名称:
@@ -63,15 +65,15 @@ flatpak update
flatpak update package_name
```
-例如,如果你想更新Telegram,下面的命令可以完成这项工作:
+例如,如果你想更新 Telegram,下面的命令可以完成这项工作:
```
flatpak update org.telegram.desktop
```
-![4. update specific package in flatpak][5]
+![update specific package in flatpak][5]
-这就完成了
+这就完成了。
### 方法 2:从软件中心更新 Flatpak 应用
@@ -87,11 +89,11 @@ sudo apt install gnome-software-plugin-flatpak
从系统菜单中打开这个新的软件中心:
-![1. open software center in ubuntu][6]
+![open software center in ubuntu][6]
-进入`更新`页面,你会发现过时的软件包列表。这包括 APT 和 Flatpak 软件包。
+进入“更新Update”页面,你会发现过时的软件包列表。这包括 APT 和 Flatpak 软件包。
-![2. update flatpak from software center][7]
+![update flatpak from software center][7]
在这里,你可以一次更新所有的软件包,或者你可以有选择地更新什么。
@@ -112,7 +114,7 @@ via: https://itsfoss.com/update-flatpak/
作者:[Sagar Sharma][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -120,8 +122,9 @@ via: https://itsfoss.com/update-flatpak/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/package-manager/
[2]: https://itsfoss.com/update-ubuntu/
-[3]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png
-[4]: https://itsfoss.com/wp-content/uploads/2022/12/3.-update-flatpak-packages-in-linux.png
-[5]: https://itsfoss.com/wp-content/uploads/2022/12/4.-update-specific-package-in-flatpak.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/12/1.-open-software-center-in-ubuntu.png
-[7]: https://itsfoss.com/wp-content/uploads/2022/12/2.-update-flatpak-from-software-center.png
+[3]: https://itsfoss.com/content/images/wordpress/2022/12/3.-update-flatpak-packages-in-linux.png
+[4]: https://itsfoss.com/content/images/wordpress/2022/12/3.-update-flatpak-packages-in-linux.png
+[5]: https://itsfoss.com/content/images/wordpress/2022/12/4.-update-specific-package-in-flatpak.png
+[6]: https://itsfoss.com/content/images/wordpress/2022/12/1.-open-software-center-in-ubuntu.png
+[7]: https://itsfoss.com/content/images/wordpress/2022/12/2.-update-flatpak-from-software-center.png
+[0]: https://img.linux.net.cn/data/attachment/album/202301/03/154131lop17rnnrkiprkl7.jpg
\ No newline at end of file
From 6e54db94d1b656d3d4c047d6dbe6628de5fd6162 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 3 Jan 2023 21:47:14 +0800
Subject: [PATCH 183/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230102.0=20=E2=AD=90=EF=B8=8F=20How=20to=20read=20an?=
=?UTF-8?q?d=20write=20files=20in=20Rust.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... ⭐️ How to read and write files in Rust.md | 110 ++++++++++++++++++
1 file changed, 110 insertions(+)
create mode 100644 sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md
diff --git a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md b/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md
new file mode 100644
index 0000000000..0ec7cecb0a
--- /dev/null
+++ b/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md
@@ -0,0 +1,110 @@
+[#]: subject: "How to read and write files in Rust"
+[#]: via: "https://opensource.com/article/23/1/read-write-files-rust"
+[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to read and write files in Rust
+======
+
+Knowing how to read and write files can be useful for various purposes. In Rust, this task is done using the file system module ([std::fs][1]) in the standard library. In this article, I'll give you an overview on how to use this module.
+
+To demonstrate this task, I prepared example code which is also available on [GitHub][2].
+
+### Preparation
+
+When using Rust, a function that fails returns the [Result][3] type. The file system module in particular returns the specialized type [std::io::Result][4]. With this knowledge, you can return the same type from the `main()` function:
+
+```
+fn main() -> std::io::Result<()> {
+/* ...code comes here... */
+```
+
+### Writing Rust files
+
+Performing file I/O-operations in Rust is relatively easy. Writing to a file can be simplified to one line:
+
+```
+use std::fs;
+fs::write("favorite_websites.txt", b"opensource.com")?;
+Ok(())
+```
+
+Using the error propagation operator `(?)`, the error information gets passed on to the calling function where the error can subsequently be handled. As `main()` is the only other function in the call stack, the error information gets passed on to the console output in case the write operation failed.
+
+The syntax of the [fs::write][5] function is quite forward. The first argument is the file path, which must be the type [std::path::Path][6]. The second argument is the content, which is actually a slice of bytes (`[u8]`). Rust converts the arguments passed into the correct type. Luckily, these types are basically the only types dealt with in the following examples.
+
+A more concise access of the write operation can be achieved using the file descriptor type [std::fs::File][7]:
+
+```
+let mut file = fs::File::create("favorite_websites.txt")?;
+file.write_all(b"opensource.com\n")?;
+Ok(())
+```
+
+As the file type implements the [Write][8] trait, it is possible to use the associated methods to write to the file. However, the `create` method can overwrite an already existing file.
+
+To get even more control of the file descriptor, the type [std::fs::OpenOptions][9] must be used. This provides opening modes similar to the ones in other languages:
+
+```
+let mut file = fs::OpenOptions::new()
+ .append(true)
+ .open("favorite_websites.txt")?;
+
+file.write_all(b"sourceforge.net\n")?;
+```
+
+### Reading Rust files
+
+What applies to writing also applies to reading. Reading can also be done with a simple one-line of code:
+
+```
+let websites = fs::read_to_string("favorite_websites.txt")?;
+```
+
+The above line reads the content of the file and returns a string. In addition to reading a string, there is also the [std::fs::read][10] function which reads the data into a vector of bytes if the file contains binary data.
+
+The next example shows how to read the content of the file into memory and subsequently print it line by line to a console:
+
+```
+let file = fs::File::open("favorite_websites.txt")?;
+let lines = io::BufReader::new(file).lines();
+
+for line in lines {
+ if let Ok(_line) = line {
+ println!(">>> {}", _line);
+ }
+}
+```
+
+### Summary
+
+If you are already familiar with other programming languages, you may have noticed that there is `no close-`function (or something similar) that releases the file handle. In Rust, the file handle is released as soon as the related variable goes out of scope. To define the closing behavior, a scope `({ })` around the file representation can be applied. I recommend that you get familiar with [Read][11] and [Write][8] trait as you can find this trait implemented in many other types.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/read-write-files-rust
+
+作者:[Stephan Avenwedde][a]
+选题:[lkxed][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/hansic99
+[b]: https://github.com/lkxed
+[1]: https://doc.rust-lang.org/std/fs/
+[2]: https://github.com/hANSIc99/rust_file_io
+[3]: https://doc.rust-lang.org/std/result/enum.Result.html
+[4]: https://doc.rust-lang.org/std/io/type.Result.html
+[5]: https://doc.rust-lang.org/std/fs/fn.write.html
+[6]: https://doc.rust-lang.org/std/path/struct.Path.html
+[7]: https://doc.rust-lang.org/std/fs/struct.File.html
+[8]: https://doc.rust-lang.org/std/io/trait.Write.html
+[9]: https://doc.rust-lang.org/std/fs/struct.OpenOptions.html#
+[10]: https://doc.rust-lang.org/std/fs/fn.read.html
+[11]: https://doc.rust-lang.org/std/io/trait.Read.html
From f4117ef71a86a1be99e99144b6be49eff7f5b2ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 3 Jan 2023 21:47:48 +0800
Subject: [PATCH 184/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020230103.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Ul?=
=?UTF-8?q?tramarine=20Linux=2037=20Release=20Adds=20Pop=20OS-Style=20KDE?=
=?UTF-8?q?=20Plasma,=20Drops=20Cutefish.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...se Adds Pop OS-Style KDE Plasma, Drops Cutefish.md | 87 +++++++++++++++++++
1 file changed, 87 insertions(+)
create mode 100644 sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md
diff --git a/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md b/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md
new file mode 100644
index 0000000000..c5983ce0ad
--- /dev/null
+++ b/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md
@@ -0,0 +1,87 @@
+[#]: subject: "Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish"
+[#]: via: "https://debugpointnews.com/ultramarine-linux-37-release/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish
+======
+
+![][1]
+
+**A new release of Ultramarine Linux is here: Ultramarine Linux 37 with new custom repo, KDE Plasma flavour and goodies.**
+
+If you are unaware, Ultramarine Linux is a Fedora-based distribution which offers Budgie, Pantheon, GNOME and other desktops. This distro gives you the best Fedora experience with this awesome desktop environment.
+
+Recently, this small project is [acquired by FyraLabs][2], the company behind PhotonBrowser and tauOS. And this enables the Ultramarine project with the necessary manpower and funding for infrastructure to continue building the distro.
+
+Since the Fedora 37 release, the team has been working on rebasing the current release, which includes adopting the new infrastructure and CI/CD pipeline migration. And a final Ultramarine Linux 37 is here.
+
+So, what’s new?
+
+### Ultramarine Linux 37 Release: New Features
+
+Since the Fyralabs acquisition, the team upgraded and migrated to GitHub Actions for automated CI/CD builds. Ultramarine’s own repo, which was used to distribute curated packages (for example, Pantheon desktop), is changing in this release and moving to FyraLabs infrastructure.
+
+Hence if you are running the Ultramarine 36 version, it may not work correctly. It’s best if you do a fresh installation of this version, as obviously, there is no upgrade path from the 36 to 37 version.
+
+Furthermore, Ultramarine 37 is introducing a rolling repo called “[Terra][3]” for Fedora packages, including hundreds of applications that Fedora doesn’t ship. You may think of it as similar to [RPM Fusion][4], albeit different.
+
+To learn more, visit [this page][3] or add the following repo from the command line.
+
+```
+sudo dnf config-manager --add-repo https://terra.fyralabs.com/terra.repo
+```
+
+In fact, this opens up a possibility as you may also try to use it in Fedora Linux with caution. It will be cool if the above repo works out of the box in a vanilla Fedora install.
+
+On top of the above changes, Ultramarine Linux 37 introduces KDE Plasma as an official spin for the first time. The KDE Plasma flavour brings a Pop OS style look with Latte Dock and Lightly Qt theme.
+
+![Ultramarine Linux 37 with unique Pop OS style KDE Plasma Theme][5]
+
+Ultramarine Linux 37 also drops the Cutefish desktop, which is currently in a [confused state of development with no visible roadmap][6]. It’s a good decision from the team since there is no point in packaging a halted project.
+
+The Budgie desktop flagship version uses upstream Fedora packages with more default applications. Recently, Fedora Linux removed elementary OS’s Pantheon desktop support, unfortunately. Thanks to Ultramarine Linux devs, you can still experience it as it has been moved to the new Terra repo.
+
+You should be glad that Ultramarine Linux is the only Fedora-based distribution supporting the great Pantheon desktop.
+
+Finally, at its core, Ultramarine Linux 37 is based on [Fedora 37][7] and features Linux mainline Kernel 6.0. So, all the updated packages & toolchains are current in this release.
+
+So, that’s about the summary of this release. Stay tuned for the official review of this version in a few days. If interested, you might want to read the prior version (36) review here:
+
+> [Ultramarine Linux: Ultimate Fedora Spin with Budgie, Cutefish and Pantheon][8]
+
+### Download and Upgrade
+
+Since there is no upgrade path, it is recommended that you should do a fresh installation of this version. You can download the ISO files for the respective desktop flavours below.
+
+[Download Ultramarine Linux 37][9]
+
+Via [release announcement][10]
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/ultramarine-linux-37-release/
+
+作者:[arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2023/01/ultra37head.jpg
+[2]: https://twitter.com/UltramarineProj/status/1579991853478182914
+[3]: https://terra.fyralabs.com/
+[4]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/
+[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Ultramarine-Linux-37-with-unique-Pop-OS-style-KDE-Plasma-Theme.jpg
+[6]: https://www.debugpoint.com/cutefish-development-restarts/
+[7]: https://debugpointnews.com/fedora-37-release-accouncement/
+[8]: https://www.debugpoint.com/ultramarine-linux-36/
+[9]: https://repos.fyralabs.com/isos/ultramarine/37/
+[10]: https://github.com/Ultramarine-Linux/build-scripts/releases/tag/37-1.0
From 317271ca3b669ca32abbce0824b29b1bfcaa4b81 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 3 Jan 2023 21:48:46 +0800
Subject: [PATCH 185/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230103.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Do?=
=?UTF-8?q?cument=20with=20BookStack,=20an=20open=20source=20Confluence=20?=
=?UTF-8?q?alternative.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ookStack, an open source Confluence alternative.md | 98 +++++++++++++++++++
1 file changed, 98 insertions(+)
create mode 100644 sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md
diff --git a/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md b/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md
new file mode 100644
index 0000000000..0b63928629
--- /dev/null
+++ b/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md
@@ -0,0 +1,98 @@
+[#]: subject: "Document with BookStack, an open source Confluence alternative"
+[#]: via: "https://opensource.com/article/23/1/bookstack-open-source-documentation"
+[#]: author: "Dan Brown https://opensource.com/users/ssddanbrown"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Document with BookStack, an open source Confluence alternative
+======
+
+BookStack is an open source, web-based documentation system, that allows you to create a structured knowledge store for personal, team, or company use. BookStack focuses on ease-of-use and design to provide an experience suitable for an audience with, potentially, mixed skills in technology. It's built upon the PHP framework Laravel, with MySQL or MariaDB used as a datastore.
+
+I built BookStack after attempting to find a documentation or wiki system for my workplace. [Confluence][1] was the closest option to suit my requirements but the user-based pricing introduced a barrier. The closed nature of Confluence also raised questions to the longevity of the documentation I'd be building. In the end, I decided to build my own platform to suit my needs. I released it under the MIT license to give back to the open source community that I'd come to love and benefit from over the years.
+
+### Content hierarchy and organization options
+
+To keep things familiar and intuitive, BookStack makes use of real-world book terms to describe its organization structure. Documentation content is created as a "Page":
+
+- Pages belong to a specific "Book".
+- Within a Book, Pages can optionally be grouped up into "Chapters".
+- As your documentation grows, you can then use "Shelves" to categorize Books, with Books being able to be part of multiple shelves if needed.
+
+This structure sits at the heart of BookStack, and can often be the love-it-or-hate-it deciding aspect of whether BookStack is suitable for your use case.
+
+Upon this core hierarchy, BookStack also provides tagging, user favorites, and advanced search capabilities to ensure content remains discoverable.
+
+### Writing documentation
+
+The primary method of writing documentation in BookStack is through the use of its what-you-see-is-what-you-get (WYSIWYG) editor, which makes use of the open source [Tiny][2] project. This editor provides a range of content formats including:
+
+- Various header levels
+- Code blocks
+- Collapsible blocks
+- Tables
+- Images
+- Links
+- iFrame embeds
+- Alert callouts
+- Bullet, numbered and tasks lists
+- Drawings (through intregration with the open source [diagrams.net][3])
+
+If you prefer [Markdown][4], you can use the built-in Markdown editor, which provides a live preview and supports the same feature set as the WYSIWYG editor. If permission allows, you can even jump between these editor options depending on the page you're editing.
+
+### How your data is stored
+
+Documentation is stored within a [MySQL or MariaDB][5] database in a relatively simple HTML format, in addition to the original Markdown content if Markdown was used. A lot of design and development decisions have been made to keep this HTML format simplistic. It uses plain standard HTML elements where possible, to ensure raw documentation content remains open and portable.
+
+Uploaded images, attachments, and created drawings are saved on the local filesystem but can optionally be stored in an s3-compatible datastore like the open source [MinIO][6].
+
+To keep your content accessible, there are built-in options to export content as PDF, HTML, plain text, or Markdown. For external consumption, there's a HTTP REST API and a webhook system. In terms of extension, a "logical theme system" allows running of custom PHP code upon a wide range of system events.
+
+### Ready for business
+
+BookStack comes with a range of features to support business environments. Support for a range of authentication options are built-in, including SAML2, OpenID Connect, and LDAP allowing easy single-sign-on usage with platforms such as [KeyCloak][7]. MFA options are available and can be mandated based upon role. An audit log provides full visibility of modification activities across an instance.
+
+A full role-based permission system provides administrators full control over create, view, update, and delete actions of system content. This allows per-role system defaults, with options to set custom permissions on a per-hierarchy item basis.
+
+### A community of support
+
+After being active for over 7 years, the community for BookStack has grown with various avenues for discussion and support. We now have:
+
+- [Our documentation site][8]
+- [Video guides on YouTube][9]
+- [A subreddit][10]
+- [An active GitHub issues list][11]
+- [Paid-for business support][12]
+
+If you want to play with BookStack, you can try it out [on our demo site][13]. To learn how to set up your own instance, visit the [installation page of our documentation][14].
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/bookstack-open-source-documentation
+
+作者:[Dan Brown][a]
+选题:[lkxed][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/ssddanbrown
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/20/9/open-source-alternatives-confluence
+[2]: https://github.com/tinymce/
+[3]: https://www.diagrams.net/
+[4]: https://opensource.com/article/19/9/introduction-markdown
+[5]: https://opensource.com/downloads/mariadb-mysql-cheat-sheet
+[6]: https://github.com/minio/
+[7]: https://www.keycloak.org/
+[8]: https://www.bookstackapp.com/docs/
+[9]: https://www.youtube.com/c/BookStackApp
+[10]: https://www.reddit.com/r/bookstack
+[11]: https://github.com/BookStackApp/BookStack/issues
+[12]: https://www.bookstackapp.com/support
+[13]: https://demo.bookstackapp.com/books/bookstack-demo-site/page/logging-in-to-the-demo-site
+[14]: https://www.bookstackapp.com/docs/admin/installation/
From a5180f78e3285c79e7d74967b8307e34e3b02083 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 3 Jan 2023 21:51:15 +0800
Subject: [PATCH 186/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230103.3=20=E2=AD=90=EF=B8=8F=20Whereis=20Command=20?=
=?UTF-8?q?in=20Linux=20and=20BSD=20with=20Examples.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...reis Command in Linux and BSD with Examples.md | 152 ++++++++++++++++++
1 file changed, 152 insertions(+)
create mode 100644 sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
diff --git a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
new file mode 100644
index 0000000000..8c1d6978d0
--- /dev/null
+++ b/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
@@ -0,0 +1,152 @@
+[#]: subject: "Whereis Command in Linux and BSD with Examples"
+[#]: via: "https://www.debugpoint.com/whereis-command-linux/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Whereis Command in Linux and BSD with Examples
+======
+
+**Here’s a beginner’s guide on understanding whereis command in Linux & BSD with several examples.**
+
+![][1]
+
+_This article is part of the [Linux command][2] learning series._
+
+### whereis command
+
+The `whereis` command is a command line program that helps you to find out the path or location of any binary executable, source file or manual page.
+
+Before we show you how to use `whereis` command, let’s look at the syntax.
+
+### Syntax
+
+Here’s the syntax for whereis command:
+
+```
+whereis [OPTIONS] FILE_NAME
+```
+
+The argument of whereis command is the program name or file name you want to search. The argument is mandatory.
+
+By default, it searches for the program in the path defined in environment variables such as HOME, USER, SHELL, etc.
+
+Let’s take a look at some examples.
+
+### Examples of whereis command in Linux and BSD
+
+A simple example of whereis command is below where I am trying to search firefox. In the output below, you can see the list of paths containing firefox files or executables displayed.
+
+```
+$ whereis firefox
+
+firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz
+```
+
+![Simple example of whereis command in Linux][3]
+
+The command with option -l displays the list of paths where it searches. For example:
+
+```
+$ whereis -l
+
+bin: /usr/bin
+bin: /usr/sbin
+bin: /usr/lib
+bin: /usr/lib64
+bin: /etc
+bin: /usr/games
+bin: /usr/local/bin
+bin: /usr/local/sbin
+bin: /usr/local/etc
+bin: /usr/local/lib
+bin: /usr/local/games
+```
+
+If the whereis command doesn’t find anything, it only shows the argument’s name. For example, if I search nano in Linux where is it not installed, it outputs the following:
+
+```
+$ whereis nano
+```
+
+```
+nano:
+```
+
+You can always add multiple arguments if you want to search for more. For example below command searches for both bash and nano, and this is the output:
+
+```
+$ whereis bash nano
+
+bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
+nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
+```
+
+You can also search for specific file types, such as binaries, using -b option. The following command only tells you the binary paths of nano.
+
+```
+$ whereis -b nano
+
+nano: /usr/bin/nano /usr/share/nano
+```
+
+Similarly, the -s option searches for source files, and the -m option searches for manual pages.
+
+```
+$ whereis -m nano
+
+nano: /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
+```
+
+You can also combine the above options for a more extensive search. For example, the following command searches for nano and firefox binary, manual pages and for bash, only manual pages.
+
+```
+$ whereis -bm nano firefox -m bash
+
+nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
+firefox-m:
+bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
+```
+
+Here’s a summary of the options:
+
+| Option | Description |
+| :- | :- |
+| **-b** | Search only for binaries. |
+| **-m** | Search only for manual sections. |
+| **-s** | Search only for sources. |
+| **-u** | Search for unusual entries. A file is said to be unusual if it does not have one entry of each requested type. Thus ‘whereis -m -u *’ asks for those files in the current directory which have no documentation. |
+| **-B** | Change or otherwise limit the places where whereis searches for binaries. |
+| **-M** | Change or otherwise limit the places where whereis searches for manual sections. |
+| **-S** | Change or otherwise limit the places where whereis searches for sources. |
+| **-f** | Terminate the last directory list and signals the start of file names, and must be used when any of the -B, -M, or -S options are used. |
+
+### Closing Notes
+
+I hope this article helps you to understand whereis command and its basics. You can also read the[whereis man pages][4] to learn more. Let me know if you have any questions.
+
+**This article is part of the [Linux command][2] learning series**.
+
+[_Using Mastodon? Follow us at floss.social/@debugpoint_][5]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/whereis-command-linux/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/whereis-head.jpg
+[2]: https://www.debugpoint.com/category/linux-commands
+[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Simple-example-of-whereis-command-in-Linux.jpg
+[4]: https://linux.die.net/man/1/whereis
+[5]: https://floss.social/@debugpoint
From 6e643d6c47f5705d96dd0b4433f967764a31b9cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 3 Jan 2023 21:51:53 +0800
Subject: [PATCH 187/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230102.1=20=E2=AD=90=EF=B8=8F=20who=20Command=20in?=
=?UTF-8?q?=20Linux=20Explanation=20with=20Examples.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... Command in Linux Explanation with Examples.md | 138 ++++++++++++++++++
1 file changed, 138 insertions(+)
create mode 100644 sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
diff --git a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
new file mode 100644
index 0000000000..71a4a4c1a0
--- /dev/null
+++ b/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
@@ -0,0 +1,138 @@
+[#]: subject: "who Command in Linux: Explanation with Examples"
+[#]: via: "https://www.debugpoint.com/who-command-linux/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+who Command in Linux: Explanation with Examples
+======
+
+**Here’s a beginner’s guide on understanding who command in Linux with several examples.**
+
+_This article is part of the [Linux command][1] learning series._
+
+### who command
+
+The “who” command in Linux is used to display information about users who are currently logged in to the system. It shows the user’s login name, the terminal from which the user is logged in, the time at which the user logged in, and the remote hostname (if applicable).
+
+#### Syntax
+
+Here is the basic syntax for the “who” command:
+
+```
+who [OPTION]... [ FILE | ARG1 ARG2 ]
+```
+
+### Example of various who command and switches
+
+By default, “who” reads the file `/var/run/utmp`, which contains information about users who are currently logged in. If no options are specified, it displays each user’s login name, terminal, and time of login.
+
+```
+who
+```
+
+It gives the following output. As you can see it shows the login name=debugpoint, terminal id tty2 and the date and time of the login.
+
+```
+debugpoint tty2 2023-01-01 11:22 (tty2)
+```
+
+![who command - default example][2]
+
+However, if you run the above command in a guest virtual machine, you should see the same but the terminal id would be the x11 server display name i.e. :0.
+
+```
+❯ whodebugpoint :0 2023-01-01 23:36 (:0)
+```
+
+To show the username of the current user and information, use below:
+
+```
+whoami
+```
+
+View the last system boot time using the -b option:
+
+```
+❯ who -bsystem boot 2023-01-01 23:36
+```
+
+Display the count of users logged in the current system:
+
+```
+❯ who -qdebugpointusers=1
+```
+
+All the above command when paired with -H option, you get a better info with a header line, like below:
+
+```
+who -H
+
+NAME LINE TIME COMMENT
+debugpoint tty2 2023-01-01 11:22 (tty2)
+```
+
+If you want to display all the information related to who command in Linux, use the option -a:
+
+```
+who -aH
+
+NAME LINE TIME IDLE PID COMMENT EXIT
+system boot 2023-01-01 11:19
+run-level 5 2023-01-01 11:19
+debugpoint + tty2 2023-01-01 11:22 13:26 2042 (tty2)
+```
+
+As always, you can save the output of the who command to any file using the redirect as below:
+
+```
+who > user_details.txt
+```
+
+#### Example summary of who command options
+
+Here are some who command examples and their explanation:
+
+Here are some options that can be used with the “who” command:
+
+- `-a`: Display the hostname, time of login, and processes for each user
+- `-b`: Display the time of the last system boot
+- `-d`: Display dead processes (processes that have terminated but have not been removed from the utmp file)
+- `-H`: Display a header line
+- `-l`: Display login processes in long format
+- `-m`: Display only the name and line of the user who is logged in on the terminal specified by `ARG1 ARG2`
+- `-q`: Display a count of logged in users
+- `-u`: Display information about users who have processes that are not detached
+- `-w`: Display information about users who are logged in, in the same format as the utmp file
+
+### Closing Notes
+
+I hope this article helps you to understand who command and its basics. You can also read the [who man pages][3] to learn more. Let me know if you have any questions.
+
+**This article is part of the [Linux command][1] learning series**.
+
+[Next:How to Force Auto Dark Mode in Chrome and Chromium][4]
+
+[_Using Mastodon? Follow us at floss.social/@debugpoint_][5]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/who-command-linux/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/category/linux-commands
+[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/who-command-default-example.jpg
+[3]: https://man7.org/linux/man-pages/man1/who.1.html
+[4]: https://www.debugpoint.com/chrome-dark-mode/
+[5]: https://floss.social/@debugpoint
From 843a7da11a1bf63e38907c5e5c130e95599aec8a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 3 Jan 2023 21:52:22 +0800
Subject: [PATCH 188/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230102.2=20=E2=AD=90=EF=B8=8F=20Colorblind=20Filters?=
=?UTF-8?q?=20GNOME=20Extension=20to=20help=20Colorblind=20Users.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...rs GNOME Extension to help Colorblind Users.md | 106 ++++++++++++++++++
1 file changed, 106 insertions(+)
create mode 100644 sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md
diff --git a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md
new file mode 100644
index 0000000000..cd48adc303
--- /dev/null
+++ b/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md
@@ -0,0 +1,106 @@
+[#]: subject: "Colorblind Filters: GNOME Extension to help Colorblind Users"
+[#]: via: "https://www.debugpoint.com/colorblind-filters-gnome-extension/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Colorblind Filters: GNOME Extension to help Colorblind Users
+======
+
+**A nice GNOME Extension – Colorblind Filters, brings many options for color-blind users.**
+
+Accessibility is a critical aspect of computing and operating systems. It includes well-managed settings for vision impairment, color blind and many other health symptoms. Popular Linux desktop environments such as GNOME and KDE Plasma feature accessibility settings to help all those scenarios.
+
+Thanks to the GNOME Extensions ecosystem, a huge number of specialised extensions are available to aid those users. One of the extensions I came across is [“Colorblind Filters”][1].
+
+### Colorblind Filters – GNOME Extension
+
+As per Wikipedia, _“Colour blindness usually involves the inability to distinguish between shades of red and green. There is no treatment for inherited colour blindness. If colour blindness is caused by another condition, treating the underlying cause can help.”_.
+
+So, it’s important that you have options to tweak settings on your Linux desktop.
+
+#### Set up extensions and flatpak
+
+First, make sure you have Flatpak and GNOME Extensions enabled. And the Extensions manager is installed. You may refer to this detailed guide on how to [set up flatpak][2] & enable [GNOME extensions][3], Or run the following commands (for Ubuntu, Linux Mint, etc.) from the terminal.
+
+```
+sudo apt install flatpaksudo apt install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot
+```
+
+Fedora users, use the below commands.
+
+```
+sudo dnf install flatpaksudo dnf install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot
+```
+
+Once done, install the Extension Manager:
+
+```
+flatpak install com.mattjakeman.ExtensionManager
+```
+
+#### Install the Extension
+
+Open the extension manager from the application menu. Search for “colorblind”. And install the extension (see the below image).
+
+![Install the extension][4]
+
+After installation, you can see a small eye icon on the system tray. You can click on it to enable the pre-defined color filters.
+
+![Colorblind Filters extension tray icon][5]
+
+Right-click on the eye icon for more settings. This extension brings all the necessary customizations for colorblind collections, simulations and additional options. The following options are currently available:
+
+- Protanopia
+- Deuteranopia
+- Tritanopia
+
+- Corrections & Simulations (with high contrast)
+
+- Channel mixer for GBR and BRG
+- Lightness inversion
+- Color Inversion
+
+- Additional tweaks
+
+![Colorblind Filters - options][6]
+
+Use the one that suits you best for your eye.
+
+### Wrapping Up
+
+I think Apple’s macOS and iOS have implemented better accessibility than Windows or Linux. However, Linux Desktops are not far behind with these apps and extensions. Also, there are specialized Linux distributions such as “[Accessible Coconut][7]“, which has been built for specialized needs.
+
+I hope Colorblind gnome extension helps you with your day-to-day usage of Linux and GNOME desktops.
+
+Cheers.
+
+[Next:Top 10 Linux Distributions for Windows Users in 2023][8]
+
+[_Using Mastodon? Follow us at floss.social/@debugpoint_][9]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/colorblind-filters-gnome-extension/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://extensions.gnome.org/extension/5589/colorblind-filters/
+[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
+[3]: https://www.debugpoint.com/how-to-install-and-use-gnome-shell-extensions-in-ubuntu/
+[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-the-extension.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-extension-tray-icon.gif
+[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Colorblind-Filters-options.jpg
+[7]: https://www.debugpoint.com/accessible-coconut-linux-visually-impaired/
+[8]: https://www.debugpoint.com/best-linux-distributions-windows/
+[9]: https://floss.social/@debugpoint
From a58e7149fb8be43ad173467bfa5c82e1a9f7e2ce Mon Sep 17 00:00:00 2001
From: geekpi
Date: Wed, 4 Jan 2023 08:43:17 +0800
Subject: [PATCH 189/266] translated
---
...Buzzing Noise Coming from Speakers in Linux.md | 130 ------------------
...Buzzing Noise Coming from Speakers in Linux.md | 130 ++++++++++++++++++
2 files changed, 130 insertions(+), 130 deletions(-)
delete mode 100644 sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
create mode 100644 translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
diff --git a/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md b/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
deleted file mode 100644
index 6a914d5ab3..0000000000
--- a/sources/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
+++ /dev/null
@@ -1,130 +0,0 @@
-[#]: subject: "How I Fixed Buzzing Noise Coming from Speakers in Linux"
-[#]: via: "https://itsfoss.com/buzzing-noise-speaker-linux"
-[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How I Fixed Buzzing Noise Coming from Speakers in Linux
-======
-
-I used a laptop for a long time but only recently switched to a desktop setup for my remote work at It’s FOSS.
-
-I noticed a constant buzzing sound coming from the speakers. It was annoying and gave me headaches. I started out to fix the issue. It was quite interesting to know the root cause of the issue.
-
-I will share my experience of fixing the buzzing noise from speakers in Linux. I found it working with Ubuntu, Debian and Pop OS on the same hardware.
-
-One thing to consider is that you may have a serious hardware issue if this guide does not work for you. For most users, the given solution should get the job done.
-
-**Before you try the fix …**
-
-I have tried to make things easy to follow safely. You try the temporary fix and if it works, you make the changes permanent. However, it would be a good idea to make system snapshots with Timeshift. If you are easily panicked when things do not work, you can restore the system to the earlier state.
-
-Also, check your sound card. In my case, it was snd_hda_intel. For USB card, it could be snd_usb_audio. You have to change the commands according to your sound card.
-
-```
-cat /proc/asound/modules
-```
-
-### The reason behind the buzzing noise from speakers in Linux
-
-After combing through numerous forum posts and websites, I learned the root cause of the issue. It is because of capacitor discharge in the speakers. And it can be solved by turning off the power-saving setting of a sound card.
-
-By turning off power saving, you are allowing the system to charge those capacitors when they get discharged. It is similar to using a phone while charging constantly.
-
-And you can check whether the power-saving setting for the sound card is enabled on your system by using the given command:
-
-```
-cat /sys/module/snd_hda_intel/parameters/power_save
-```
-
-![power saving setting in sound card making buzzing sound in linux][1]
-
-And if you get 1 in output like mine, the power saving is turned on. So let’s have a look at the solution.
-
-Don’t worry. This will not affect your battery percentage drastically, as the shown method is only applied to the sound card.
-
-### Try fixing the buzzing noise issue (temporary)
-
-The reason why I included the temporary way is to identify whether the humming sound is being caused due to capacitor discharge or if there is any serious hardware problem going on.
-
-If this temporary solution works, you can go ahead with the permanent solution.
-
-The first step is to switch to the root user:
-
-```
-sudo su
-```
-
-And then, execute the given command, and it should stop the buzzing sound until the next boot:
-
-```
-echo 0 > /sys/module/snd_hda_intel/parameters/power_save
-```
-
-If you are using **a USB sound card**, you have to interchange `snd_hda_intel` with `snd_usb_audio` as given:
-
-```
-echo 0 > /sys/module/snd_usb_audio/parameters/power_save
-```
-
-If the above trick fixed the issue, you have to make things permanent. Otherwise, the changes will be lost when you next reboot your system.
-
-### Fixing the buzzing noise issue (permanently)
-
-Here, I’m going to make changes in kernel parameters.
-
-Change your working directory to /etc/modprobe.d:
-
-```
-cd /etc/modprobe.d
-```
-
-And now, create a new file named `audio_disable_powersave.conf` and open with the nano text editor using the given command:
-
-```
-sudo nano audio_disable_powersave.conf
-```
-
-And put the following lines in that file to turn off the power-saving setting in the sound card permanently:
-
-```
-options snd_hda_intel power_save=0
-```
-
-![fix buzzing sound in linux][2]
-
-For **a USB sound card**, you can use `snd_usb_audio`:
-
-```
-options snd_usb_audio power_save=0
-```
-
-Now, [save changes and exit the Nano text editor][3] by pressing Ctrl+X keys. Reboot your system, and you can enjoy a noise-free workspace.
-
-### Wrapping Up
-
-This guide explains the cause of the buzzing noise and how you can straightforwardly solve that issue.
-
-Again, you may have some other issue rather than discharging capacitors, so you should always try the temporary method.
-
-Let me know if you were able to fix the buzzing noise from speakers in Linux this way or not.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/buzzing-noise-speaker-linux
-
-作者:[Sagar Sharma][a]
-选题:[lkxed][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/sagar/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/wp-content/uploads/2022/11/power-saving-setting-in-sound-card-making-buzzing-sound-in-linux.png
-[2]: https://itsfoss.com/wp-content/uploads/2022/11/fix-buzzing-sound-in-linux.png
-[3]: https://linuxhandbook.com/nano-save-exit/
diff --git a/translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md b/translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
new file mode 100644
index 0000000000..6e2f08c773
--- /dev/null
+++ b/translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
@@ -0,0 +1,130 @@
+[#]: subject: "How I Fixed Buzzing Noise Coming from Speakers in Linux"
+[#]: via: "https://itsfoss.com/buzzing-noise-speaker-linux"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+我如何修复 Linux 中扬声器发出的嗡嗡声
+======
+
+我使用笔记本电脑很长时间了,但最近才切换到桌面设置,以便在 It's FOSS 进行远程工作。
+
+我注意到扬声器不断发出嗡嗡声。这很烦人,让我头疼。我开始着手解决这个问题。了解问题的根本原因非常有趣。
+
+我将分享我在 Linux 中修复扬声器嗡嗡声的经验。我发现它可以在同一硬件上对 Ubuntu、Debian 和 Pop OS 都有效。
+
+需要考虑的一件事是,如果本指南不适合你,你可能遇到了严重的硬件问题。对于大多数用户来说,给定的方案应该可以解决问题。
+
+**在尝试修复之前**
+
+我试图让事情变得容易安全地遵循。你尝试临时修复,如果有效,则将更改永久化。但是,最好使用 Timeshift 制作系统快照。如果你在出现故障时很容易惊慌失措,你可以将系统恢复到之前的状态。
+
+另外,检查你的声卡。在我的例子中,它是 snd_hda_intel。对于 USB 卡,它可以是 snd_usb_audio。你必须根据你的声卡更改命令。
+
+```
+cat /proc/asound/modules
+```
+
+### Linux 中扬声器发出嗡嗡声的原因
+
+梳理了无数的论坛帖子和网站后,我了解了问题的根本原因。这是因为扬声器中的电容放电。它可以通过关闭声卡的省电设置来解决。
+
+通过关闭省电,你允许系统在这些电容放电时为其充电。这类似于在不断充电时使用电话。
+
+你可以使用给定的命令检查你的系统是否启用了声卡的省电设置:
+
+```
+cat /sys/module/snd_hda_intel/parameters/power_save
+```
+
+![power saving setting in sound card making buzzing sound in linux][1]
+
+如果你像我一样输出是 1,那么省电功能已打开。因此,让我们看一下方案。
+
+不用担心。这不会显著影响你的电池百分比,因为所示方法仅适用于声卡。
+
+### 尝试修复嗡嗡声问题(临时)
+
+我之所以包括临时方法是为了确定嗡嗡声是由于电容放电引起的还是是否存在任何严重的硬件问题。
+
+如果此临时方案有效,你可以继续使用永久方案。
+
+第一步是切换到 root 用户:
+
+```
+sudo su
+```
+
+然后,执行给定的命令,它应该停止嗡嗡声直到下次启动:
+
+```
+echo 0 > /sys/module/snd_hda_intel/parameters/power_save
+```
+
+如果你使用的是 **USB 声卡**,则必须将 `snd_hda_intel` 与 `snd_usb_audio` 互换,如下所示:
+
+```
+echo 0 > /sys/module/snd_usb_audio/parameters/power_save
+```
+
+如果上述技巧解决了问题,那么你必须使变更永久化。否则,下次重启系统时更改将丢失。
+
+### 修复嗡嗡声问题(永久)
+
+在这里,我将对内核参数进行更改。
+
+将你的工作目录更改为 /etc/modprobe.d:
+
+```
+cd /etc/modprobe.d
+```
+
+现在,创建一个名为 `audio_disable_powersave.conf` 的新文件,并使用给定命令使用 nano 文本编辑器打开:
+
+```
+sudo nano audio_disable_powersave.conf
+```
+
+并在该文件中放入以下行以永久关闭声卡中的省电设置:
+
+```
+options snd_hda_intel power_save=0
+```
+
+![fix buzzing sound in linux][2]
+
+对于 **USB 声卡**,你可以使用 `snd_usb_audio`:
+
+```
+options snd_usb_audio power_save=0
+```
+
+现在,[保存更改并退出 Nano 文本编辑器][3]并按 Ctrl+X 键。重启你的系统,你就可以享受无噪音的工作空间。
+
+### 总结
+
+本指南解释了嗡嗡声的原因以及如何直接解决该问题。
+
+同样,除了电容放电之外,你可能还有其他问题,因此你应该始终尝试临时方法。
+
+让我知道你是否能够以这种方式解决 Linux 中扬声器发出的嗡嗡声。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/buzzing-noise-speaker-linux
+
+作者:[Sagar Sharma][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/sagar/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/wp-content/uploads/2022/11/power-saving-setting-in-sound-card-making-buzzing-sound-in-linux.png
+[2]: https://itsfoss.com/wp-content/uploads/2022/11/fix-buzzing-sound-in-linux.png
+[3]: https://linuxhandbook.com/nano-save-exit/
From d41696aec84aee02ee2def8396921b0a12af0e66 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Wed, 4 Jan 2023 08:47:37 +0800
Subject: [PATCH 190/266] translating
---
...01.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
index ab1be90f2f..9a30bf0a2f 100644
--- a/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
+++ b/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
@@ -2,7 +2,7 @@
[#]: via: "https://itsfoss.com/firefox-esr-ubuntu/"
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 1d4becfefd43c5986af41f4370cbd90eebcb0426 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 4 Jan 2023 10:54:48 +0800
Subject: [PATCH 191/266] ALL
@wxy
https://linux.cn/article-15410-1.html
---
...se Adds Pop OS-Style KDE Plasma, Drops Cutefish.md | 87 +++++++++++++++++++
...se Adds Pop OS-Style KDE Plasma, Drops Cutefish.md | 87 -------------------
2 files changed, 87 insertions(+), 87 deletions(-)
create mode 100644 published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md
delete mode 100644 sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md
diff --git a/published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md b/published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md
new file mode 100644
index 0000000000..173a76f9e9
--- /dev/null
+++ b/published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md
@@ -0,0 +1,87 @@
+[#]: subject: "Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish"
+[#]: via: "https://debugpointnews.com/ultramarine-linux-37-release/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15410-1.html"
+
+Ultramarine Linux 37 版本发布
+======
+
+![][1]
+
+> Ultramarine Linux 的新版本来了。Ultramarine Linux 37 带有新的自定义软件仓库、KDE Plasma 特色版等等。
+
+如果你不知道,Ultramarine Linux 是一个基于 Fedora 的发行版,提供了 Budgie、Pantheon、GNOME 等桌面环境。这个发行版通过这些令人赞叹的桌面环境给你提供了最好的 Fedora 体验。
+
+最近,这个小项目被 [FyraLabs][2] 收购,后者是 PhotonBrowser 和 tauOS 背后的公司。而这使得 Ultramarine 项目有了必要的人力和资金来继续建设他们的发行版。
+
+自 Fedora 37 发布以来,该团队一直致力于重件当前版本,这包括采用新的基础设施和 CI/CD 管道迁移。终于,Ultramarine Linux 37 登场了。
+
+那么,它有什么新东西呢?
+
+### Ultramarine Linux 37 的新功能
+
+自从被 Fyralabs 收购后,该团队升级并迁移到用于自动化 CI/CD 构建的 GitHub Actions。Ultramarine 自己的软件仓库用于分发其精心组织的软件包(例如 Pantheon 桌面),它在这个版本中会发生变化,并转移到 FyraLabs 的基础设施上。
+
+因此,如果你正在运行 Ultramarine 36 版本,它可能无法正常工作。你最好重新安装这个版本,因为显然没有从 36 版到 37 版的升级路径。
+
+此外,Ultramarine 37 为 Fedora 软件包引入了一个名为 [Terra][3] 的滚动仓库,其中包括数百个 Fedora 不提供的应用程序。你可以认为它类似于 [RPM Fusion][4],尽管有所不同。
+
+要了解更多,请访问 [本页][3] 或从命令行添加以下软件仓库:
+
+```
+sudo dnf config-manager --add-repo https://terra.fyralabs.com/terra.repo
+```
+
+事实上,这开启了一种可能性,因为你也可以尝试在 Fedora Linux 中谨慎地使用它。如果上述软件仓库能在普通的 Fedora 安装中开箱即用,那就更棒了。
+
+在上述变化的基础上,Ultramarine Linux 37 首次引入了 KDE Plasma 作为官方版本。KDE Plasma 特色版带来了含有 Latte Dock 和 Lightly Qt 主题的 Pop OS 风格外观。
+
+![Ultramarine Linux 37 具有独特的 Pop OS 风格的 KDE Plasma 主题][5]
+
+Ultramarine Linux 37 也放弃了 Cutefish 桌面,因为它目前正处于 [混乱的开发状态,没有可见的路线图][6]。这是该团队的一个很好的决定,因为打包一个已经停止的项目是没有意义的。
+
+Budgie 桌面旗舰版使用上游的 Fedora 软件包,有更多的默认应用程序。最近,Fedora Linux 删除了对 elementary OS 的 Pantheon 桌面的支持,很遗憾。感谢 Ultramarine Linux 开发者,你仍然可以体验它,因为它已经被转移到新的 Terra 软件仓库中。
+
+你应该庆幸,Ultramarine Linux 是唯一一个的基于 Fedora 的支持令人赞叹的 Pantheon 桌面的发行版。
+
+最后,Ultramarine Linux 37 的核心基于 [Fedora 37][7],采用 Linux 主线内核 6.0。因此,所有更新的软件包和工具链都在这个版本中。
+
+所以,这就是关于这个版本的总结。请继续关注几天后对这个版本的官方点评。如果有兴趣,你可以在这里阅读之前的版本(36)的评论。
+
+> **[Ultramarine Linux:带有 Budgie、Cutefish 和 Pantheon 桌面的终极 Fedora 特色版][8]**
+
+### 下载和升级
+
+由于没有升级路径,建议你对该版本进行全新安装。你可以在下面下载各个桌面环境的 ISO 文件。
+
+> **[下载 Ultramarine Linux 37][9]**
+
+参考自:[发布公告][10]。
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/ultramarine-linux-37-release/
+
+作者:[arindam][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2023/01/ultra37head.jpg
+[2]: https://twitter.com/UltramarineProj/status/1579991853478182914
+[3]: https://terra.fyralabs.com/
+[4]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/
+[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Ultramarine-Linux-37-with-unique-Pop-OS-style-KDE-Plasma-Theme.jpg
+[6]: https://www.debugpoint.com/cutefish-development-restarts/
+[7]: https://debugpointnews.com/fedora-37-release-accouncement/
+[8]: https://www.debugpoint.com/ultramarine-linux-36/
+[9]: https://repos.fyralabs.com/isos/ultramarine/37/
+[10]: https://github.com/Ultramarine-Linux/build-scripts/releases/tag/37-1.0
diff --git a/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md b/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md
deleted file mode 100644
index c5983ce0ad..0000000000
--- a/sources/news/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md
+++ /dev/null
@@ -1,87 +0,0 @@
-[#]: subject: "Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish"
-[#]: via: "https://debugpointnews.com/ultramarine-linux-37-release/"
-[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish
-======
-
-![][1]
-
-**A new release of Ultramarine Linux is here: Ultramarine Linux 37 with new custom repo, KDE Plasma flavour and goodies.**
-
-If you are unaware, Ultramarine Linux is a Fedora-based distribution which offers Budgie, Pantheon, GNOME and other desktops. This distro gives you the best Fedora experience with this awesome desktop environment.
-
-Recently, this small project is [acquired by FyraLabs][2], the company behind PhotonBrowser and tauOS. And this enables the Ultramarine project with the necessary manpower and funding for infrastructure to continue building the distro.
-
-Since the Fedora 37 release, the team has been working on rebasing the current release, which includes adopting the new infrastructure and CI/CD pipeline migration. And a final Ultramarine Linux 37 is here.
-
-So, what’s new?
-
-### Ultramarine Linux 37 Release: New Features
-
-Since the Fyralabs acquisition, the team upgraded and migrated to GitHub Actions for automated CI/CD builds. Ultramarine’s own repo, which was used to distribute curated packages (for example, Pantheon desktop), is changing in this release and moving to FyraLabs infrastructure.
-
-Hence if you are running the Ultramarine 36 version, it may not work correctly. It’s best if you do a fresh installation of this version, as obviously, there is no upgrade path from the 36 to 37 version.
-
-Furthermore, Ultramarine 37 is introducing a rolling repo called “[Terra][3]” for Fedora packages, including hundreds of applications that Fedora doesn’t ship. You may think of it as similar to [RPM Fusion][4], albeit different.
-
-To learn more, visit [this page][3] or add the following repo from the command line.
-
-```
-sudo dnf config-manager --add-repo https://terra.fyralabs.com/terra.repo
-```
-
-In fact, this opens up a possibility as you may also try to use it in Fedora Linux with caution. It will be cool if the above repo works out of the box in a vanilla Fedora install.
-
-On top of the above changes, Ultramarine Linux 37 introduces KDE Plasma as an official spin for the first time. The KDE Plasma flavour brings a Pop OS style look with Latte Dock and Lightly Qt theme.
-
-![Ultramarine Linux 37 with unique Pop OS style KDE Plasma Theme][5]
-
-Ultramarine Linux 37 also drops the Cutefish desktop, which is currently in a [confused state of development with no visible roadmap][6]. It’s a good decision from the team since there is no point in packaging a halted project.
-
-The Budgie desktop flagship version uses upstream Fedora packages with more default applications. Recently, Fedora Linux removed elementary OS’s Pantheon desktop support, unfortunately. Thanks to Ultramarine Linux devs, you can still experience it as it has been moved to the new Terra repo.
-
-You should be glad that Ultramarine Linux is the only Fedora-based distribution supporting the great Pantheon desktop.
-
-Finally, at its core, Ultramarine Linux 37 is based on [Fedora 37][7] and features Linux mainline Kernel 6.0. So, all the updated packages & toolchains are current in this release.
-
-So, that’s about the summary of this release. Stay tuned for the official review of this version in a few days. If interested, you might want to read the prior version (36) review here:
-
-> [Ultramarine Linux: Ultimate Fedora Spin with Budgie, Cutefish and Pantheon][8]
-
-### Download and Upgrade
-
-Since there is no upgrade path, it is recommended that you should do a fresh installation of this version. You can download the ISO files for the respective desktop flavours below.
-
-[Download Ultramarine Linux 37][9]
-
-Via [release announcement][10]
-
---------------------------------------------------------------------------------
-
-via: https://debugpointnews.com/ultramarine-linux-37-release/
-
-作者:[arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://debugpointnews.com/author/dpicubegmail-com/
-[b]: https://github.com/lkxed
-[1]: https://debugpointnews.com/wp-content/uploads/2023/01/ultra37head.jpg
-[2]: https://twitter.com/UltramarineProj/status/1579991853478182914
-[3]: https://terra.fyralabs.com/
-[4]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/
-[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Ultramarine-Linux-37-with-unique-Pop-OS-style-KDE-Plasma-Theme.jpg
-[6]: https://www.debugpoint.com/cutefish-development-restarts/
-[7]: https://debugpointnews.com/fedora-37-release-accouncement/
-[8]: https://www.debugpoint.com/ultramarine-linux-36/
-[9]: https://repos.fyralabs.com/isos/ultramarine/37/
-[10]: https://github.com/Ultramarine-Linux/build-scripts/releases/tag/37-1.0
From c5ea2e25d3e59a34913f9114f38fdab19177b3a4 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 4 Jan 2023 17:32:37 +0800
Subject: [PATCH 192/266] RP
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@CanYellow
https://linux.cn/article-15411-1.html
翻译的很用心~
---
...s for measuring your open source software usage.md | 150 ++++++++++++++++++
...s for measuring your open source software usage.md | 145 -----------------
2 files changed, 150 insertions(+), 145 deletions(-)
create mode 100644 published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
delete mode 100644 translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
diff --git a/published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
new file mode 100644
index 0000000000..cdc1ab5063
--- /dev/null
+++ b/published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
@@ -0,0 +1,150 @@
+[#]: subject: "8 ideas for measuring your open source software usage"
+[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics"
+[#]: author: "Georg Link https://opensource.com/users/georglink"
+[#]: collector: "lkxed"
+[#]: translator: "CanYellow"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15411-1.html"
+
+衡量你的开源软件使用情况的 8 个方法
+======
+
+![][0]
+
+> 想知道如何为你的开源软件项目收集使用指标?考虑一下使用这些替代方案的利弊。
+
+我们这些支持开源项目社区的人经常被问到很多有关使用指标的问题。这些指标通常是为了通过用户量和知名度来衡量软件的重要性。我们一般都想知道有多少人使用该软件,有多少次安装,以及有多少人生活接触过它。
+
+但简而言之,我们尚无法直接回答上述问题。
+
+如果你想要寻找一个明确的解决方案,那很抱歉要让你失望了。有关使用指标的问题,没有人有完美的答案,至少没有准确的答案。
+
+好消息是,有一些近似的和替代指标至少能够部分地满足你对软件使用情况了解的渴求。本文探讨了这些替代方案以及它们的优点和缺点。
+
+### 下载量
+
+当你浏览提供软件的网站时,你通常可以看到软件的下载次数。映入我脑海的一个例子是 Firefox ,它曾经有一个下载计数器。Firefox 的下载量是一个印象深刻的数字,给人的印象是 Firefox 是一个流行的浏览器,在一段时间内确实如此。
+
+然而,个人行为会直接影响这一数字的准确性。举例而言,当一个人定期重置他们的设备时,每一次重建都会引发一次独立的下载。考虑到这一现实,需要设计一种方法从下载量中去除几十次(或许是几百次)的下载次数,因为那是一个人。
+
+下载量不仅会高估使用量,还会低估使用量。例如,一个系统管理员可能会下载一个新版本的 Firefox 一次并将其拷贝到 U 盘上,然后安装到数百台设备上。
+
+下载量指标是易于收集的,你可以在服务器上记录每一个下载请求。问题在于你不知道在这些软件下载以后会发生什么。下载它的人是否如预期的那样使用软件,还是遇到了问题而放弃了它。
+
+对于开源项目而言,你可以考虑各种下载量指标,比如来自以下途径的下载指标:
+
+- 项目官网
+- 包管理器,比如 npm、PyPi 和 Maven
+- 代码仓库,如 GitHub、GitLab、Gitee 等
+
+你可能还对源代码的下载量感兴趣,因为下游项目更可能使用源代码形式(参见 [《如何衡量你的开源项目的影响》][1]一文)。相应的下载指标包括:
+
+- 从代码仓库克隆的数量,比如 GitHub、GitLab 和 Gitee
+- 从官网下载的归档文件(tar、zip)的数量
+- 通过像 npm、PyPi 和 Maven 这样的包管理器下载的源代码数量
+
+源代码的下载指标比二进制代码的下载指标更不可靠(虽然尚无相关研究表明如此)。试想一下,一名开发人员想要你的最新版本的源代码,并将他们的构建管道配置为每次构建都克隆你的仓库。再想象一下,一个自动构建过程失败了,它试图重新构建而不断地克隆你的版本库。你还可以考虑这样一个下载量低于预期的场景——源代码仓库在某些地方缓存了,下载来源是由这些缓存所提供的。
+
+> **[相关阅读:跟踪你的开源社区的 5 个指标][2]**
+
+总而言之,下载量指标是用于提供当前使用情况和探测趋势的很好的指征。我们无法明确地定义一次下载是如何转化为使用的。不过我们可以认为增加的下载量是更多潜在用户的标志。举例而言,如果你为你的软件做了广告并在活动期间得到了更高的下载量,可以合理地假定广告推动了更多人下载该软件。下载行为的来源与元数据还可以提供额外的与使用行为相关的内容。你的软件的哪些版本仍在使用中?什么操作系统或者特定语言的版本更加流行?这有助于社区决定将哪个平台的软件作为支持与测试的优先选项。
+
+### 议题
+
+作为一个开源项目,你可能有一个议题追踪器。当某个人提出一个议题时一般有两个目标,报告一个漏洞或者请求增加一项功能。提议者很可能已经使用过你的软件了。作为一名用户,他可能发现了一个漏洞或者发现了对一个新功能的需求。
+
+很明显,大多数用户不会执行额外的步骤来提交议题。提议者是我们的忠实用户,我们对他们表示感谢。此外,通过提出议题,他们已经成为了非代码贡献者,他们也有希望成为代码贡献者。经验法则是大约每 10000 名用户中,可能有 100 名提议者,以及 1 名代码贡献者。当然取决于用户类型,上述比例可能有出入。
+
+回到指标问题,你可以将提议者数量作为评估使用量的下界。相关的指标包括:
+
+- 提议者数量
+- 活跃提议者的数量(在过去 6 个月内提出议题的提议者)
+- 同时有代码贡献的提议者的数量
+- 尚未解决的议题的数量
+- 对议题发布的评论数量
+
+### 邮件列表、论坛和问答网站
+
+很多开源项目都拥有用户邮件列表、论坛,并且出现在类似 Stack Overflow 的问答网站上。与提问者一样,在这些地方发帖的人可被视作用户的冰山一角。与邮件列表、论坛和问答网站上的社区活跃程度相关的指标也可用于反映用户数量的上升或下降。相关指标可以集中于以下地方的活动,包括:
+
+- 用户邮件列表的订阅量
+- 论坛用户的数量
+- 问题的数量
+- 答案的数量
+- 发布信息的数量
+
+### 上报功能
+
+为了获得精确的用户数量,一个方案是让软件在使用时上报信息。
+
+这是令人毛骨悚然的。想象一下,系统管理员的防火墙报告了一个非预期的到你的服务器的网络连接,你不仅无法再收到软件报告(被防火墙拦截了),恐怕连你的软件也可能在未来被禁止使用。
+
+负责任的设置上报功能的方式为设置一项可选服务来检查更新并让用户知道使用最新版本。另一项可选功能可以集中在使用遥测上,你可以通过该功能询问用户是否允许匿名上报软件使用情况。如果经过深思熟虑的实施,这种方式可以允许用户通过他们使用软件的方式帮助优化软件。用户可以持有这样的意见:我一般不允许这种使用信息的分享;但对于一些软件,因为希望开发人员在长期内将软件优化得更好,我愿意这样做。
+
+### 星标与复刻
+
+星标与复刻是如 GitHub、GitLab、Gitee 等社交化编程平台的功能。这些平台上的用户可以给一个项目加星标。为什么他们要给项目加星标呢?GitHub 的文档作出了解释:你可以给一个仓库和主题加星标,以跟踪感兴趣的项目,和在你的新闻订阅中发现相关的内容。给一个项目加星标与将其加入书签的效果一样,并且还提供了一种向项目仓库的维护者展示赞赏的方式。星标的数量已经成为了项目流行程度的标志。当一个项目发布重大公告并获得相当的关注时,项目的星标数量会呈上升趋势。星标的数量指标并不反映软件的使用量。
+
+在社交化编程平台上的复刻Fork是将项目仓库复制一份在自己名下。仓库的非维护者可以在他们自己的克隆仓库中做修改,并将修改通过拉取请求pull request(PR)的方式提交审核。复刻比星标更能反映软件社区的规模。开发者也可能为了保存一份代码副本而克隆一个项目,以便在原始仓库消失后他们仍能访问代码。因为复刻功能在代码贡献工作流中的应用,复刻量是衡量开发社区的良好指标。复刻量通常也不反映非开发人员的使用,因为非开发人员一般不创建复刻。
+
+### 社交媒体
+
+包括 Facebook、Instagram、LinkIn、Reddit、Twtter 等社交媒体平台提供了相同兴趣的人们聚集的平台。采用社交媒体策略,开源项目可以通过在平台上设置相应的聚集空间来吸引对项目感兴趣的人们。通过这些社交媒体途径,开源项目可以分享项目新闻、更新,指出贡献者和用户。这些社交媒体途径还可以用于认识那些本不会通过其他途径与项目互动的人。
+
+我在犹豫是否建议关注以下指标,因为它与软件的真实使用量没有清晰的联系,并通常需要分析其中的积极、消极和中性的情绪。人们可能因为很多不同的原因对你的项目感到激动而关注它,但并不实际使用它。然而与之前已经讨论过的指标一样,能够在社交媒体上吸收人群本就是项目受关注的整体指标。不同社交媒体平台的指标包括:
+
+- 关注者与订阅者的数量
+- 消息的数量
+- 活跃的消息作者的数量
+- 喜欢、分享、回复以及其他交互的数量
+
+### 网站分析与文档
+
+网站流量也是一个有用的指标。这一指标主要受到你的服务范围以及市场营销活动影响,而不是用户量。然而,我们还有一张王牌:我们的用户文档、教程、手册以及 API 文档。我们可以发现我们的网站以及文档中的什么主题更引人注意。文档的访问者数量应当大致随着软件的使用者数量增长而增长。因此我们可以通过网站的访问量探知对项目的普遍兴趣,并进一步通过观察文档的访问者来观察用户风向。这些指标包括:
+
+- 网站访问者数量
+- 文档访问者的数量
+- 访问者在你的网站与文档上所花的时间
+
+### 活动
+
+活动的指标可以在你主持与项目相关的活动时使用。这是建立社区的很好的方式。有多少人提交摘要想要在你的活动中发言?有多少人出席你的活动?不论是在线下活动还是线上活动这可能都很有趣。当然,你如何推广你的活动在很大程度上决定有多少人到场。同时你可以将自己的活动与人们出行的大型活动放在一起以方便人们参加你的活动。只要你使用一贯的活动策略,你可以通过演讲者提交的材料与参会者注册的增加来表征软件受欢迎程度与用户群的增加。
+
+你并不需要举办你自己的活动来收集有用的指标。如果你在开源活动中主持有关你项目的讨论,你可以衡量有多少人出席主要关注你的项目的会议。像 [FOSDEM][T1] 这样的活动,一些讨论特别聚焦于开源项目的更新与发布,会议室中都挤满了人(像 FOSDEM 的所有会议一样)。
+
+你可以考虑如下指标:
+
+- 以你的项目为中心的活动的出席人数
+- 提交到以你的项目为中心的活动的演讲数量
+- 以你的项目为中心的演讲的出席人数
+
+### 关于估算开源软件使用的结论
+
+正如我们已经如上展现的,有很多指标可以反映软件使用的趋势,没有一个指标是完美的。在大多数情况下,这些指标可能被个人行为、系统设计和噪音所严重影响。因此,考虑到每一个指标的相对不确定性,我们建议你不要孤立地使用任何一个指标。但是如果你从不同的来源收集了一系列的指标,你应当能够探测到用户行为与软件使用的趋势。如果你有办法在多个具有共性的开源项目中比较同一组指标,例如类似的功能、强大的相互依赖性、在同一基础设施上托管,以及其他特征,你就可以提升你对用户行为基线的感知。
+
+需要注意的是,在这篇概述中,我们选择突出能够评估直接使用情况的指标。而大多数软件都依赖于其他各种软件包,如果我们不提及作为软件依赖链的一部分而被间接使用的严重影响,这就是我们的疏忽。因此,我们建议将上下游依赖的合计数量作为你的分析中的另一层内容。
+
+最后,作为数据与指标的使用者,我们鼓励你认识到你的利益相关方的权利与责任。你发布的任何指标都有可能影响用户行为。最好的做法是经常一同分享你的背景信息——基础、来源、估算方法和其他关键上下文信息,这有助于其他人解释你的结果。
+
+感谢 [CHAOSS][T2] 社区在爱尔兰都柏林举行的 CHAOSScon EU 2022 上的富有洞察力的对话,上述对话激发这篇博文的想法。我们还要感谢 CHAOSS 社区的成员审阅并帮助优化本文。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/open-source-usage-metrics
+
+作者:[Georg Link, Sophia Vargas][a]
+选题:[lkxed][b]
+译者:[CanYellow](https://github.com/CanYellow)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/georglink
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/18/5/metrics-project-success
+[2]: https://opensource.com/article/22/11/community-metrics
+
+[T1]: https://fosdem.org/
+[T2]: https://chaoss.community
+[0]: https://img.linux.net.cn/data/attachment/album/202301/04/173129vmnstoxnzmjlnsxw.jpg
\ No newline at end of file
diff --git a/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
deleted file mode 100644
index f3efee7126..0000000000
--- a/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
+++ /dev/null
@@ -1,145 +0,0 @@
-[#]: subject: "8 ideas for measuring your open source software usage"
-[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics"
-[#]: author: "Georg Link https://opensource.com/users/georglink"
-[#]: collector: "lkxed"
-[#]: translator: "CanYellow"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-衡量你开源软件使用的8个方法
-======
-
-我们这些支持开源项目社区的人经常被问到很多有关使用指标的问题。这些指标通常是为了通过用户群体和用户认知来衡量软件的重要性。我们一般都想知道有多少人使用该软件,有多少次安装以及触发了多少次实例。
-
-长话短说,我们尚无法直接回答上述问题。
-
-如果你想要寻找一个终极解决方案,那很抱歉要让你失望了。有关使用指标的问题,没有人有完美的答案,至少没有准确的答案。
-
-好消息是,有一些近似的和可选的指标至少能够部分地满足你对软件使用知识的渴求。本文探讨了这些替代方案以及他们的优点和缺点。
-
-### 下载
-
-当你浏览提供软件的网站时,你通常可以看到软件的下载次数。映入脑海的一个例子是 Firefox ,它曾经有一个下载计数器。Firefox 的下载量是一个印象深刻的数字,给人留下 Firefox 在一段时间内是一个流行的浏览器。
-
-然而,个人行为会直接影响这一数字的准确性。举例而言,当一个人定期重置他们的设备时,每一次重建都会引发一次独立的下载。考虑到这一现实,需要设计一种方法从下载量中去除几十次由上述人员带来的下载次数。
-
-下载量不仅会高估使用量,还会低估使用量。例如,一个系统管理员可能会下载一个新版本的 Firefox 一次并将其拷贝到闪存上,然后安装到数百台设备上。
-
-下载量指标是易于收集的,你可以在服务器上记录每一个下载请求。问题在于你不知道在这些软件下载以后会发生什么。下载它的人是否如预期的那样使用软件,还是运行时遇到了问题而遗弃了软件。
-
-对于开源项目而言,你可以考虑各种下载量指标,比如来自以下途径的下载指标:
-
-- 项目官网
-- 包管理器,比如 npm,PyPi 和 Maven
-- 代码仓库,如 Github,GitLab,Gitee 等
-
-你可能还对源代码的下载量感兴趣,因为下游项目更可能使用源代码形式 (见于[《如何衡量你的开源项目的影响》][1]一文)。相应的下载指标包括:
-
-- 从代码仓库克隆的数量,比如 GitHub,GitLab 和 Gitee
-- 从官网下载的归档文件 (tar,zip) 的数量
-- 通过像 npm,PyPi 和 Maven 这样的包管理器下载的源代码数量
-
-源代码的下载指标比二进制代码的下载指标更不可靠(虽然尚无相关研究表明如此)。试想一下,一名开发人员想要你的最新版本的源代码并已经配置好了他们的构建流程来总是在每一次构建中都克隆你的版本库。再想象一个自动构建过程失败了,它试图重新构建而不断地克隆你的版本库。你还可以考虑这样一个下载量低于预期的场景——源代码仓库在某些地方缓存了,下载来源是由这些缓存所提供的。
-
-**[相关阅读[跟踪你的开源社区的5个指标][2]]**
-
-总而言之,下载量指标是用于提供当前使用情况和探测趋势的很好的代表。我们无法明确地定义一次下载是如何转化为使用的。不过我们可以认为增加的下载量是更多潜在用户的标志。举例而言,如果你为你的软件做了广告并在活动期间得到了更高的下载量,可以公正的假定广告推动了更多人下载软件。下载行为的来源与元数据还可以提供额外的与使用行为相关的内容。你的软件的哪些版本仍在使用中?什么操作系统或者专属语言的版本更加流行?这有助于社区决定将哪个平台的软件作为支持与测试的优先选项。
-
-### 提问
-
-作为一个开源项目,你可能有一个问题追踪器。当某个人提出一个议题时一般有两个目标,报告一个漏洞或者请求增加一项功能。提问者可能使用过你的软件。作为一名用户,他可能发现了一个漏洞或者确定了对新功能的需求。
-
-很明显,大多数用户不会执行额外的步骤来提交问题。提问者是我们的忠实用户,我们对他们表示感谢。此外,通过提出问题,他们成为非代码贡献者,他们也有希望成为代码贡献者。经验法则是大约每10000名用户中,可能有100名提问者以及1名代码贡献者,当然取决于用户类型,上述比例可能有出入。
-
-回到指标问题,你可以将提问者数量作为评估使用量的下界。相关的指标包括:
-
-- 提问者数量
-- 活跃提问者的数量 (在过去6个月内提出问题的提问者)
-- 同时有代码贡献的提问者的数量
-- 尚未解决的问题的数量
-- 发布的问题评论的数量
-
-### 邮件列表,论坛和问答网站
-
-很多开源项目都拥有用户邮件列表,论坛,并且出现在类似 Stack Overflow 的问答网站上。与提问者一样,在这些地方发帖的人可被视作用户的冰山一角。与邮件列表、论坛和问答网站上的社区活跃程度相关的指标也可用于反映用户数量的上升或下降。相关指标可以集中于以下地方的活动,包括:
-
-- 用户邮件列表的订阅量
-- 论坛用户的数量
-- 问题的数量
-- 答案的数量
-- 发布信息的数量
-
-### 上报功能
-
-为了获得精确的用户数量,一个方案是让软件在使用时上报信息。
-
-这是令人毛骨悚然的。想象一下,系统管理员的防火墙报告了一个非预期的到你的服务器的网络连接,你不仅无法再收到软件报告(被防火墙拦截了),恐怕连你的软件也可能在未来被禁止使用。
-
-负责任的设置上报功能的方式为设置一项可选服务来检查更新并让用户知道使用最新版本。另一项可选功能可以集中在使用检测上,你可以通过该功能询问用户是否允许匿名上报软件使用情况。如果经过深思熟虑的实施,这种方式可以允许用户通过他们使用软件的方式帮助优化软件。用户可以持有这样的意见:我一般不允许使用信息分享;但对于一些软件,因为希望开发人员从长远来看会将软件优化得更好,我愿意这样做。
-
-### 加星标与克隆
-
-加星标与克隆是如 GitHub 、 GitLab 、 Gitee 等社交化编程平台的功能。平台用户可以给一个项目加星标。为什么他们要给项目加星标呢?GitHub 的文档作出了解释:你可以给一个仓库和主题加星标以保持对感兴趣的项目的跟踪和在你的新闻订阅中发现相关的内容。给一个项目加星标与将其加入书签的效果一样,并且还提供了一种向项目仓库的维护者展示赞赏的方式。星标的数量已经成为了项目流行程度的标志。当一个项目发布重大公告并获得相当的关注时,项目的星标数量会呈上升趋势。星标的数量指标并不反映软件的使用量。
-
-在社交化编程平台上的克隆 (Forks) 即将项目仓库复制一份在自己名下。仓库的非维护者可以在他们自己的克隆仓库中做修改并将修改通过拉取请求 (pull request) 的方式提交审核。克隆比星标更能反映软件社区的大小。开发者也可能为了保存一份代码副本而克隆一个项目以便在原始仓库消失后他们仍能访问代码。因为克隆功能在代码贡献工作流中的应用,克隆量是衡量开发社区的良好指标。克隆量通常也不反映非开发人员的使用,因为非开发人员一般不创建克隆。
-
-### 社交媒体
-
-包括 Facebook、Instagram、LinkIn、Reddit、Twtter等的社交媒体平台提供了相同兴趣的人们聚集的平台。采用社交媒体策略,开源项目可以通过在平台上设置相应的聚集空间来吸引对项目感兴趣的人们。通过这些社交媒体途径,开源项目可以分享项目新闻、更新、突出共献者和用户。这些社交媒体途径还可以用于认识那些本不会通过其他途径与项目互动的人。
-
-我在犹豫是否建议关注指标因为它与软件的真实使用量没有清晰的联系,并通常需要分析其中的积极、消极和中性的情绪。人们可能因为很多不同的原因对你的项目感到激动并想要在不实际使用的情况下关注它。然而与之前已经讨论过的指标一样,能够在社交媒体上吸收人群本就是项目受关注的整体指标。不同社交媒体平台的指标包括:
-
-- 关注与订阅的数量
-- 消息的数量
-- 活跃的消息作者的数量
-- 喜欢、分享、回复以及其他交互的数量
-
-### 网站分析与文档
-
-网站流量也是一个有用的指标。这一指标主要由你的服务范围以及市场营销活动影响而不是用户量。然而,我们还有一张王牌:我们的用户文档、教程、手册以及 API 文档。我们可以发现我们的网站以及文档中的什么主题更引人注意。文档的访问者数量应当大概随着软件的使用者数量增长而增长。因此我们可以通过网站的访问量探知对项目的一般性的兴趣并进一步通过观察文档的访问者观察用户风向。这些指标包括:
-
-- 网站访问者数量
-- 文档访问者的数量
-- 访问者在你的网站与文档上所花的时间
-
-### 活动
-
-活动指标可以在你主持与项目相关的活动时使用。这是建立社区的很好的方式。有多少人提交摘要在你的活动中发言?有多少人出席你的活动?不论是在线下活动还是线上活动中这可能都很有趣。当然,你如何推广你的活动可以很大程度上决定有多少人到场。同时你可以将自己的活动与人们出行的大型活动放在一起以方便人们参加你的活动。只要你使用一贯的活动策略,你可以通过演讲者提交与参会者注册的增加表征软件受欢迎程度与用户群的增加。
-
-你并不需要举办你自己的活动来收集有用的指标。如果你在开源活动中主持有关你项目的讨论,你可以衡量有多少人出席主要聚焦你的项目的会议。像 [FOSDEM][T1] 这样的活动,一些讨论特别聚焦开源项目的更新与公告,会议室中都挤满了人(像 FOSDEM 的所有会议一样)。
-
-你可以考虑如下指标:
-
-- 以你的项目为中心的活动的出席人数
-- 提交到以你的项目为中心的活动的演讲数量
-- 以你的项目为中心的演讲的出席人数
-
-### 关于估算开源软件使用的结论
-
-正如我们已经如上展现的,有很多指标可以反映软件使用的趋势,没有一个指标是完美的。在大多数情况下,这些指标可能被个人行为、系统设计和噪音所严重影响。因此,考虑到每一个指标的相对不确定性,我们建议你不要孤立地使用任何一个指标。但是如果你从不同的来源收集了一系列的指标,你应当能够探测到用户行为与软件使用的趋势。如果你有手段比较多个具有共性——比如相似的功能、强大的相互依赖以及由同一基金会托管和其他特征——的开源项目的同一组指标,你就可以提升你对用户行为基线的感知。
-
-需要注意的是,在本概述中,我们选择突出能够评估直接使用情况的指标。而大多数软件都依赖于其他各种软件包,如果我们不提及作为软件依赖链的一部分被间接使用也会严重影响软件使用与行为,这就是我们的疏忽。因此,我们建议将上下游依赖的合计数量作为你的分析中的另一层内容。
-
-最后,作为数据与指标的使用者,我们鼓励你认识到你的利益相关方的权利与责任。你发布的任何指标都有可能影响用户行为。最佳实践是总是一同分享你的背景信息——基础、来源、估算方法和其他关键上下文信息,这有助于其他人解释你的结果。
-
-我们感谢 [CHAOSS][T2] 社区在爱尔兰都柏林举行的 CHAOSScon EU 2022 上的富有洞察力的对话,上述对话激发这篇博文的想法。我们还要感谢审阅并帮助优化本文的 CHAOSS 社区的成员。
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/open-source-usage-metrics
-
-作者:[Georg Link][a]
-选题:[lkxed][b]
-译者:[CanYellow](https://github.com/CanYellow)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/georglink
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/18/5/metrics-project-success
-[2]: https://opensource.com/article/22/11/community-metrics
-
-[T1]: https://fosdem.org/
-[T2]: https://chaoss.community
From 35e2d4ced1f5d57e5ae396d2f5faf02cc2bc25a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Wed, 4 Jan 2023 19:41:51 +0800
Subject: [PATCH 193/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230104.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?=
=?UTF-8?q?=E2=AD=90=EF=B8=8F=20Learn=20to=20code=20with=20my=20retro=20co?=
=?UTF-8?q?mputer=20program.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...⭐️ Learn to code with my retro computer program.md | 210 ++++++++++++++++++
1 file changed, 210 insertions(+)
create mode 100644 sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md
diff --git a/sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md b/sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md
new file mode 100644
index 0000000000..3bb59671ba
--- /dev/null
+++ b/sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md
@@ -0,0 +1,210 @@
+[#]: subject: "Learn to code with my retro computer program"
+[#]: via: "https://opensource.com/article/23/1/learn-machine-language-retro-computer"
+[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Learn to code with my retro computer program
+======
+
+I teach university courses part-time, including a class about general computing topics, open to all majors. This is an introductory course that teaches students about how technology works, to remove the mystery around computing.
+
+While not a computer science course, one section of this course covers computer programming. I usually talk about programming in very abstract terms, so I don't lose my audience. But this year, I wanted my students to do some "hands-on" programming in an "old school" way. At the same time, I wanted to keep it simple, so everyone could follow along.
+
+I like to structure my lessons to show how you got from "there" to "here." Ideally, I would let my students learn how to write a simple program. Then I would pick it up from there to show how modern programming allows developers to create more complex programs. I decided to try an unconventional approach — teach the students about the ultimate in low-level programming: machine language.
+
+### Machine language programming
+
+Early personal computers like the Apple II (1977), TRS-80 (1977), and IBM PC (1981) let users enter programs with a keyboard, and displayed results on a screen. But computers didn't always come with a screen and keyboard.
+
+The Altair 8800 and IMSAI 8080 (both made in 1975) required users to enter a program using "switches and lights" on a panel. You would enter an instruction in machine language, using a bank of switches, and the machine would light up the ones and zeros of each binary instruction using LEDs.
+
+![Image of an Altair 8800 Computer.][1]
+
+Programming these early machines required knowing the machine language instructions, called opcodes, short for operation codes, to perform basic operations like adding two numbers or storing a value into the computer's memory. I wanted to show my students how programmers would enter a series of instructions and memory addresses by hand, using the switches and lights.
+
+However, using an actual Altair 8800 would be too much overhead in this class. I needed something simple that any beginner-level student could grasp. Ideally, I hoped to find a simple "hobby" retro computer that worked similarly to the Altair 8800, but I couldn't find a suitable "Altair-like" device for less than $100. I found several "Altair" software emulators, but they faithfully reproduce the Altair 8800 opcodes, and that was too much for my needs.
+
+I decided to write my own "educational" retro computer. I call it the Toy CPU. You can find it on my [GitHub repository][2], including several releases to play with. Version 1 was an experimental prototype that ran on [FreeDOS][3]. Version 2 was an updated prototype that ran on Linux with [ncurses][4]. Version 3 is a FreeDOS program that runs in graphics mode.
+
+### Programming the Toy CPU
+
+The Toy CPU is a very simple retro computer. Sporting only 256 bytes of memory and a minimal instruction set, the Toy CPU aims for simplicity while replicating the "switches and lights" programming model. The interface mimics the Altair 8800, with a series of eight LEDs for the counter (the "line number" for the program), instruction, accumulator (internal memory used for temporary data), and status.
+
+When you start the Toy CPU, it simulates "booting" by clearing the memory. While the Toy CPU is starting up, it also displays `INI` ("initialize") in the status lights at the bottom-right of the screen. The `PWR` ("power") light indicates the Toy CPU has been turned on.
+
+![Image of start screen for the toy cpu.][5]
+
+When the Toy CPU is ready for you to enter a program, it indicates `INP` ("input" mode) via the status lights, and starts you at counter 0 in the program. Programs for the Toy CPU always start at counter 0.
+
+In "input" mode, use the up and down arrow keys to show the different program counters, and press Enter to edit the instruction at the current counter. When you enter "edit" mode, the Toy CPU shows `EDT` ("edit" mode) on the status lights.
+
+![Image of the toy CPU editing screen.][6]
+
+The Toy CPU has a cheat sheet that's "taped" to the front of the display. This lists the different opcodes the Toy CPU can process:
+
+- `00000000` (`STOP`): Stop program execution.
+- `00000001` (`RIGHT`): Shift the bits in the accumulator to the right by one position. The value 00000010 becomes 00000001, and 00000001 becomes 00000000.
+- `00000010` (`LEFT`): Shift the bits in the accumulator to the left by one position. The value 01000000 becomes 10000000, and 10000000 becomes 00000000.
+- `00001111` (`NOT`): Binary NOT the accumulator. For example, the value 10001000 becomes 01110111.
+- `00010001` (`AND`): Binary AND the accumulator with the value stored at an address. The address is stored in the next counter.
+- `00010010` (`OR`): Binary OR the accumulator with the value stored at an address.
+- `00010011` (`XOR`): Binary XOR (“exclusive or”) the accumulator with the value stored at an address.
+- `00010100` (`LOAD`): Load (copy) the value from an address into the accumulator.
+- `00010101` (`STORE`): Store (copy) the value in the accumulator into an address.
+- `00010110` (`ADD`): Add the value stored at an address to the accumulator.
+- `00010111` (`SUB`): Subtract the value stored at an address from the accumulator.
+- `00011000` (`GOTO`): Go to (jump to) a counter address.
+- `00011001` (`IFZERO`): If the accumulator is zero, go to (jump to) a counter address.
+- `10000000` (`NOP`): No operation; safely ignored.
+
+When in "edit" mode, use the left and right arrow keys to select a bit in the opcode, and press `Space`to flip the value between off (0) and on (1). When you are done editing, press `Enter`to go back to "input" mode.
+
+![Image of the toy CPU input mode screen.][7]
+
+### A sample program
+
+I want to explore the Toy CPU by entering a short program that adds two values, and stores the result in the Toy's memory. Effectively, this performs the arithmetic operation **A+B=C**. To create this program, you only need a few opcodes:
+
+- `00010100` (`LOAD`): Load (copy) the value from an address into the accumulator.
+- `00010110` (`ADD`): Add the value stored at an address to the accumulator.
+- `00010101` (`STORE`): Store (copy) the value in the accumulator into an address.
+- `00000000` (`STOP`): Stop program execution.
+
+The `LOAD`, `ADD`, and `STORE` instructions require a memory address, which will always be in the next counter location. For example, the first two instructions of the program are:
+
+```
+counter 0: 00010100
+counter 1: some memory address where the first value A is stored
+```
+
+The instruction in counter 0 is the `LOAD`operation, and the value in counter 1 is the memory address where you have stored some value. The two instructions together copy a value from memory into the Toy's accumulator, where you can work on the value.
+
+Having loaded a number **A** into the accumulator, you need to add the value **B** to it. You can do that with these two instructions:
+
+```
+counter 2: 00010110
+counter 3: a memory address where the second value B is stored
+```
+
+Say that you loaded the value 1 (**A**) into the accumulator, then added the value 3 (**B**) to it. The accumulator will now have the value 4. Now you need to copy the value 4 into another memory address (**C**) with these two instructions:
+
+```
+counter 4: 00010101
+counter 5: a memory address (C) where we can save the new value
+```
+
+Having added the two values together, you can now end the program with this instruction:
+
+```
+counter 6: 00000000
+```
+
+Any instructions after counter 6 are available for the program to use as stored memory. That means you can use the memory at counter 7 for the value **A**, the memory in counter 8 for the value **B**, and the memory at counter 9 for the stored value **C**. You need to enter these separately into the Toy:
+
+```
+counter 7: 00000001 (1)
+counter 8: 00000011 (3)
+counter 9: 00000000 (0, will be overwritten later)
+```
+
+Having figured out all the instructions and the memory locations for **A**, **B**, and **C**, you can now enter the full program into the Toy. This program adds the values 1 and 3 to get 4:
+
+```
+counter 0: 00010100
+counter 1: 00000111 (7)
+counter 2: 00010110
+counter 3: 00001000 (8)
+counter 4: 00010101
+counter 5: 00001001 (9)
+counter 6: 00000000
+counter 7: 00000001 (1)
+counter 8: 00000011 (3)
+counter 9: 00000000 (0, will be overwritten later)
+```
+
+To run the program, press the `R` key when in "input" mode. The Toy CPU will show `RUN` ("run" mode) in the status lights, and execute your program starting at counter 0.
+
+The Toy has a significant delay built into it, so you can watch the Toy execute each step in the program. You should see the counter move from 00000000 (0) to 00000110 (6) as the program progresses. After counter 1, the program loads the value 1 from memory location 7, and the accumulator updates to 00000001 (1). After counter 3, the program will add the value 3 and update the accumulator to show 00000100 (4). The accumulator will remain that way until the program stores the value into memory location 9 after counter 5 then ends at counter 6.
+
+![Image of the Toy in RUN mode.][8]
+
+### Exploring machine language programming
+
+You can use the Toy to create other programs and further explore machine language programming. Test your creativity by writing these programs in machine language.
+
+### A program to flash the lights on the accumulator
+
+Can you light up the right four bits on the accumulator, then the left four bits, then all of the bits? You can write this program in one of two ways:
+
+A straightforward approach would be to load three values from different memory addresses, like this:
+
+```
+counter 0: LOAD
+counter 1: "right"
+counter 2: LOAD
+counter 3: "left"
+counter 4: LOAD
+counter 5: "all"
+counter 6: STOP
+counter 7: 00001111 ("right")
+counter 8: 11110000 ("left")
+counter 9: 11111111 ("all")
+```
+
+Another way to write this program is to experiment with the NOT and OR binary operations. This results in a smaller program:
+
+```
+counter 0: LOAD
+counter 1: "right"
+counter 2: NOT
+counter 3: OR
+counter 4: "right"
+counter 5: STOP
+counter 6: 00001111 ("right")
+```
+
+### Count down from a number
+
+You can use the Toy as a countdown timer. This program exercises the IFZERO test, which will jump the program to a new counter only if the accumulator is zero:
+
+```
+counter 0: LOAD
+counter 1: "initial value"
+counter 2: IFZERO (this is also the "start" of the countdown)
+counter 3: "end"
+counter 4: SUB
+counter 5: "one"
+counter 6: GOTO
+counter 7: "start"
+counter 8: STOP
+counter 9: 00000111 ("initial value")
+counter 10: 00000001 ("one")
+```
+
+The Toy CPU is a great way to learn about machine language. I used the Toy CPU in my introductory course, and the students said they found it difficult to write the first program, but writing the next one was much easier. The students also commented that writing programs in this way was actually fun, and they learned a lot about how computers actually work. The Toy CPU is educational and fun!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/learn-machine-language-retro-computer
+
+作者:[Jim Hall][a]
+选题:[lkxed][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/jim-hall
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/2022-12/MITS_Altair_8800_Computer_%281975%29.png
+[2]: https://github.com/freedosproject/toycpu
+[3]: https://opensource.com/downloads/guide-using-freedos
+[4]: https://opensource.com/article/21/8/ncurses-linux
+[5]: https://opensource.com/sites/default/files/2022-12/toycpu.png
+[6]: https://opensource.com/sites/default/files/2022-12/edit0-load.png
+[7]: https://opensource.com/sites/default/files/2022-12/input0-load.png
+[8]: https://opensource.com/sites/default/files/2022-12/run-3.png
From 18edb3f8b1c8edc0213501dc83762fef3f24b10c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Wed, 4 Jan 2023 19:42:26 +0800
Subject: [PATCH 194/266] =?UTF-8?q?Rename=2020230104.0=20=E2=AD=90?=
=?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn=20to=20co?=
=?UTF-8?q?de=20with=20my=20retro=20computer=20program.md=20to=2020230104.?=
=?UTF-8?q?0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn=20to=20code=20?=
=?UTF-8?q?with=20my=20retro=20computer=20program.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ram.md => 20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename sources/tech/{20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md => 20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md} (100%)
diff --git a/sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md b/sources/tech/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md
similarity index 100%
rename from sources/tech/20230104.0 ⭐️⭐️⭐️ Learn to code with my retro computer program.md
rename to sources/tech/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md
From 2071b80a4da3f7b4cd164255f61ad85c094f9e1f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Wed, 4 Jan 2023 22:59:59 +0800
Subject: [PATCH 195/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020230104.1=20=E2=AD=90=EF=B8=8F=20Official=20Fedora=20?=
=?UTF-8?q?Budgie=20&=20Sway=20Spins=20to=20Arrive=20With=20Fedora=2038=20?=
=?UTF-8?q?Release.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...Sway Spins to Arrive With Fedora 38 Release.md | 70 +++++++++++++++++++
1 file changed, 70 insertions(+)
create mode 100644 sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md
diff --git a/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md b/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md
new file mode 100644
index 0000000000..d98e76ba14
--- /dev/null
+++ b/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md
@@ -0,0 +1,70 @@
+[#]: subject: "Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release"
+[#]: via: "https://news.itsfoss.com/fedora-budgie-sway-official/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release
+======
+
+Two new Fedora spins to make a debut with Fedora 38 release.
+
+![Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release][1]
+
+We were expecting this to happen with Fedora 37, but it is finally happening with Fedora 38!
+
+Back in May 2022, **Joshua Strobl,** the lead developer of the Budgie project, [announced][2] that Budgie was submitted for inclusion in Fedora.
+
+Sadly, we didn't see any signs of an official [Fedora spin][3] release soon after that, even though it made it into the Fedora repositories during [Fedora 37 release][4].
+
+**But now.**
+
+With Fedora 38 release, it looks like we will get an official spin for [Budgie][5], alongside a spin with the [Sway][6] window manager.
+
+Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][7]Unlocator![][8]
+
+### Fedora Budgie and Sway
+
+In a [recent meeting][9], Fedora’s Engineering and Steering Committee (FESCo) voted on including official Fedora spins for Budgie and Sway window manager with the release of Fedora 38.
+
+**What can we expect?:** According to the initial change proposals for Budgie and Sway, we can expect plenty of things to happen.
+
+**In the case of Budgie:**
+
+- Fedora 38 will feature Budgie with a core set of applications, such as GNOME Software for updates/package management, a text editor, a web browser, and a terminal.
+- It will also feature GTK theming across the system using [Materia GTK][10] and [Papirus][11] icon themes.
+- The Budgie spin will also feature lightdm + slick-gtk-greeter for a more intuitive user greeting experience.
+
+**In the case of Sway spin:** It will aim to provide a minimal experience and will only include a few elements on top of the default configuration.
+
+**When to expect these?:** As the development of Fedora 38 picks up over the coming months, you can expect the spins to appear during April 2023. Of course, there will be separate ISO files with Budgie and Sway pre-installed.
+
+So, I think it would be fascinating to see the experience of Budgie with Fedora, especially when the development of Budgie seems to be going through some interesting changes.
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/fedora-budgie-sway-official/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/fedora-budgie-sway-spins-arrive.png
+[2]: https://www.reddit.com/r/Fedora/comments/uq3gah/budgie_desktop_has_now_been_submitted_for/
+[3]: https://spins.fedoraproject.org
+[4]: https://news.itsfoss.com/fedora-37-release/
+[5]: https://blog.buddiesofbudgie.org
+[6]: https://swaywm.org
+[7]: https://unlocator.com/favicon.ico
+[8]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg
+[9]: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/RNJZUX3ZI34DIX6E4PVDKYQWCOFDQ4UY/
+[10]: https://github.com/nana-4/materia-theme
+[11]: https://github.com/PapirusDevelopmentTeam/papirus-icon-theme
From ae1b9a54601a4c1a6d7511142f3b1db33d234834 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Thu, 5 Jan 2023 08:45:45 +0800
Subject: [PATCH 196/266] translated
---
...d Siri in Works for Home Assistant Platform.md | 80 -------------------
...d Siri in Works for Home Assistant Platform.md | 80 +++++++++++++++++++
2 files changed, 80 insertions(+), 80 deletions(-)
delete mode 100644 sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
create mode 100644 translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
diff --git a/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
deleted file mode 100644
index 4e14013469..0000000000
--- a/sources/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
+++ /dev/null
@@ -1,80 +0,0 @@
-[#]: subject: "An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform"
-[#]: via: "https://news.itsfoss.com/open-source-assistant/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform
-======
-
-An open-source assistant to replace Google, Alexa, Siri?
-
-![An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform][1]
-
-**Home Assistant** is an open-source smart home platform that focuses on providing local control and privacy to its users. It can run off a Raspberry Pi or even a local server.
-
-They also have a subscription service for access to additional features such as support for Alexa and Google Assistant, which is managed by a company called '[Nabu Casa][2]'.
-
-> 💡 The company is led by [Paulus Schoutsen][3], the founder of Home Assistant.
-
-In a [blog][4] last week, Paulus announced **a new open-source project that aims to offer a voice assistant without an active internet connection** or any other big tech voice assistants.
-
-So, an _open-source challenger to Google, Alexa, and Siri?_😲
-
-Let's see what this is all about, then.
-
-**What is it?:** This will be a part of the Home Assistant application and will offer the ability to run voice commands locally to control the connected smart devices.
-
-Paulus also asserts that their most important priority is to support different languages, he says:
-
-> People need to be able to speak in their own language, as that is the most accessible and only acceptable language for a voice assistant for the smart home.
-
-To fuel this endeavor, the creator of Rhasspy, [Mike Hansen][5], has been roped in to make this possible.
-
-For those of you who don't know, [Rhasspy][6] is another open-source software that specializes in providing a fully offline voice assistant that is backed by its community of users.
-
-If you ask me, I feel that this feature of Home Assistant will be powered by Rhasspy, which is a good thing.
-
-_Why reinvent something that already exists? It's better to improve upon it._
-
-**What to expect?:** Initially, the voice assistant won't be able to do things you might expect. So, things like making a web search, making calls, playing voice games, etc., are a no-go.
-
-What it will focus on instead are the **basics of what a voice assistant should be**; this was done to make sure that the work ahead of them was manageable.
-
-They aim to start with a few actions and then build up language models around them.
-
-In its current state, Home Assistant supports 62 different languages in its user interface. They plan to add support for all these languages with their voice assistant.
-
-**When to expect?:** They have already started work on this by building a [collection of intent matching sentences][7] for every language.
-
-What this means is that the community can contribute to the development of the voice assistant by adapting the commands for smart devices to their respective native languages.
-
-They aim for a release sometime in **2023** and have mentioned that it will be the '_year of voice_'.
-
-I think an open-source voice assistant that works offline can be a very useful thing to have; it lets you be free of any tracking from big tech.
-
-💬 _With the added benefit of having a large community behind its development of it, what's not to like?_
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/open-source-assistant/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/open-source-home-assistant-in-works.png
-[2]: https://www.nabucasa.com
-[3]: https://twitter.com/balloob
-[4]: https://www.home-assistant.io/blog/2022/12/20/year-of-voice/
-[5]: https://synesthesiam.com
-[6]: https://rhasspy.readthedocs.io
-[7]: https://github.com/home-assistant/intents
diff --git a/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
new file mode 100644
index 0000000000..adba1b18db
--- /dev/null
+++ b/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
@@ -0,0 +1,80 @@
+[#]: subject: "An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform"
+[#]: via: "https://news.itsfoss.com/open-source-assistant/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Google、Alexa 和 Siri 的开源替代品 Home Assistant 平台
+======
+
+一个开源助手可以取代谷歌、Alexa 和 Siri?
+
+![An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform][1]
+
+**Home Assistant** 是一个开源的智能家居平台,专注于为用户提供本地控制和隐私。它可以从树莓派或甚至本地服务器上运行。
+
+他们还有一个订阅服务,可以获得额外的功能,如支持 Alexa 和谷歌助理,它由一家名为 “[Nabu Casa][2]” 的公司管理。
+
+> 💡 该公司由 Home Assistant 的创始人 [Paulus Schoutsen][3] 领导。
+
+在上周的[博客][4]中,Paulus 宣布了**一个新的开源项目,旨在提供一个没有主动互联网连接的语音助手**或任何其他大型科技语音助手。
+
+这是_一个对 Google、Alexa 和 Siri 的开源挑战者?_ 😲
+
+让我们看看这到底是怎么回事。
+
+**它是什么?:**这将是 Home Assistant 应用的一部分,将提供在本地运行语音命令的能力,以控制连接的智能设备。
+
+Paulus 还断言,他们最重要的优先事项是支持不同的语言,他说:
+
+> 人们需要能够用自己的语言说话,因为对于智能家居的语音助手来说,这是最容易接受和唯一可以接受的语言。
+
+为了推动这一努力,Rhasspy 的创造者 [Mike Hansen][5] 已经被拉来实现这一目标。
+
+对于那些不知道的人来说,[Rhasspy][6] 是另一个开源软件,专门提供一个由其用户社区支持的完全离线的语音助手。
+
+如果你问我,我觉得 Home Assistant 的这个功能将由 Rhasspy 提供,这是一件好事。
+
+_为什么要重新发明已经存在的东西?最好是在它的基础上进行改进。_
+
+**可以期待什么?:**最初,语音助手将不能做你可能期待的事情。因此,像进行网络搜索、打电话、玩语音游戏等,都是不可能的。
+
+它所关注的反而是**语音助手应该有的基本功能**。这样做是为了确保他们面前的工作是可控的。
+
+他们的目标是从几个动作开始,然后围绕它们建立语言模型。
+
+在目前的状态下,Home Assistant 在其用户界面上支持 62 种不同的语言。他们计划用他们的语音助手增加对所有这些语言的支持。
+
+**何时期待?:**他们已经开始了这方面的工作,为每种语言建立一个[意图匹配句子集合][7]。
+
+这意味着社区可以通过将智能设备的命令改编成各自的母语来为语音助手的发展做出贡献。
+
+他们的目标是在 **2023** 年的某个时候发布,并提到这将是“_语音年_”。
+
+我认为一个可以离线工作的开源语音助手可以是一个非常有用的东西。它可以让你不受大科技公司的任何追踪。
+
+💬 _还有一个额外的好处是,它的开发背后有一个庞大的社区,有什么理由不喜欢呢?_
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/open-source-assistant/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/open-source-home-assistant-in-works.png
+[2]: https://www.nabucasa.com
+[3]: https://twitter.com/balloob
+[4]: https://www.home-assistant.io/blog/2022/12/20/year-of-voice/
+[5]: https://synesthesiam.com
+[6]: https://rhasspy.readthedocs.io
+[7]: https://github.com/home-assistant/intents
From fd0567f4e4a7aed10effd413da5ebf040b430bd1 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Thu, 5 Jan 2023 08:50:34 +0800
Subject: [PATCH 197/266] translating
---
.../tech/20230102.0 ⭐️ How to read and write files in Rust.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md b/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md
index 0ec7cecb0a..ac4a7ee73e 100644
--- a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md
+++ b/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/23/1/read-write-files-rust"
[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 64e20ecee289d565cc24bbf2a12a8464cd2a6dfd Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Thu, 5 Jan 2023 15:03:57 +0800
Subject: [PATCH 198/266] RP
@geekpi
https://linux.cn/article-15415-1.html
---
...Buzzing Noise Coming from Speakers in Linux.md | 39 ++++++++++---------
1 file changed, 21 insertions(+), 18 deletions(-)
rename {translated/tech => published}/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md (64%)
diff --git a/translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md b/published/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
similarity index 64%
rename from translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
rename to published/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
index 6e2f08c773..70767163ae 100644
--- a/translated/tech/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
+++ b/published/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md
@@ -3,16 +3,18 @@
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15415-1.html"
-我如何修复 Linux 中扬声器发出的嗡嗡声
+如何修复 Linux 中扬声器发出的嗡嗡声
======
-我使用笔记本电脑很长时间了,但最近才切换到桌面设置,以便在 It's FOSS 进行远程工作。
+![][0]
-我注意到扬声器不断发出嗡嗡声。这很烦人,让我头疼。我开始着手解决这个问题。了解问题的根本原因非常有趣。
+我使用笔记本电脑很长时间了,但最近才切换到台式机上,以便进行远程工作。
+
+我注意到我的扬声器不断发出嗡嗡声。这很烦人,让我头疼。我开始着手解决这个问题。了解问题的根本原因非常有趣。
我将分享我在 Linux 中修复扬声器嗡嗡声的经验。我发现它可以在同一硬件上对 Ubuntu、Debian 和 Pop OS 都有效。
@@ -20,9 +22,9 @@
**在尝试修复之前**
-我试图让事情变得容易安全地遵循。你尝试临时修复,如果有效,则将更改永久化。但是,最好使用 Timeshift 制作系统快照。如果你在出现故障时很容易惊慌失措,你可以将系统恢复到之前的状态。
+我试图让事情变得容易安全地遵循。你可以尝试临时修复,如果有效,则将更改永久化。但是,最好使用 Timeshift 制作系统快照。如果你在出现故障时很容易惊慌失措,你可以将系统恢复到之前的状态。
-另外,检查你的声卡。在我的例子中,它是 snd_hda_intel。对于 USB 卡,它可以是 snd_usb_audio。你必须根据你的声卡更改命令。
+另外,检查你的声卡。在我的例子中,它是 `snd_hda_intel`。对于 USB 卡,它可以是 `snd_usb_audio`。你必须根据你的声卡更改命令。
```
cat /proc/asound/modules
@@ -32,7 +34,7 @@ cat /proc/asound/modules
梳理了无数的论坛帖子和网站后,我了解了问题的根本原因。这是因为扬声器中的电容放电。它可以通过关闭声卡的省电设置来解决。
-通过关闭省电,你允许系统在这些电容放电时为其充电。这类似于在不断充电时使用电话。
+通过关闭省电,你允许系统在这些电容放电时为其充电。这类似于在一直充电时使用电话。
你可以使用给定的命令检查你的系统是否启用了声卡的省电设置:
@@ -42,13 +44,13 @@ cat /sys/module/snd_hda_intel/parameters/power_save
![power saving setting in sound card making buzzing sound in linux][1]
-如果你像我一样输出是 1,那么省电功能已打开。因此,让我们看一下方案。
+如果你像我一样输出是 `1`,那么省电功能已打开。因此,让我们看一下方案。
不用担心。这不会显著影响你的电池百分比,因为所示方法仅适用于声卡。
### 尝试修复嗡嗡声问题(临时)
-我之所以包括临时方法是为了确定嗡嗡声是由于电容放电引起的还是是否存在任何严重的硬件问题。
+我之所以包括临时方法是为了确定嗡嗡声是由于电容放电引起的,还是存在严重的硬件问题。
如果此临时方案有效,你可以继续使用永久方案。
@@ -64,7 +66,7 @@ sudo su
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
```
-如果你使用的是 **USB 声卡**,则必须将 `snd_hda_intel` 与 `snd_usb_audio` 互换,如下所示:
+如果你使用的是 **USB 声卡**,则必须将 `snd_hda_intel` 替换为 `snd_usb_audio`,如下所示:
```
echo 0 > /sys/module/snd_usb_audio/parameters/power_save
@@ -76,7 +78,7 @@ echo 0 > /sys/module/snd_usb_audio/parameters/power_save
在这里,我将对内核参数进行更改。
-将你的工作目录更改为 /etc/modprobe.d:
+将你的工作目录更改为 `/etc/modprobe.d`:
```
cd /etc/modprobe.d
@@ -96,13 +98,13 @@ options snd_hda_intel power_save=0
![fix buzzing sound in linux][2]
-对于 **USB 声卡**,你可以使用 `snd_usb_audio`:
+对于 **USB 声卡**,你需要使用 `snd_usb_audio`:
```
options snd_usb_audio power_save=0
```
-现在,[保存更改并退出 Nano 文本编辑器][3]并按 Ctrl+X 键。重启你的系统,你就可以享受无噪音的工作空间。
+现在,[保存更改并退出 Nano 文本编辑器][3] 并按 `Ctrl+X` 键。重启你的系统,你就可以享受无噪音的工作空间。
### 总结
@@ -119,12 +121,13 @@ via: https://itsfoss.com/buzzing-noise-speaker-linux
作者:[Sagar Sharma][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/sagar/
[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/wp-content/uploads/2022/11/power-saving-setting-in-sound-card-making-buzzing-sound-in-linux.png
-[2]: https://itsfoss.com/wp-content/uploads/2022/11/fix-buzzing-sound-in-linux.png
+[1]: https://itsfoss.com/content/images/wordpress/2022/11/power-saving-setting-in-sound-card-making-buzzing-sound-in-linux.png
+[2]: https://itsfoss.com/content/images/wordpress/2022/11/fix-buzzing-sound-in-linux.png
[3]: https://linuxhandbook.com/nano-save-exit/
+[0]: https://img.linux.net.cn/data/attachment/album/202301/05/150250sqbeq35bh699r157.jpg
\ No newline at end of file
From 6b0d81dd047918d54e800d2315e43d6acc49d8d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 5 Jan 2023 19:44:30 +0800
Subject: [PATCH 199/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230105.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=206?=
=?UTF-8?q?=20tips=20for=20building=20an=20effective=20DevOps=20culture.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...6 tips for building an effective DevOps culture.md | 101 ++++++++++++++++++
1 file changed, 101 insertions(+)
create mode 100644 sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md
diff --git a/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md
new file mode 100644
index 0000000000..394c1d810e
--- /dev/null
+++ b/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md
@@ -0,0 +1,101 @@
+[#]: subject: "6 tips for building an effective DevOps culture"
+[#]: via: "https://opensource.com/article/23/1/tips-effective-devops-culture"
+[#]: author: "Yauhen Zaremba https://opensource.com/users/yauhen-zaremba"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+6 tips for building an effective DevOps culture
+======
+
+Why would you want to build a [DevOps][1] culture? There are many benefits to the streamlined collaboration of the development and operations teams. A major goal is efficiency: Increasing the speed of new software deployments and reducing idle time for workers. Fostering trust between colleagues can improve employee satisfaction, produce new innovations, and positively impact profitability.
+
+[DevOps][2] is a broad philosophy with a range of interpretations. In other words, you can visit 40 companies and find 40,000 different ideas about using DevOps effectively in the workplace. This diversity of opinion is actually a good thing–so many perspectives are useful for building stronger teams. This guide will look at the top tips for encouraging better collaboration between colleagues within a DevOps culture.
+
+Each section offers a different aspect of DevOps culture and looks at ways to introduce it into your workforce.
+
+![DevOps includes collaboration, workflow, infosec, and iteration.][3]
+
+### Continuous development of processes
+
+This core tenet of DevOps culture sets it apart from many other types of workplace ethos. The DevOps philosophy says that it is essential to make mistakes because it shows you are trying out new ideas.
+
+The heart of DevOps culture is a commitment to evolving creativity. Practically, that means not yelling at your direct reports when test results show that things were better before they changed it. It means recognizing that progress is not linear and success is never a straight line.
+
+DevOps expert [Gene Kim][4] advocates for risk-taking and experimentation. This implies letting your team work on unusual tasks to find new insights.
+
+Should your organization be profit-driven? Can you allow your teams to try something new? I'm talking about something other than unrelated passion projects. Continuous process development means being open to upgrading present methods. Great sales leaders appreciate that results matter more than presenteeism, so it is always crucial to focus on how teams are working rather than how much.
+
+### Readily give feedback and actively seek it
+
+Increased trust between individuals is another key feature of a thriving DevOps culture. Whether your staff is learning how to build affiliate network contacts or trying to design their next [UX][5] survey, everyone should be open to feedback on their work. But this will never happen until your teammates respect each other's opinions and trust that feedback is given in a spirit of good intention.
+
+This culture may sound impossible to cultivate; indeed, some companies will struggle to achieve this more than others. Granted, a large part of the success of giving and receiving feedback depends on the personalities of your employees. It is possible to screen for this during the recruitment process.
+
+Before you expect staff to readily offer feedback to colleagues and seek it in the first place, you should lead by example. Members of the C-suite should be modeling this behavior, openly asking members of the company to pose probing questions about their strategic decisions, and providing balanced feedback.
+
+![DevOps is the intersection of development, quality assurance, and operations][6]
+
+### Always look for improvements
+
+Building on increased intellectual trust between colleagues, your team should look for ways to improve its work. The nature of DevOps means the software development team will be producing deployments more rapidly than with traditional approaches.
+
+However, this culture of openness to improvement can positively impact departments beyond development and operations. Ask yourself what other areas of your business could do with a burst of optimism.
+
+Be on the lookout for training and upskilling opportunities. Even if a training course is less salient than advertised, the chance to network with industry professionals and build contacts for the future can only enhance the diversity of ideas within your organization.
+
+### Save ideas for later development
+
+Part of your DevOps toolchain should be a heavily used account on [Git][7]. You can use Git as a common repository for scripts produced during software development and other related projects. Known as "version control," Git allows programmers to save iterations of their work and reuse or improve the work of others.
+
+You're aiming for the ability to keep hold of good ideas for future use. A certain pathway did not work out for specific reasons. However, just because that set of ideas was wrong for the time it was conceived does not mean it can never become helpful in the future.
+
+As the entire focus of DevOps rests on end-to-end ownership of software in production, saving iterations of developments truly supports this principle. You want to see an improved focus on and commitment to the software testing project at hand.
+
+A simple way to incorporate this is to request that developers include ideas for future work in the developer contract and final project report. Make sure tech services managers know they should ask for examples of side-branching ideas that cropped up during the build. The more minds aware of these little innovations, the more likely someone will remember one when needed.
+
+### Sit close together (physically or virtually)
+
+The goal is to share a common understanding of one another's job roles and how they interrelate. You can achieve this in a few simple ways, summarized by three words: Sit close together. Invite other teams to your meetings and share user feedback reports in their entirety. Have lunch together, plan virtual happy hours together, and generally make sure your colleagues are in close proximity. About 90% of teams with a mature DevOps protocol report a clear understanding of their responsibilities to other teams compared to only about 46% of workers in immature DevOps teams.
+
+Although it can be tempting to form cliques with like-minded folk and only hang out with staff hired to carry out the same tasks as you, this is terrible for the business as a whole. Whether you like it or not, all humans are multi-faceted and capable of contributing their unique talents to a whole host of scenarios.
+
+The idea of closer collaboration is to honor the ability of anyone to suggest improvements to the products or work processes going on around them. If you only ever sit at a distance from the other departments within the company, you will miss countless opportunities to share intelligent ideas. After all, you often learn best in the free flow of ideas during a conversation.
+
+### Commit to automation
+
+You should be looking to automate mundane and repetitive tasks in the name of efficiency and process acceleration. Every industry has boring–and quite frankly, silly–exercises carried out daily or weekly.
+
+Whether this is manually copying data from one page to another or typing out audio transcripts by hand, staff at every level should insist that machines take on such burdens where possible. The reality is automation technology advances every single year, and operational processes should, too. [Automation testing][8] is so crucial to DevOps that it is the second principle of the CALMS framework (the "C" of which stands for "culture").
+
+How can you make this happen? Invite staff to openly express which aspects of their job they feel could be automated and then–here is the crucial part–support the facilities needed to automate them. That might mean a $600 annual subscription to a software program, a complete enterprise application modernization, or two days of developers' time to build a new tool to use in-house.
+
+Either way, you should assess the benefits of automation and consider how much time you could save for everyone. DevOps statistics continually indicate just how much better off modern companies are by integrating these beneficial principles year after year.
+
+### Explore new ways of working successfully
+
+A culture shift doesn't happen overnight. The sooner you start, though, the sooner you see results. In my experience, people embrace change when it's a genuine improvement on what has gone before. DevOps provides a framework for such improvements. Whether you're just getting started with DevOps in your organization or simply want to improve your existing culture, consider the above points and how they relate to your organization's future.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/tips-effective-devops-culture
+
+作者:[Yauhen Zaremba][a]
+选题:[lkxed][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/yauhen-zaremba
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/resources/devops
+[2]: https://opensource.com/article/22/2/devops-documentation-maturity
+[3]: https://opensource.com/sites/default/files/2022-12/devop.png
+[4]: https://enterprisersproject.com/user/gene-kim
+[5]: https://opensource.com/article/22/7/awesome-ux-cli-application
+[6]: https://opensource.com/sites/default/files/2022-12/devop-venn.png
+[7]: https://opensource.com/article/22/11/git-concepts
+[8]: https://opensource.com/article/20/7/open-source-test-automation-frameworks
From de10c1ad67e3184228ffa268e694ba2666821125 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 5 Jan 2023 19:44:56 +0800
Subject: [PATCH 200/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020230105.2=20=E2=AD=90=EF=B8=8F=20Nitrux=202.6.0=20Tak?=
=?UTF-8?q?es=20Bold=20Steps=20Drops=20apt,=20Adds=20Flathub=20and=20Pipew?=
=?UTF-8?q?ire.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... Steps Drops apt, Adds Flathub and Pipewire.md | 81 +++++++++++++++++++
1 file changed, 81 insertions(+)
create mode 100644 sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md
diff --git a/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md b/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md
new file mode 100644
index 0000000000..2a81845075
--- /dev/null
+++ b/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md
@@ -0,0 +1,81 @@
+[#]: subject: "Nitrux 2.6.0 Takes Bold Steps: Drops apt, Adds Flathub and Pipewire"
+[#]: via: "https://debugpointnews.com/nitrux-2-6-0-release/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Nitrux 2.6.0 Takes Bold Steps: Drops apt, Adds Flathub and Pipewire
+======
+
+![][1]
+
+**Nitrux 2.6.0 arrives with Flathub, Pipewire by default, latest Kernel and KDE framework.**
+
+![Nitrux 2.6.0 Desktop][2]
+
+[Nitrux Linux][3]is based on Debian, which features a modified version of the KDE Plasma desktop called NX Desktop. This unique Linux distribution brings its own set of Nitrux applications built upon Maui kit and Qt. Nitrux is systemd-free and uses OpenRC as an init system. With all these unique features and stunning looks, it is one of the best Linux distributions today.
+
+Nitrux 2.6.0 is bumped up to be a considerable major version due to critical updates since its prior release, 2.5.1 in December.
+
+### Nitrux 2.6.0: What’s New
+
+A major focus of this release is the introduction of the Plasma Wayland session in the SDDM display manager. It’s not default yet. But available as optional. X11 is still default. I believe in the next major release; the NItrux team can enable Wayland by default.
+
+In addition, the modern sound manager Pipewire is now default, as it was already standardized in Ubuntu and Fedora and feels stable. Thanks to Pipewire, your audio workflow will be much better.
+
+Nitrux 2.6.0 also enables the largest Flatpak app repo – Flathub, by default. That means you do not need to set up Flatpak & enable Flathub anymore manually. Installation of the Flatpak apps is now much easier.
+
+Other noteworthy changes include, Nitrux making the root (/) partition immutable to prevent it from breakage, the Samba package now part of Nitrux default install, and the Calamares installer getting a customized auto partition scheme.
+
+![Nitrux 2.6 install automatic partition][4]
+
+From the beginning, Nitrux prefers self-contained executables for its entire desktop components. The primary choice was the AppImage file format. You get Flathub set up by default in this release, whereas the popular apt package manager is now dropped. This might change some users’ workflow because the apt command won’t work; despite being based on Debian.
+
+Hence, the Nitrux team suggested using the Distrobox containers to set up the separate skeleton to be used with apt. However, it will be a little difficult for general users to understand the container, immutable root partition.
+
+![apt is not dropped][5]
+
+The irony is apt will be used during installation because Calamares needs it. However, it will be removed after installation is complete.
+
+> The Live ISO _includes APT and dpkg, but this is because Calamares needs them to complete the installation and will be removed from the installed system._Nitrux team
+
+At its core, Nitrux 2.6.0 features liqurix Kernel 6.1 aligned with gaming and multimedia. This version is powered by KDE Plasma 2.26.4, KDE Framework 5.101.0 and Qt 5.15.7 LTS.
+
+Detailed release notes are available [here][6] if you want to read more.
+
+### Download
+
+You can download this version from the following pages. However, there is no upgrade path available. Hence it is recommended to do a fresh installation.
+
+- [FOSS Torrents (Torrent)][7]
+- [Sourceforge (mirror)][8]
+- [OSDN (mirror)][9]
+
+Via [announcement][10]
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/nitrux-2-6-0-release/
+
+作者:[arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2023/01/nitrux-head.jpg
+[2]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6.0-Desktop.jpg
+[3]: https://nxos.org/
+[4]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6-install-automatic-partition.jpg
+[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Screenshot-from-2023-01-05-13-44-57.png
+[6]: https://nxos.org/notes/notes-nitrux-2-6-0
+[7]: https://fosstorrents.com/distributions/nitrux/
+[8]: https://sourceforge.net/projects/nitruxos/files/Release/ISO
+[9]: https://osdn.net/projects/nitrux/releases/p18379
+[10]: https://nxos.org/changelog/release-announcement-nitrux-2-6-0/
From 071a6ed30a6517e52a061a71ba35ae19bdb7cd86 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 5 Jan 2023 19:45:39 +0800
Subject: [PATCH 201/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020230105.3=20=E2=AD=90=EF=B8=8F=20Pinta=202.1=20Releas?=
=?UTF-8?q?e=20Introduces=20WebP=20Support.=20But=20You=20Can't=20Use=20It?=
=?UTF-8?q?=20Yet=20Unfortunately.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ort. But You Can't Use It Yet Unfortunately.md | 100 ++++++++++++++++++
1 file changed, 100 insertions(+)
create mode 100644 sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md
diff --git a/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md b/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md
new file mode 100644
index 0000000000..07be806ba7
--- /dev/null
+++ b/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md
@@ -0,0 +1,100 @@
+[#]: subject: "Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately"
+[#]: via: "https://news.itsfoss.com/pinta-2-1-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately
+======
+
+Pinta 2.1 comes with WebP support and various other useful improvements.
+
+![Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately][1]
+
+Pinta is a free and open-source drawing app for Linux that offers a ton of features in a relatively small package.
+
+It is one of the [best Linux tools for digital artists][2] available.
+
+Its last major release was in January 2022, introducing improved Hi DPI support, GTK 3 port, and [more][3].
+
+Marking 2023's first release, Pinta 2.1 promises to offer even further refinements.
+
+**Notice the new Pinta icon in the image above? Well, that's one of the changes.**
+
+Let's see how this release pans out.
+
+### 🆕 What's New in Pinta 2.1?
+
+![pinta 2.1][4]
+
+[Pinta 2.1][5] is offering plenty of new improvements; some notable ones include:
+
+- **WebP Support**
+- **Improved .ora Support**
+- **Enhanced Handles**
+- **Dark Mode**
+- **Improved File Dialog**
+- **Various Bug Fixes and Changes**
+
+**WebP Support:** Pinta finally has support for WebP files, but it does not come out of the box. For Linux users, the [webp-pixbuf-loader][6]**dependency is required to enable WebP support.**
+
+> 📋 Unfortunately, WebP support is not included in the Flatpak and Snap builds of Pinta 2.1. Even if you have that library installed on your system. So, you probably have to build it from the source or use WebP files on Windows/macOS only.
+
+**Improved .ora Support:** With Pinta 2.1, hidden layers are now round-tripped properly for .ora files.
+
+Furthermore, when you save a .ora file, a flattened image is now included in the archive.
+
+It is like this because it is required by the spec to accommodate the viewer software.
+
+**Enhanced Handles:** The selection move and shape control point handles are now more intuitive, especially when working on zoomed-in or small images.
+
+**Dark Mode:** Pinta has finally received full support for dark mode across the app; all icons, toolbars, dialogs, etc., are now in high-res SVG format.
+
+**Improved File Dialog:** The file dialog now uses MIME types on Linux, allowing valid image files with unknown extensions to be included in the image file filter.
+
+**Various Bug Fixes and Changes:** Apart from the changes I listed above, here are some that are also worth mentioning:
+
+- Upgraded to .NET 7.
+- New '**Transparency Mode**' in Gradient Tool.
+- Standard GTK about dialog.
+- The gradient tool now updates properly while drawing transparent colors.
+- The new screenshot command now uses the XDG portal.
+
+If you want to go deep into the technical details of the release, head to its [release notes][7].
+
+### 📥 Download Pinta 2.1
+
+Pinta 2.1 is available in the [Snap store][8], as well as on [Flathub][9]. The repositories include an outdated back, so you can safely ignore it.
+
+You can also try building it from the [source code][10] and explore other download options for Windows/macOS.
+
+[Download Pinta 2.1][11]
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/pinta-2-1-release/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/pinta-2-1-release.png
+[2]: https://itsfoss.com/best-linux-graphic-design-software/
+[3]: https://news.itsfoss.com/pinta-2-0-release/
+[4]: https://news.itsfoss.com/content/images/2023/01/Pinta_2.1.png
+[5]: https://www.pinta-project.com
+[6]: https://github.com/aruiz/webp-pixbuf-loader/
+[7]: https://github.com/PintaProject/Pinta/releases/tag/2.1
+[8]: https://snapcraft.io/pinta
+[9]: https://flathub.org/apps/details/com.github.PintaProject.Pinta
+[10]: https://github.com/PintaProject/Pinta
+[11]: https://www.pinta-project.com/releases/
+
From 4d505a2b62b51e1aeb92f1abe37e6cac04809b02 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Fri, 6 Jan 2023 08:50:25 +0800
Subject: [PATCH 202/266] translated
---
...What is Firefox ESR How to Install it in Ubuntu.md | 142 ------------------
...What is Firefox ESR How to Install it in Ubuntu.md | 142 ++++++++++++++++++
2 files changed, 142 insertions(+), 142 deletions(-)
delete mode 100644 sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
create mode 100644 translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
diff --git a/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
deleted file mode 100644
index 9a30bf0a2f..0000000000
--- a/sources/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
+++ /dev/null
@@ -1,142 +0,0 @@
-[#]: subject: "What is Firefox ESR? How to Install it in Ubuntu?"
-[#]: via: "https://itsfoss.com/firefox-esr-ubuntu/"
-[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-What is Firefox ESR? How to Install it in Ubuntu?
-======
-
-The snap version of Ubuntu is not to your liking? Don’t like constantly changing things with every Firefox release? You can try the Firefox ESR version if you value stability over features.
-
-### What is Firefox ESR?
-
-Firefox ESR is a special edition of Firefox browser that doesn’t necessarily get new features monthly as the regular edition but it provides a stable and secure browsing experience. This is suitable for enterprises, organizations and institutes where stability and core features matter more than shiny new features.
-
-Think of Firefox ESR as the long-term stable release of Linux distributions. They do not necessarily get brand-new features but they get regular security and maintenance updates. This gives the users a familiar and stable environment.
-
-#### Why should you care for Firefox ESR?
-
-Firefox releases a new version almost every month. It contains security and feature updates.
-
-But some people may not like the inclusion and removal of features. If, after an update, you keep wondering where did certain settings go or do not like things that are different than before, Firefox ESR could be worth a try.
-
-Basically, if you value stability more than new features, Firefox ESR is for you. This is the same version of Firefox that ships with Debian, which is known for being one of the most stable distros you can get in the market.
-
-Let me show you how to get Firefox ESR on Ubuntu. **_You can have both Firefox and Firefox-ESR versions installed simultaneously. There is no visual difference in their logos so you have to pay attention to which Firefox version you are opening._**
-
-### Installing Firefox ESR in Ubuntu
-
-Before I jump to the installation part, let me share what’s the version difference between regular Firefox and Firefox-ESR. While writing,
-
-- Firefox is running at version **107.0-2**.
-- Firefox-ESR is currently having **102.5.0esr**.
-
-So if that’s fine for you, let’s look at the first method.
-
-#### Method 1: Install Firefox-ESR using PPA
-
-Firefox-ESR is not available in the default repository of Ubuntu, so you can use the PPA.
-
-PPA is nothing but a repository being maintained by individual techies or developers to have what the default repository does not.
-
-And if you want to learn more about PPA, I would recommend checking our other guide that explains [how you can use PPA on Linux.][1]
-
-Open your terminal and use the given command to add PPA for Firefox-ESR:
-
-```
-sudo add-apt-repository ppa:mozillateam/ppa
-```
-
-And press Enter to confirm you want to add PPA:
-
-![add firefox esr repository in ubuntu][2]
-
-Once done, you will have to update the repository index in Ubuntu to take effect from the changes:
-
-```
-sudo apt update
-```
-
-And now, you can install Firefox-ESR by using the given command:
-
-```
-sudo apt install firefox-esr
-```
-
-Next, you can use the given command to check the installed version of Firefox-ESR in your system:
-
-```
-firefox-esr -v
-```
-
-![check installed version of firefox esr in ubuntu][3]
-
-##### Uninstalling Firefox-ESR from Ubuntu
-
-If the ESR felt too outdated for your work or for any other reason you want to remove it from your system, you can follow the steps to remove the Firefox-ESR package and the repository.
-
-First, let’s remove the Firefox-ESR package using the following:
-
-```
-sudo apt remove firefox-esr
-```
-
-Now, you can use the given command to [remove PPA from Ubuntu][4]:
-
-```
-sudo add-apt-repository --remove ppa:mozillateam/ppa
-```
-
-And that’s it!
-
-#### Method 2: Install Firefox-ESR using Snap
-
-Love it or hate it, Snaps comes pre-configured on Ubuntu and I find using snaps a neat way of installing packages, especially when you want to avoid building them for source or using PPA.
-
-All you need to do to install Firefox-ESR using snaps is to follow the given command:
-
-```
-sudo snap install firefox --channel=esr/stable
-```
-
-![install firefox esr using snaps in ubuntu][5]
-
-##### Removing Firefox-ESR Snap
-
-To remove Firefox-ESR (snap package), use the [snap remove command][6]:
-
-```
-sudo snap remove firefox
-```
-
-And that’s it!
-
-### Wrapping Up
-
-I explained how to install Firefox-ESR in Ubuntu using multiple methods in this guide. I personally use Firefox-ESR instead of the regular version as I was having random crashes.
-
-Since I shifted to Firefox-ESR, things have been going rock-solid for me. And if you were having the same, you should give it a try.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/firefox-esr-ubuntu/
-
-作者:[Sagar Sharma][a]
-选题:[lkxed][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/sagar/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/ppa-guide/
-[2]: https://itsfoss.com/wp-content/uploads/2022/11/add-firefox-esr-repository-in-ubuntu.png
-[3]: https://itsfoss.com/wp-content/uploads/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png
-[4]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/
-[5]: https://itsfoss.com/wp-content/uploads/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png
-[6]: https://itsfoss.com/remove-snap/
diff --git a/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
new file mode 100644
index 0000000000..2955a79d75
--- /dev/null
+++ b/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
@@ -0,0 +1,142 @@
+[#]: subject: "What is Firefox ESR? How to Install it in Ubuntu?"
+[#]: via: "https://itsfoss.com/firefox-esr-ubuntu/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+什么是 Firefox ESR?如何在 Ubuntu 中安装它?
+======
+
+Ubuntu 的 snap 版本你不喜欢?不喜欢每一次 Firefox 的发布都要不断地改变东西?如果你重视稳定性而不是功能,你可以试试 Firefox ESR 版本。
+
+### 什么是 Firefox ESR?
+
+Firefox ESR 是 Firefox 的特别版,它不一定像普通版那样每月都有新功能,但它能提供稳定和安全的浏览体验。这适用于企业、组织和机构,在这些地方,稳定性和核心功能比闪亮的新功能更重要。
+
+把 Firefox ESR 看作是 Linux 发行版的长期稳定版本。他们不一定得到全新的功能,但他们会得到定期的安全和维护更新。这给了用户一个熟悉和稳定的环境。
+
+#### 你为什么要关心 Firefox ESR?
+
+Firefox 几乎每个月都会发布一个新版本。它包含安全和功能更新。
+
+但有些人可能不喜欢功能的加入和删除。如果在更新之后,你一直想知道某些设置到哪里去了,或者不喜欢与以前不同的东西,Firefox ESR可能值得一试。
+
+基本上,如果你更看重稳定性而不是新功能,那么 Firefox ESR 就适合你。这也是与 Debian 相同的 Firefox 版本,Debian 以其是市场上最稳定的发行版之一而闻名。
+
+让我告诉你如何在 Ubuntu 上获得 Firefox ESR。**_你可以同时安装 Firefox 和 Firefox-ESR 两个版本。它们的标识没有视觉上的区别,所以你必须注意你打开的是哪个火狐版本。_**
+
+### 在 Ubuntu 中安装 Firefox ESR
+
+在进入安装之前,让我来分享一下普通 Firefox 和 Firefox-ESR 之间的版本差异是什么。在写这篇文章的时候:
+
+- Firefox 的版本是 **107.0-2**。
+- Firefox-ESR 目前的版本是 **102.5.0esr**。
+
+所以,如果这对你来说没问题,让我们看看第一个方法。
+
+#### 方法 1:使用 PPA 安装 Firefox-ESR
+
+Firefox-ESR 在 Ubuntu 的默认仓库中是不可用的,所以你可以使用 PPA。
+
+PPA 只不过是一个由个别技术人员或开发者维护的仓库,拥有默认仓库所没有的东西。
+
+如果你想了解更多关于 PPA 的信息,我建议你查看我们的其他指南,其中解释了[如何在 Linux 上使用 PPA][1]。
+
+打开你的终端,使用给定的命令来添加 Firefox-ESR 的 PPA:
+
+```
+sudo add-apt-repository ppa:mozillateam/ppa
+```
+
+然后按回车键确认你要添加 PPA:
+
+![add firefox esr repository in ubuntu][2]
+
+完成后,你需要更新 Ubuntu 中的仓库索引,以便从这些变化中生效:
+
+```
+sudo apt update
+```
+
+现在,你可以通过使用给定的命令来安装 Firefox-ESR:
+
+```
+sudo apt install firefox-esr
+```
+
+接下来,你可以使用给定的命令来检查你系统中 Firefox-ESR 的安装版本:
+
+```
+firefox-esr -v
+```
+
+![check installed version of firefox esr in ubuntu][3]
+
+##### 从 Ubuntu 卸载 Firefox-ESR
+
+如果 ESR 对你的工作来说感觉太过时了,或者由于其他原因你想从你的系统中删除它,你可以按照以下步骤删除 Firefox-ESR 包和仓库。
+
+首先,让我们用下面的方法删除 Firefox-ESR 包:
+
+```
+sudo apt remove firefox-esr
+```
+
+现在,你可以使用给定的命令来[从 Ubuntu 删除 PPA][4]:
+
+```
+sudo add-apt-repository --remove ppa:mozillateam/ppa
+```
+
+这就完成了!
+
+#### 方法 2:使用 Snap 安装 Firefox-ESR
+
+不管你爱不爱它,Snaps 在 Ubuntu 上是预先配置好的,我发现使用 Snaps 是安装软件包的一个很好的方法,特别是当你想避免从源码构建它们或使用 PPA 时。
+
+使用 Snaps 安装 Firefox-ESR,你需要做的就是使用给定的命令:
+
+```
+sudo snap install firefox --channel=esr/stable
+```
+
+![install firefox esr using snaps in ubuntu][5]
+
+##### 删除 Firefox-ESR Snap
+
+要删除 Firefox-ESR(snap 包),请使用 [snap remove 命令][6]:
+
+```
+sudo snap remove firefox
+```
+
+这就完成了!
+
+### 总结
+
+我在本指南中解释了如何使用多种方法在 Ubuntu 中安装 Firefox-ESR。我个人使用 Firefox-ESR 而不是普通版本,因为我有随机崩溃的情况。
+
+自从我改用 Firefox-ESR 后,一切都变得稳如磐石。如果你也有同样的问题,你应该试一试。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/firefox-esr-ubuntu/
+
+作者:[Sagar Sharma][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/sagar/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/ppa-guide/
+[2]: https://itsfoss.com/wp-content/uploads/2022/11/add-firefox-esr-repository-in-ubuntu.png
+[3]: https://itsfoss.com/wp-content/uploads/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png
+[4]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/
+[5]: https://itsfoss.com/wp-content/uploads/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png
+[6]: https://itsfoss.com/remove-snap/
From 9918aa6481e39e0b34a90d2b4fee7962ccf7c067 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Fri, 6 Jan 2023 08:57:33 +0800
Subject: [PATCH 203/266] translating
---
...30102.1 ⭐️ who Command in Linux Explanation with Examples.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
index 71a4a4c1a0..3f04e64f41 100644
--- a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
+++ b/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
@@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/who-command-linux/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From e2c17b80854bcf1a216232bd8f0141f3b22eb7dd Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Fri, 6 Jan 2023 11:45:07 +0800
Subject: [PATCH 204/266] ALL
@wxy
https://linux.cn/article-15418-1.html
---
...Sway Spins to Arrive With Fedora 38 Release.md | 68 ++++++++++++++++++
...Sway Spins to Arrive With Fedora 38 Release.md | 70 -------------------
2 files changed, 68 insertions(+), 70 deletions(-)
create mode 100644 published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md
delete mode 100644 sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md
diff --git a/published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md b/published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md
new file mode 100644
index 0000000000..83f6605f84
--- /dev/null
+++ b/published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md
@@ -0,0 +1,68 @@
+[#]: subject: "Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release"
+[#]: via: "https://news.itsfoss.com/fedora-budgie-sway-official/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15418-1.html"
+
+Fedora 38 将发布 Budgie 和 Sway 官方定制版
+======
+
+> 两款新的 Fedora 定制版将在 Fedora 38 发布时首次亮相。
+
+![][1]
+
+我们期待着它们在 Fedora 37 时出现,但在 Fedora 38 中终于来了!
+
+早在 2022 年 5 月,Budgie 项目的主要开发者 Joshua Strobl [宣布][2],Budgie 已被提交到 Fedora 中。
+
+遗憾的是,在那之后不久,我们并没有看到任何官方 [Fedora 定制版][3] 发布的迹象,尽管它在 [Fedora 37 发布][4] 期间进入了 Fedora 软件库。
+
+**但现在有了。**
+
+随着 Fedora 38 的发布,看起来我们会得到一个 [Budgie][5] 的官方定制版,同时还有一个 [Sway][6] 窗口管理器的定制版。
+
+### Fedora Budgie 和 Sway
+
+在 [最近的一次会议][9] 上,Fedora 工程和指导委员会(FESCo)投票决定将 Budgie 和 Sway 窗口管理器的 Fedora 官方定制版纳入 Fedora 38 的发布中。
+
+根据 Budgie 和 Sway 的初步修改建议,我们可以期待很多变化。
+
+对于 Budgie:
+
+- Fedora 38 将提供 Budgie 桌面环境,包含一套核心应用程序,如用于更新/软件包管理的 GNOME “软件”应用、一个文本编辑器、一个网页浏览器和一个终端。
+- 它还将使用 [Materia GTK][10] 和 [Papirus][11] 图标主题,整个系统采用 GTK 主题设计。
+- Budgie 定制版还将采用 lightdm + slick-gtk-greeter,以获得更直观的用户问候体验。
+
+对于 Sway 定制版:它旨在提供一个极简体验,只包括默认配置之上的一些元素。
+
+预期时间:随着 Fedora 38 的开发在未来几个月内的加快,你可以期待这些定制版在 2023 年 4 月期间出现。当然,会有预装了 Budgie 和 Sway 的单独 ISO 文件。
+
+因此,我认为看到 Budgie 与 Fedora 的体验会非常吸引人,特别是当 Budgie 的开发似乎正在发生一些有趣的变化。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/fedora-budgie-sway-official/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/fedora-budgie-sway-spins-arrive.png
+[2]: https://www.reddit.com/r/Fedora/comments/uq3gah/budgie_desktop_has_now_been_submitted_for/
+[3]: https://spins.fedoraproject.org
+[4]: https://news.itsfoss.com/fedora-37-release/
+[5]: https://blog.buddiesofbudgie.org
+[6]: https://swaywm.org
+[7]: https://unlocator.com/favicon.ico
+[8]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg
+[9]: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/RNJZUX3ZI34DIX6E4PVDKYQWCOFDQ4UY/
+[10]: https://github.com/nana-4/materia-theme
+[11]: https://github.com/PapirusDevelopmentTeam/papirus-icon-theme
diff --git a/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md b/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md
deleted file mode 100644
index d98e76ba14..0000000000
--- a/sources/news/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md
+++ /dev/null
@@ -1,70 +0,0 @@
-[#]: subject: "Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release"
-[#]: via: "https://news.itsfoss.com/fedora-budgie-sway-official/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release
-======
-
-Two new Fedora spins to make a debut with Fedora 38 release.
-
-![Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release][1]
-
-We were expecting this to happen with Fedora 37, but it is finally happening with Fedora 38!
-
-Back in May 2022, **Joshua Strobl,** the lead developer of the Budgie project, [announced][2] that Budgie was submitted for inclusion in Fedora.
-
-Sadly, we didn't see any signs of an official [Fedora spin][3] release soon after that, even though it made it into the Fedora repositories during [Fedora 37 release][4].
-
-**But now.**
-
-With Fedora 38 release, it looks like we will get an official spin for [Budgie][5], alongside a spin with the [Sway][6] window manager.
-
-Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][7]Unlocator![][8]
-
-### Fedora Budgie and Sway
-
-In a [recent meeting][9], Fedora’s Engineering and Steering Committee (FESCo) voted on including official Fedora spins for Budgie and Sway window manager with the release of Fedora 38.
-
-**What can we expect?:** According to the initial change proposals for Budgie and Sway, we can expect plenty of things to happen.
-
-**In the case of Budgie:**
-
-- Fedora 38 will feature Budgie with a core set of applications, such as GNOME Software for updates/package management, a text editor, a web browser, and a terminal.
-- It will also feature GTK theming across the system using [Materia GTK][10] and [Papirus][11] icon themes.
-- The Budgie spin will also feature lightdm + slick-gtk-greeter for a more intuitive user greeting experience.
-
-**In the case of Sway spin:** It will aim to provide a minimal experience and will only include a few elements on top of the default configuration.
-
-**When to expect these?:** As the development of Fedora 38 picks up over the coming months, you can expect the spins to appear during April 2023. Of course, there will be separate ISO files with Budgie and Sway pre-installed.
-
-So, I think it would be fascinating to see the experience of Budgie with Fedora, especially when the development of Budgie seems to be going through some interesting changes.
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/fedora-budgie-sway-official/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/fedora-budgie-sway-spins-arrive.png
-[2]: https://www.reddit.com/r/Fedora/comments/uq3gah/budgie_desktop_has_now_been_submitted_for/
-[3]: https://spins.fedoraproject.org
-[4]: https://news.itsfoss.com/fedora-37-release/
-[5]: https://blog.buddiesofbudgie.org
-[6]: https://swaywm.org
-[7]: https://unlocator.com/favicon.ico
-[8]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg
-[9]: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/RNJZUX3ZI34DIX6E4PVDKYQWCOFDQ4UY/
-[10]: https://github.com/nana-4/materia-theme
-[11]: https://github.com/PapirusDevelopmentTeam/papirus-icon-theme
From 874fe03f3326332ba01e99700f200f640d57e2f0 Mon Sep 17 00:00:00 2001
From: Figaro Cao
Date: Fri, 6 Jan 2023 21:46:44 +0800
Subject: [PATCH 205/266] Update 20211012 Create a timer on Linux.md
FigaroCao is translating
---
sources/tech/20211012 Create a timer on Linux.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20211012 Create a timer on Linux.md b/sources/tech/20211012 Create a timer on Linux.md
index 2cbfa013aa..ff4f334435 100644
--- a/sources/tech/20211012 Create a timer on Linux.md
+++ b/sources/tech/20211012 Create a timer on Linux.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/21/10/linux-timers"
[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
[#]: collector: "lujun9972"
-[#]: translator: " "
+[#]: translator: "FigaroCao"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 0ea666564543016e788a66bdf59a9447a3893e77 Mon Sep 17 00:00:00 2001
From: Bright Huang
Date: Sat, 7 Jan 2023 12:13:42 +0800
Subject: [PATCH 206/266] finish translation
---
...20210718 Is Open-Source Software Secure.md | 136 +++++++++---------
1 file changed, 67 insertions(+), 69 deletions(-)
diff --git a/sources/talk/20210718 Is Open-Source Software Secure.md b/sources/talk/20210718 Is Open-Source Software Secure.md
index 01d262a018..7e0b33aec4 100644
--- a/sources/talk/20210718 Is Open-Source Software Secure.md
+++ b/sources/talk/20210718 Is Open-Source Software Secure.md
@@ -7,142 +7,138 @@
[#]: publisher: ( )
[#]: url: ( )
-Is Open-Source Software Secure?
+开源软件安全吗?
======
-Being someone who prefers [Linux for desktop][1] and encourages using open-source software, you may expect the answer to the question raised in the headline with a big “**Yes**“.
+作为一个偏爱 [Linux桌面发行版][1] 并鼓励使用开源软件的人,你可能期待就标题中提出的问题得到一个响亮的**肯定**回答。
-But I am not going to limit discussing the benefits of open-source software. Let us explore more!
+然而,我并不打算仅限于讨论开源软件的优点。让我们一起探索更多的内容吧!
-Here, I plan to share my thoughts on if open-source software is secure and what are the things involved in it that make secure or insecure.
+本文,我计划分享我关于开源软件是否安全的思考以及哪些事情与开源软件的安全性相关。
-### Why Should You Care if Open-Source Software is Secure?
+### 为什么你需要关注开源软件是否安全?
-No matter whether you use [Linux][2] or any other operating system, you will be surrounded with open-source software in some way (directly/indirectly).
+不论你是使用 [Linux][2] 系统还是使用其他类型的操作系统,你都会在某种程度上(直接地/间接地)被开源软件所包围。
-To give you an example, most of the proprietary software tools depend on some form of open-source libraries to make things work.
+举个例子,大多数专有软件工具依赖于某种形式的开源库来保证其正常工作。
-Furthermore, there is a reason why companies of various scale (including Google, Microsoft, and Facebook) rely on open-source software or contribute their resources to the open-source community in one way or the other.
+此外,各种规模的公司(包括 Google、Microsoft 和 Facebook )依赖开源软件或者以某种途径向开源社区贡献资源是有原因的。
-Hence, the security of open-source software is something essential to know about.
+因此,开源软件的安全性是有必要了解的。
-### Myths About Open-Source Software Security
+### 有关开源软件安全性的谣言
![][3]
-While there are several arguments to pitch the cons of open-source software in terms of security, some of them just do not make any sense.
+虽然有多种理由证明开源软件在安全性方面的缺陷,然而其中一些实际毫无意义。
-#### Anyone Can See & Exploit the Code
+#### 任何人都可以查看 & 恶意利用开源软件代码
-The code is accessible to everyone, yes. But just because you can see the code—does that mean anyone can exploit it?
+是的,开源软件代码对于任何人都是可访问的。但是你可以查看代码并不意味着你可以利用它。
-**Not really.**
+**不现实**
-Even though anyone can create a fork (or copy) of the software, the original software cannot be manipulated easily.
+即使任何人都可以克隆(或者拷贝)该软件,原始软件也不能轻易地被修改使用。
-Usually, the project maintainer (or a group of them) manage the code repository and accept the commits from contributors. The code is reviewed before approval. And no one can hijack the code just like that.
+通常,项目维护人员(或者维护团队)管理代码仓库并且接受来自贡献者的提交。开源软件代码在接受之前被审查。没有人可以像那样劫持代码。
-**It takes effort for an attacker to exploit a vulnerability or add malicious code in a software, no matter if it is open-source or closed source.**
+**不论是开源软件还是闭源软件,攻击者都需要付出努力来利用软件中的代码漏洞或者添加恶意代码**
-#### Without Dedicated Resources, Security Breaks down
+#### 失去专用资源,安全性无从谈起
-Many believe that without dedicated employees or a team for an open-source software, it is difficult to maintain security.
+很多人相信如果开源软件没有专职人员或者专职团队,维护软件安全性是困难的。
-In contrast, with several types of contributors joining and leaving, the software gets more attention from a wide range of developers.
+恰恰相反,由于各种个样类型的贡献者的加入与离开,开源软件获得了来自更大范围的开发者的更多关注。
-And they may be able to spot security issues better than a few employees assigned for a proprietary software.
+他们可能比由专用软件所聘用的少数开发者更能够发现安全问题。
-Some projects from the likes of Mozilla have a dedicated team to effectively iron out security issues. Similarly, most of the successful open source projects have plenty of resources to dedicate for security.
+一些来自 Mozilla 等同类公司的项目拥有自己的专职团队来高效处理安全问题。同样的,大部分成功的开源项目拥有大量的资源用于保障安全性。
-Hence, the open-source software ecosystem is a mixed bag for security. Even without dedicated resources, the projects get help from various contributors, and some are profitable to a great extent which helps them dedicate more resources.
+因此,开源软件的生态系统是安全性的组合包。即使没有专职资源,开源项目也可以得到来自各类贡献者的帮助,他们中的一些很大程度上是有利可图的,这有助于他们投入更多的精力。
-### Open Source Software is Secure: Here’s How
+### 开源软件是安全的,以下是原因
![][3]
-Now that we have tackled the myths, let me highlight how open-source software deals with security issues.
+既然我们已经解决了有关开源软件安全性的谣言,让我重点展示一下开源软件是如何处理安全问题的。
-In other words, the benefits in security with open-source software.
+换句话说,开源软件在安全性上的优势。
-Not to forget, the perks of open-source software translate to some of the reasons why [Linux is better than Windows][4].
+请不要忘记,开源软件的优势也是 [ Linux 比 Windows 更好][4]的一些原因。
-#### More Eyes Looking at the Code
+#### 更多的眼晴关注开源软件代码
-Unlike a proprietary software, access to code is not limited to a few developers.
+不像专有软件,代码访问仅不限于少数开发者。
-Some projects may even have thousands of developers watching the code, reviewing them, and flagging or fixing security issues.
+一些开源项目甚至可能拥有数以万记的开发者查看代码、审查它们并标记和修复其中的安全性问题。
-And this gives an edge over closed-source software by having **the ability to identify issues quickly and addressing them as soon as possible.**
+这给予了开源项目拥有**快速识别问题并尽快修复它们的能力**的相比闭源软件的优势。
-Not just limited to more developers, often enterprises get involved with open-source projects that they utilize. And when they do, they will also go through the code and review it.
+不仅仅限于拥有更多的开发者,企业通常也会参与他们所使用的开源项目。当他们这样做的时候,他们也会查阅代码并审查它们。
-This gives another source of external audit that may help improve the security of the software.
+这提供了外部审查的另一条途径,而这可能有助于提升开源软件的安全性。
-In contrast, with a closed-source software, a limited number of developers may not be able to find all kinds of security issues. And it may take them longer to fix all the issues one by one.
+反之,就闭源软件而言,有限人数的开发者可能并不能找出所有种类的安全问题。而且他们可能需要花费更长的时间来一一修复发现的问题。
-#### Community Decision Making to Prioritize Security Issues
+#### 社区决定安全问题的优先级
-The developers of a closed-source software may have certain restrictions and priorities as what to work on and when to resolve an issue.
+闭源软件的开发者可能在处理什么问题和什么时候解决问题等方面有某些限制或者优先等级。
-However, in case of an open-source project, the community of contributors can prioritize and assign themselves what they want to work on and when to fix an issue. You do not need to depend on a vendor or follow their instructions to address a security issue.
+而如果是开源项目,贡献者社区可以自行决定优先级并自行安排他们想解决的问题以及决定合适修复问题。你不需要依赖于供应商的决定或者按照他们的指示来解决一个安全问题。
-The decision making that goes into addressing and fixing the security issues is more transparent and flexible in case of an open-source software. Hence, it can prove to be more effective leaving you with three specific benefits:
+着手处理和修复安全问题的决定在开源软件项目中更加透明和灵活。因此,它可以被证明是更有效的,并为你带来以下三个益处:
- * **Transparency**
- * **No dependency on the vendor**
- * **Faster security updates**
+ * **透明度**
+ * **不依赖供应商**
+ * **更快的安全更新**
-
-
-### Open Source Software is not Bulletproof: Here’s Why
+### 开源软件不是刀枪不入的,以下是原因
![][3]
-While there are cases where open-source software may get an edge for security, there could be instances or factors that affects it.
+虽然有开源软件可能在安全性上具有优势的案例,然而仍有一些因素影响它。
-It is important to acknowledge that these problems exist, accordingly, an enterprise or an individual can make better decision about the state of security for an open-source software.
+承认这些问题的存在是很重要的,据此,企业或者个人可以就一款开源软件的安全情况做出更好的决定。
-#### Not enough Eyes to Review Code and Uncertainty
+#### 并无足够的眼睛来审查代码和不确定性
-Even if the code is accessible the world of developers, there are chances that a **project does not have enough contributors/developers to thoroughly review the code**.
+即使开源软件代码可以由全世界的开发者自由访问,**项目没有足够的贡献者/开发者彻底审查开源代码**的可能性仍然存在。
-In that case, we cannot have great confidence of an open-source software being peer-reviewed, because it lacks exactly that.
+既如此,我们不能对经同行审查的开源软件抱有极高的信心,因为它恰好缺失了这一点。
-The open-source software may “claim” to have the best security just because its open-source, which is misleading when there are not enough developers working on it.
+开源软件可能“声称”拥有最高的安全性因为它们是开源的。在没有足够的开发者致力于该项目时,这是一种误导。
-Also, we do not know how many developers are looking/reviewing the code and how exactly the code walkthrough is going on.
+同样,我们也无从得知有多少开发者在查看/检查代码以及代码走查在多大程度上进行。
-For instance, the Heartbleed bug was spotted after 2 years of its introduction in a project that was already popular i.e **OpenSSL**.
+举例而言,心脏出血漏洞([Heartbleed][T1])是在其在广泛使用项目—— **OpenSSL** ——中引入了2年以后才被发现的。
-#### Software Responsibility or Accountability
+#### 软件责任与义务
-This may not be important for individuals, but an **open-source software often comes with no warranties**.
+对于个人用户这可能并不重要,但是**开源项目通常并无任何保证**。
-So, if a business uses it, they must take the responsibility of any losses or damages caused by the use of that software.
+因此,如果一家公司使用它,它们必须自行承担任何由该软件使用造成的数据丢失与损坏。
-This is something that tells you that nothing can be 100% secure and bug-free. No matter how many eyes you have on a code, or how skilled the contributors are, there will be risks in some form, be it security or data loss.
+这告诉你没有什么是100%安全和没有漏洞的。无论有多少眼睛聚焦在代码上或者贡献者的技术多么精湛,总会存在某种形式的风险,可能是安全风险可能是数据丢失。
-And this brings us to the fact that open-source software is not bulletproof.
+这告诉我们一个现实:开源软件并非刀枪不入。
-### Open Source May Have its Edge for Better Security But…
+### 开源软件有其更高安全性的优势,但是...
-Nothing is superior when it comes to security. No matter if it is closed-source or open-source, the same set of principles apply when it comes to security.
+就安全性而言没有什么优胜者。不论是闭源还是开源,当涉及安全问题时都适用同一套原则。
-There are various external factors that can affect the security of a software, and **many of those are not source dependent**.
+有很多外部因素可以印象软件安全性,而**其中很多都不是来源相关的**。
-The code must be monitored in the same way to keep things secure.
+代码必须被以某种形式监控以保证安全。
-Yes, the **open-source approach introduces benefits that closed-source software will never have**, but that does not mean that it is bulletproof.
+是的,**开源道路提供了闭源软件所不具备的优势**,但是这并不意味着开源软件是刀枪不入的。
-_What do you think about the state of security when it comes to open-source software?_ _Do you think it is superior to proprietary solutions?_
+_你对开源软件安全状况有何思考?_ _你又是否认为开源软件比专有软件解决方案更好呢?_
-I would appreciate your valuable thoughts in the comments down below.
+提前感谢您在下面的评论中提出的宝贵意见。
-#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You!
+#### 大型科技网站坐拥百万收入,而 It's FOSS 拥有每一个你!
-If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software.
-
-I'm not interested
+如果你喜欢我们在 It's FOSS 中所做的工作,请您考虑捐赠以支持我们的独立出版物。你的支持将有助于我们继续发布有关 Linux 桌面版以及开源软件的内容。
--------------------------------------------------------------------------------
@@ -150,7 +146,7 @@ via: https://news.itsfoss.com/open-source-software-security/
作者:[Ankush Das][a]
选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
+译者:[CanYellow](https://github.com/CanYellow)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -161,3 +157,5 @@ via: https://news.itsfoss.com/open-source-software-security/
[2]: https://itsfoss.com/what-is-linux-distribution/
[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQzOSIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[4]: https://itsfoss.com/linux-better-than-windows/
+
+[T1]: https://www.cve.org/CVERecord?id=CVE-2014-0160
From e6613de7867552647a87d3ef2df2c7f4f2419b1b Mon Sep 17 00:00:00 2001
From: Bright Huang
Date: Sat, 7 Jan 2023 12:15:28 +0800
Subject: [PATCH 207/266] move file
---
...20210718 Is Open-Source Software Secure.md | 0
...s for measuring your open source software usage.md | 145 ------------------
2 files changed, 145 deletions(-)
rename {sources => translated}/talk/20210718 Is Open-Source Software Secure.md (100%)
delete mode 100644 translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
diff --git a/sources/talk/20210718 Is Open-Source Software Secure.md b/translated/talk/20210718 Is Open-Source Software Secure.md
similarity index 100%
rename from sources/talk/20210718 Is Open-Source Software Secure.md
rename to translated/talk/20210718 Is Open-Source Software Secure.md
diff --git a/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
deleted file mode 100644
index f3efee7126..0000000000
--- a/translated/talk/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
+++ /dev/null
@@ -1,145 +0,0 @@
-[#]: subject: "8 ideas for measuring your open source software usage"
-[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics"
-[#]: author: "Georg Link https://opensource.com/users/georglink"
-[#]: collector: "lkxed"
-[#]: translator: "CanYellow"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-衡量你开源软件使用的8个方法
-======
-
-我们这些支持开源项目社区的人经常被问到很多有关使用指标的问题。这些指标通常是为了通过用户群体和用户认知来衡量软件的重要性。我们一般都想知道有多少人使用该软件,有多少次安装以及触发了多少次实例。
-
-长话短说,我们尚无法直接回答上述问题。
-
-如果你想要寻找一个终极解决方案,那很抱歉要让你失望了。有关使用指标的问题,没有人有完美的答案,至少没有准确的答案。
-
-好消息是,有一些近似的和可选的指标至少能够部分地满足你对软件使用知识的渴求。本文探讨了这些替代方案以及他们的优点和缺点。
-
-### 下载
-
-当你浏览提供软件的网站时,你通常可以看到软件的下载次数。映入脑海的一个例子是 Firefox ,它曾经有一个下载计数器。Firefox 的下载量是一个印象深刻的数字,给人留下 Firefox 在一段时间内是一个流行的浏览器。
-
-然而,个人行为会直接影响这一数字的准确性。举例而言,当一个人定期重置他们的设备时,每一次重建都会引发一次独立的下载。考虑到这一现实,需要设计一种方法从下载量中去除几十次由上述人员带来的下载次数。
-
-下载量不仅会高估使用量,还会低估使用量。例如,一个系统管理员可能会下载一个新版本的 Firefox 一次并将其拷贝到闪存上,然后安装到数百台设备上。
-
-下载量指标是易于收集的,你可以在服务器上记录每一个下载请求。问题在于你不知道在这些软件下载以后会发生什么。下载它的人是否如预期的那样使用软件,还是运行时遇到了问题而遗弃了软件。
-
-对于开源项目而言,你可以考虑各种下载量指标,比如来自以下途径的下载指标:
-
-- 项目官网
-- 包管理器,比如 npm,PyPi 和 Maven
-- 代码仓库,如 Github,GitLab,Gitee 等
-
-你可能还对源代码的下载量感兴趣,因为下游项目更可能使用源代码形式 (见于[《如何衡量你的开源项目的影响》][1]一文)。相应的下载指标包括:
-
-- 从代码仓库克隆的数量,比如 GitHub,GitLab 和 Gitee
-- 从官网下载的归档文件 (tar,zip) 的数量
-- 通过像 npm,PyPi 和 Maven 这样的包管理器下载的源代码数量
-
-源代码的下载指标比二进制代码的下载指标更不可靠(虽然尚无相关研究表明如此)。试想一下,一名开发人员想要你的最新版本的源代码并已经配置好了他们的构建流程来总是在每一次构建中都克隆你的版本库。再想象一个自动构建过程失败了,它试图重新构建而不断地克隆你的版本库。你还可以考虑这样一个下载量低于预期的场景——源代码仓库在某些地方缓存了,下载来源是由这些缓存所提供的。
-
-**[相关阅读[跟踪你的开源社区的5个指标][2]]**
-
-总而言之,下载量指标是用于提供当前使用情况和探测趋势的很好的代表。我们无法明确地定义一次下载是如何转化为使用的。不过我们可以认为增加的下载量是更多潜在用户的标志。举例而言,如果你为你的软件做了广告并在活动期间得到了更高的下载量,可以公正的假定广告推动了更多人下载软件。下载行为的来源与元数据还可以提供额外的与使用行为相关的内容。你的软件的哪些版本仍在使用中?什么操作系统或者专属语言的版本更加流行?这有助于社区决定将哪个平台的软件作为支持与测试的优先选项。
-
-### 提问
-
-作为一个开源项目,你可能有一个问题追踪器。当某个人提出一个议题时一般有两个目标,报告一个漏洞或者请求增加一项功能。提问者可能使用过你的软件。作为一名用户,他可能发现了一个漏洞或者确定了对新功能的需求。
-
-很明显,大多数用户不会执行额外的步骤来提交问题。提问者是我们的忠实用户,我们对他们表示感谢。此外,通过提出问题,他们成为非代码贡献者,他们也有希望成为代码贡献者。经验法则是大约每10000名用户中,可能有100名提问者以及1名代码贡献者,当然取决于用户类型,上述比例可能有出入。
-
-回到指标问题,你可以将提问者数量作为评估使用量的下界。相关的指标包括:
-
-- 提问者数量
-- 活跃提问者的数量 (在过去6个月内提出问题的提问者)
-- 同时有代码贡献的提问者的数量
-- 尚未解决的问题的数量
-- 发布的问题评论的数量
-
-### 邮件列表,论坛和问答网站
-
-很多开源项目都拥有用户邮件列表,论坛,并且出现在类似 Stack Overflow 的问答网站上。与提问者一样,在这些地方发帖的人可被视作用户的冰山一角。与邮件列表、论坛和问答网站上的社区活跃程度相关的指标也可用于反映用户数量的上升或下降。相关指标可以集中于以下地方的活动,包括:
-
-- 用户邮件列表的订阅量
-- 论坛用户的数量
-- 问题的数量
-- 答案的数量
-- 发布信息的数量
-
-### 上报功能
-
-为了获得精确的用户数量,一个方案是让软件在使用时上报信息。
-
-这是令人毛骨悚然的。想象一下,系统管理员的防火墙报告了一个非预期的到你的服务器的网络连接,你不仅无法再收到软件报告(被防火墙拦截了),恐怕连你的软件也可能在未来被禁止使用。
-
-负责任的设置上报功能的方式为设置一项可选服务来检查更新并让用户知道使用最新版本。另一项可选功能可以集中在使用检测上,你可以通过该功能询问用户是否允许匿名上报软件使用情况。如果经过深思熟虑的实施,这种方式可以允许用户通过他们使用软件的方式帮助优化软件。用户可以持有这样的意见:我一般不允许使用信息分享;但对于一些软件,因为希望开发人员从长远来看会将软件优化得更好,我愿意这样做。
-
-### 加星标与克隆
-
-加星标与克隆是如 GitHub 、 GitLab 、 Gitee 等社交化编程平台的功能。平台用户可以给一个项目加星标。为什么他们要给项目加星标呢?GitHub 的文档作出了解释:你可以给一个仓库和主题加星标以保持对感兴趣的项目的跟踪和在你的新闻订阅中发现相关的内容。给一个项目加星标与将其加入书签的效果一样,并且还提供了一种向项目仓库的维护者展示赞赏的方式。星标的数量已经成为了项目流行程度的标志。当一个项目发布重大公告并获得相当的关注时,项目的星标数量会呈上升趋势。星标的数量指标并不反映软件的使用量。
-
-在社交化编程平台上的克隆 (Forks) 即将项目仓库复制一份在自己名下。仓库的非维护者可以在他们自己的克隆仓库中做修改并将修改通过拉取请求 (pull request) 的方式提交审核。克隆比星标更能反映软件社区的大小。开发者也可能为了保存一份代码副本而克隆一个项目以便在原始仓库消失后他们仍能访问代码。因为克隆功能在代码贡献工作流中的应用,克隆量是衡量开发社区的良好指标。克隆量通常也不反映非开发人员的使用,因为非开发人员一般不创建克隆。
-
-### 社交媒体
-
-包括 Facebook、Instagram、LinkIn、Reddit、Twtter等的社交媒体平台提供了相同兴趣的人们聚集的平台。采用社交媒体策略,开源项目可以通过在平台上设置相应的聚集空间来吸引对项目感兴趣的人们。通过这些社交媒体途径,开源项目可以分享项目新闻、更新、突出共献者和用户。这些社交媒体途径还可以用于认识那些本不会通过其他途径与项目互动的人。
-
-我在犹豫是否建议关注指标因为它与软件的真实使用量没有清晰的联系,并通常需要分析其中的积极、消极和中性的情绪。人们可能因为很多不同的原因对你的项目感到激动并想要在不实际使用的情况下关注它。然而与之前已经讨论过的指标一样,能够在社交媒体上吸收人群本就是项目受关注的整体指标。不同社交媒体平台的指标包括:
-
-- 关注与订阅的数量
-- 消息的数量
-- 活跃的消息作者的数量
-- 喜欢、分享、回复以及其他交互的数量
-
-### 网站分析与文档
-
-网站流量也是一个有用的指标。这一指标主要由你的服务范围以及市场营销活动影响而不是用户量。然而,我们还有一张王牌:我们的用户文档、教程、手册以及 API 文档。我们可以发现我们的网站以及文档中的什么主题更引人注意。文档的访问者数量应当大概随着软件的使用者数量增长而增长。因此我们可以通过网站的访问量探知对项目的一般性的兴趣并进一步通过观察文档的访问者观察用户风向。这些指标包括:
-
-- 网站访问者数量
-- 文档访问者的数量
-- 访问者在你的网站与文档上所花的时间
-
-### 活动
-
-活动指标可以在你主持与项目相关的活动时使用。这是建立社区的很好的方式。有多少人提交摘要在你的活动中发言?有多少人出席你的活动?不论是在线下活动还是线上活动中这可能都很有趣。当然,你如何推广你的活动可以很大程度上决定有多少人到场。同时你可以将自己的活动与人们出行的大型活动放在一起以方便人们参加你的活动。只要你使用一贯的活动策略,你可以通过演讲者提交与参会者注册的增加表征软件受欢迎程度与用户群的增加。
-
-你并不需要举办你自己的活动来收集有用的指标。如果你在开源活动中主持有关你项目的讨论,你可以衡量有多少人出席主要聚焦你的项目的会议。像 [FOSDEM][T1] 这样的活动,一些讨论特别聚焦开源项目的更新与公告,会议室中都挤满了人(像 FOSDEM 的所有会议一样)。
-
-你可以考虑如下指标:
-
-- 以你的项目为中心的活动的出席人数
-- 提交到以你的项目为中心的活动的演讲数量
-- 以你的项目为中心的演讲的出席人数
-
-### 关于估算开源软件使用的结论
-
-正如我们已经如上展现的,有很多指标可以反映软件使用的趋势,没有一个指标是完美的。在大多数情况下,这些指标可能被个人行为、系统设计和噪音所严重影响。因此,考虑到每一个指标的相对不确定性,我们建议你不要孤立地使用任何一个指标。但是如果你从不同的来源收集了一系列的指标,你应当能够探测到用户行为与软件使用的趋势。如果你有手段比较多个具有共性——比如相似的功能、强大的相互依赖以及由同一基金会托管和其他特征——的开源项目的同一组指标,你就可以提升你对用户行为基线的感知。
-
-需要注意的是,在本概述中,我们选择突出能够评估直接使用情况的指标。而大多数软件都依赖于其他各种软件包,如果我们不提及作为软件依赖链的一部分被间接使用也会严重影响软件使用与行为,这就是我们的疏忽。因此,我们建议将上下游依赖的合计数量作为你的分析中的另一层内容。
-
-最后,作为数据与指标的使用者,我们鼓励你认识到你的利益相关方的权利与责任。你发布的任何指标都有可能影响用户行为。最佳实践是总是一同分享你的背景信息——基础、来源、估算方法和其他关键上下文信息,这有助于其他人解释你的结果。
-
-我们感谢 [CHAOSS][T2] 社区在爱尔兰都柏林举行的 CHAOSScon EU 2022 上的富有洞察力的对话,上述对话激发这篇博文的想法。我们还要感谢审阅并帮助优化本文的 CHAOSS 社区的成员。
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/12/open-source-usage-metrics
-
-作者:[Georg Link][a]
-选题:[lkxed][b]
-译者:[CanYellow](https://github.com/CanYellow)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/georglink
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/18/5/metrics-project-success
-[2]: https://opensource.com/article/22/11/community-metrics
-
-[T1]: https://fosdem.org/
-[T2]: https://chaoss.community
From 7f335891944fe0415a350dc8b88a4e8930802095 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 7 Jan 2023 13:13:53 +0800
Subject: [PATCH 208/266] RP
@wxy
https://linux.cn/article-15420-1.html
---
... Steps Drops apt, Adds Flathub and Pipewire.md | 83 +++++++++++++++++++
... Steps Drops apt, Adds Flathub and Pipewire.md | 81 ------------------
2 files changed, 83 insertions(+), 81 deletions(-)
create mode 100644 published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md
delete mode 100644 sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md
diff --git a/published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md b/published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md
new file mode 100644
index 0000000000..97aa2ad8ee
--- /dev/null
+++ b/published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md
@@ -0,0 +1,83 @@
+[#]: subject: "Nitrux 2.6.0 Takes Bold Steps: Drops apt, Adds Flathub and Pipewire"
+[#]: via: "https://debugpointnews.com/nitrux-2-6-0-release/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15420-1.html"
+
+Nitrux 2.6.0 大胆抛弃 apt
+======
+
+![][1]
+
+> Nitrux 2.6.0 带有 Flathub、默认支持的 Pipewire、最新内核和 KDE 框架。
+
+![Nitrux 2.6.0 Desktop][2]
+
+[Nitrux Linux][3] 是基于 Debian 的,它带有一个名为 NX 桌面的修改版的 KDE Plasma 桌面。这个独特的 Linux 发行版带来了一套自己的建立在 Maui kit 和 Qt 之上的 Nitrux 应用程序。Nitrux 是无 systemd 的,使用 OpenRC 作为启动系统。所有这些独特的功能和令人惊叹的外观,使它成为当今最好的 Linux 发行版之一。
+
+Nitrux 2.6.0 被提升为一个主要版本,因为它对 12 月发布的 2.5.1 版本进行了关键的更新。
+
+### Nitrux 2.6.0 的新内容
+
+这个版本的一个主要重点是在 SDDM 显示管理器中引入 Plasma Wayland 会话。Wayland 还不是默认的,但可以作为选项选择。X11 仍然是默认的。我相信在下一个主要版本中 NItrux 团队可以默认启用 Wayland。
+
+此外,现代声音管理器 Pipewire 现在是默认的,因为它已经在 Ubuntu 和 Fedora 中标准化了,而且感觉很稳定。由于有了 Pipewire,你的音频工作流程将变得更好。
+
+Nitrux 2.6.0 还默认启用了最大的 Flatpak 应用程序仓库 - Flathub。这意味着你不需要再手动设置 Flatpak 和启用 Flathub。现在,Flatpak 应用程序的安装变得更加容易。
+
+其他值得注意的变化包括:Nitrux 使根(/)分区成为不可变分区,以防止它被破坏,Samba 包现在是 Nitrux 默认安装的一部分,Calamares 安装程序有了一个定制的自动分区方案。
+
+![Nitrux 2.6 安装自动分区][4]
+
+从一开始,Nitrux 就倾向于为其整个桌面组件提供自包含的可执行文件。主要的选择是 AppImage 文件格式。在这个版本中,你会得到默认的 Flathub 环境,而流行的 apt 软件包管理器现在被放弃了。这可能会改变一些用户的工作流程,因为 `apt` 命令将无法工作;尽管它是基于 Debian 的。
+
+因此,Nitrux 团队建议使用 Distrobox 容器来设置单独的环境,以便与 apt 一起使用。然而,对于普通用户来说,理解容器、不可变的根分区会有点困难。
+
+![apt 被放弃][5]
+
+讽刺的是 `apt` 会在安装时使用,因为 Calamares 需要它。然而,在安装完成后,它会被删除。
+
+> 现场 ISO 中包括 APT 和 dpkg,但这是因为 Calamares 需要它们来完成安装,并将从安装的系统中删除。
+>
+> —— NITRUX TEAM
+
+Nitrux 2.6.0 的核心是 liqurix 内核 6.1,以及游戏和多媒体功能。这个版本由 KDE Plasma 2.26.4、KDE Framework 5.101.0 和 Qt 5.15.7 LTS 驱动。
+
+如果你想阅读更多信息,可以在 [这里][6] 找到详细的发布说明。
+
+### 下载
+
+你可以从以下页面下载这个版本。然而,没有可用的升级路径。因此,建议进行新的安装。
+
+- [FOSS Torrents(Torrent)][7]
+- [Sourceforge(镜像)][8]
+- [OSDN(镜像)][9]
+
+参考自 [发布公告][10]。
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/nitrux-2-6-0-release/
+
+作者:[arindam][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2023/01/nitrux-head.jpg
+[2]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6.0-Desktop.jpg
+[3]: https://nxos.org/
+[4]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6-install-automatic-partition.jpg
+[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Screenshot-from-2023-01-05-13-44-57.png
+[6]: https://nxos.org/notes/notes-nitrux-2-6-0
+[7]: https://fosstorrents.com/distributions/nitrux/
+[8]: https://sourceforge.net/projects/nitruxos/files/Release/ISO
+[9]: https://osdn.net/projects/nitrux/releases/p18379
+[10]: https://nxos.org/changelog/release-announcement-nitrux-2-6-0/
diff --git a/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md b/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md
deleted file mode 100644
index 2a81845075..0000000000
--- a/sources/news/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md
+++ /dev/null
@@ -1,81 +0,0 @@
-[#]: subject: "Nitrux 2.6.0 Takes Bold Steps: Drops apt, Adds Flathub and Pipewire"
-[#]: via: "https://debugpointnews.com/nitrux-2-6-0-release/"
-[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Nitrux 2.6.0 Takes Bold Steps: Drops apt, Adds Flathub and Pipewire
-======
-
-![][1]
-
-**Nitrux 2.6.0 arrives with Flathub, Pipewire by default, latest Kernel and KDE framework.**
-
-![Nitrux 2.6.0 Desktop][2]
-
-[Nitrux Linux][3]is based on Debian, which features a modified version of the KDE Plasma desktop called NX Desktop. This unique Linux distribution brings its own set of Nitrux applications built upon Maui kit and Qt. Nitrux is systemd-free and uses OpenRC as an init system. With all these unique features and stunning looks, it is one of the best Linux distributions today.
-
-Nitrux 2.6.0 is bumped up to be a considerable major version due to critical updates since its prior release, 2.5.1 in December.
-
-### Nitrux 2.6.0: What’s New
-
-A major focus of this release is the introduction of the Plasma Wayland session in the SDDM display manager. It’s not default yet. But available as optional. X11 is still default. I believe in the next major release; the NItrux team can enable Wayland by default.
-
-In addition, the modern sound manager Pipewire is now default, as it was already standardized in Ubuntu and Fedora and feels stable. Thanks to Pipewire, your audio workflow will be much better.
-
-Nitrux 2.6.0 also enables the largest Flatpak app repo – Flathub, by default. That means you do not need to set up Flatpak & enable Flathub anymore manually. Installation of the Flatpak apps is now much easier.
-
-Other noteworthy changes include, Nitrux making the root (/) partition immutable to prevent it from breakage, the Samba package now part of Nitrux default install, and the Calamares installer getting a customized auto partition scheme.
-
-![Nitrux 2.6 install automatic partition][4]
-
-From the beginning, Nitrux prefers self-contained executables for its entire desktop components. The primary choice was the AppImage file format. You get Flathub set up by default in this release, whereas the popular apt package manager is now dropped. This might change some users’ workflow because the apt command won’t work; despite being based on Debian.
-
-Hence, the Nitrux team suggested using the Distrobox containers to set up the separate skeleton to be used with apt. However, it will be a little difficult for general users to understand the container, immutable root partition.
-
-![apt is not dropped][5]
-
-The irony is apt will be used during installation because Calamares needs it. However, it will be removed after installation is complete.
-
-> The Live ISO _includes APT and dpkg, but this is because Calamares needs them to complete the installation and will be removed from the installed system._Nitrux team
-
-At its core, Nitrux 2.6.0 features liqurix Kernel 6.1 aligned with gaming and multimedia. This version is powered by KDE Plasma 2.26.4, KDE Framework 5.101.0 and Qt 5.15.7 LTS.
-
-Detailed release notes are available [here][6] if you want to read more.
-
-### Download
-
-You can download this version from the following pages. However, there is no upgrade path available. Hence it is recommended to do a fresh installation.
-
-- [FOSS Torrents (Torrent)][7]
-- [Sourceforge (mirror)][8]
-- [OSDN (mirror)][9]
-
-Via [announcement][10]
-
---------------------------------------------------------------------------------
-
-via: https://debugpointnews.com/nitrux-2-6-0-release/
-
-作者:[arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://debugpointnews.com/author/dpicubegmail-com/
-[b]: https://github.com/lkxed
-[1]: https://debugpointnews.com/wp-content/uploads/2023/01/nitrux-head.jpg
-[2]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6.0-Desktop.jpg
-[3]: https://nxos.org/
-[4]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6-install-automatic-partition.jpg
-[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Screenshot-from-2023-01-05-13-44-57.png
-[6]: https://nxos.org/notes/notes-nitrux-2-6-0
-[7]: https://fosstorrents.com/distributions/nitrux/
-[8]: https://sourceforge.net/projects/nitruxos/files/Release/ISO
-[9]: https://osdn.net/projects/nitrux/releases/p18379
-[10]: https://nxos.org/changelog/release-announcement-nitrux-2-6-0/
From 1aa7f67904c0f9a2558ac2026150d9d77c7142a9 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 7 Jan 2023 17:02:02 +0800
Subject: [PATCH 209/266] RP
@geekpi
https://linux.cn/article-15421-1.html
---
...What is Firefox ESR How to Install it in Ubuntu.md | 39 ++++++++++---------
1 file changed, 21 insertions(+), 18 deletions(-)
rename {translated/tech => published}/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md (67%)
diff --git a/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
similarity index 67%
rename from translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
rename to published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
index 2955a79d75..481d09dc61 100644
--- a/translated/tech/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
+++ b/published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
@@ -3,30 +3,32 @@
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15421-1.html"
什么是 Firefox ESR?如何在 Ubuntu 中安装它?
======
-Ubuntu 的 snap 版本你不喜欢?不喜欢每一次 Firefox 的发布都要不断地改变东西?如果你重视稳定性而不是功能,你可以试试 Firefox ESR 版本。
+![][0]
+
+Ubuntu 的 Snap 版本你不喜欢?不喜欢每一次 Firefox 的发布都要不断地改变东西?如果你重视稳定性而不是功能,你可以试试 Firefox ESR 版本。
### 什么是 Firefox ESR?
Firefox ESR 是 Firefox 的特别版,它不一定像普通版那样每月都有新功能,但它能提供稳定和安全的浏览体验。这适用于企业、组织和机构,在这些地方,稳定性和核心功能比闪亮的新功能更重要。
-把 Firefox ESR 看作是 Linux 发行版的长期稳定版本。他们不一定得到全新的功能,但他们会得到定期的安全和维护更新。这给了用户一个熟悉和稳定的环境。
+可以把 Firefox ESR 看作是 Linux 发行版的长期稳定版本。它们不一定得到全新的功能,但它们会得到定期的安全和维护更新。这给了用户一个熟悉和稳定的环境。
#### 你为什么要关心 Firefox ESR?
Firefox 几乎每个月都会发布一个新版本。它包含安全和功能更新。
-但有些人可能不喜欢功能的加入和删除。如果在更新之后,你一直想知道某些设置到哪里去了,或者不喜欢与以前不同的东西,Firefox ESR可能值得一试。
+但有些人可能不喜欢各种功能的加入和删除。如果在更新之后,你一直想知道某些设置到哪里去了,或者不喜欢与以前不同的东西,Firefox ESR 可能值得一试。
-基本上,如果你更看重稳定性而不是新功能,那么 Firefox ESR 就适合你。这也是与 Debian 相同的 Firefox 版本,Debian 以其是市场上最稳定的发行版之一而闻名。
+基本上,如果你更看重稳定性而不是新功能,那么 Firefox ESR 就适合你。这也是 Debian 中携带的 Firefox 版本,Debian 以其是市场上最稳定的发行版之一而闻名。
-让我告诉你如何在 Ubuntu 上获得 Firefox ESR。**_你可以同时安装 Firefox 和 Firefox-ESR 两个版本。它们的标识没有视觉上的区别,所以你必须注意你打开的是哪个火狐版本。_**
+让我告诉你如何在 Ubuntu 上获得 Firefox ESR。**你可以同时安装 Firefox 和 Firefox-ESR 两个版本。它们的标识没有视觉上的区别,所以你必须注意你打开的是哪个火狐版本。**
### 在 Ubuntu 中安装 Firefox ESR
@@ -43,7 +45,7 @@ Firefox-ESR 在 Ubuntu 的默认仓库中是不可用的,所以你可以使用
PPA 只不过是一个由个别技术人员或开发者维护的仓库,拥有默认仓库所没有的东西。
-如果你想了解更多关于 PPA 的信息,我建议你查看我们的其他指南,其中解释了[如何在 Linux 上使用 PPA][1]。
+如果你想了解更多关于 PPA 的信息,我建议你查看我们的其他指南,其中解释了 [如何在 Linux 上使用 PPA][1]。
打开你的终端,使用给定的命令来添加 Firefox-ESR 的 PPA:
@@ -75,7 +77,7 @@ firefox-esr -v
![check installed version of firefox esr in ubuntu][3]
-##### 从 Ubuntu 卸载 Firefox-ESR
+如何从 Ubuntu 卸载 Firefox-ESR?
如果 ESR 对你的工作来说感觉太过时了,或者由于其他原因你想从你的系统中删除它,你可以按照以下步骤删除 Firefox-ESR 包和仓库。
@@ -85,7 +87,7 @@ firefox-esr -v
sudo apt remove firefox-esr
```
-现在,你可以使用给定的命令来[从 Ubuntu 删除 PPA][4]:
+现在,你可以使用给定的命令来 [从 Ubuntu 删除 PPA][4]:
```
sudo add-apt-repository --remove ppa:mozillateam/ppa
@@ -95,9 +97,9 @@ sudo add-apt-repository --remove ppa:mozillateam/ppa
#### 方法 2:使用 Snap 安装 Firefox-ESR
-不管你爱不爱它,Snaps 在 Ubuntu 上是预先配置好的,我发现使用 Snaps 是安装软件包的一个很好的方法,特别是当你想避免从源码构建它们或使用 PPA 时。
+不管你爱不爱它,Snap 在 Ubuntu 上是预先配置好的,我发现使用 Snap 是安装软件包的一个很好的方法,特别是当你想避免从源码构建它们或使用 PPA 时。
-使用 Snaps 安装 Firefox-ESR,你需要做的就是使用给定的命令:
+使用 Snap 安装 Firefox-ESR,你需要做的就是使用给定的命令:
```
sudo snap install firefox --channel=esr/stable
@@ -105,7 +107,7 @@ sudo snap install firefox --channel=esr/stable
![install firefox esr using snaps in ubuntu][5]
-##### 删除 Firefox-ESR Snap
+如何删除 Firefox-ESR Snap?
要删除 Firefox-ESR(snap 包),请使用 [snap remove 命令][6]:
@@ -128,15 +130,16 @@ via: https://itsfoss.com/firefox-esr-ubuntu/
作者:[Sagar Sharma][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/sagar/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/ppa-guide/
-[2]: https://itsfoss.com/wp-content/uploads/2022/11/add-firefox-esr-repository-in-ubuntu.png
-[3]: https://itsfoss.com/wp-content/uploads/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png
+[2]: https://itsfoss.com/content/images/wordpress/2022/11/add-firefox-esr-repository-in-ubuntu.png
+[3]: https://itsfoss.com/content/images/wordpress/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png
[4]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/
-[5]: https://itsfoss.com/wp-content/uploads/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png
+[5]: https://itsfoss.com/content/images/wordpress/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png
[6]: https://itsfoss.com/remove-snap/
+[0]: https://img.linux.net.cn/data/attachment/album/202301/07/165704ojar9wfkvptwop0w.jpg
\ No newline at end of file
From d0ba5759e535eb2902d988a08a7e281fef86f1ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 7 Jan 2023 19:43:29 +0800
Subject: [PATCH 210/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230106.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Us?=
=?UTF-8?q?e=20time-series=20data=20to=20power=20your=20edge=20projects=20?=
=?UTF-8?q?with=20open=20source=20tools.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...power your edge projects with open source tools.md | 123 ++++++++++++++++++
1 file changed, 123 insertions(+)
create mode 100644 sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md
diff --git a/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md
new file mode 100644
index 0000000000..80c70c7b4b
--- /dev/null
+++ b/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md
@@ -0,0 +1,123 @@
+[#]: subject: "Use time-series data to power your edge projects with open source tools"
+[#]: via: "https://opensource.com/article/23/1/time-series-data-edge-open-source-tools"
+[#]: author: "Zoe Steinkamp https://opensource.com/users/zoesteinkamp"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Use time-series data to power your edge projects with open source tools
+======
+
+Gathering data as it changes over the passage of time is known as time-series data. Today, it has become a part of every industry and ecosystem. It is a large part of the growing IoT sector and will become a larger part of everyday people's lives. But time-series data and its requirements are hard to work with. This is because there are no tools that are purpose-built to work with time-series data. In this article, I go into detail about those problems and how InfluxData has been working to solve them for the past 10 years.
+
+### InfluxData
+
+InfluxData is an open source time-series database platform. You may know about the company through [InfluxDB][1], but you may not have known that it specialized in time-series databases. This is significant, because when managing time-series data, you deal with two issues — storage lifecycle and queries.
+
+When it comes to storage lifecycle, it's common for developers to initially collect and analyze highly detailed data. But developers want to store smaller, downsampled datasets that describe trends without taking up as much storage space.
+
+When querying a database, you don't want to query your data based on IDs. You want to query based on time ranges. One of the most common things to do with time-series data is to summarize it over a large period of time. This kind of query is slow when storing data in a typical relational database that uses rows and columns to describe the relationships of different data points. A database designed to process time-series data can handle queries exponentially faster. InfluxDB has its own built-in querying language: Flux. This is specifically built to query on time-series data sets.
+
+![Image of how Telegraf works.][2]
+
+### Data acquisition
+
+Data acquisition and data manipulation come out of the box with some awesome tools. InfluxData has over 12 client libraries that allow you to write and query data in the coding language of your choice. This is a great tool for custom use cases. The open source ingest agent, Telegraf, includes over 300 input and output plugins. If you're a developer, you can contribute your own plugin, as well.
+
+InfluxDB can also accept a CSV upload for small historical data sets, as well as batch imports for large data sets.
+
+```
+import math
+bicycles3 = from(bucket: "smartcity")
+ |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z)
+ |> filter(fn: (r) => r._measurement == "city_IoT")
+ |> filter(fn: (r) => r._field == "counter")
+ |> filter(fn: (r) => r.source == "bicycle")
+ |> filter(fn: (r) => r.neighborhood_id == "3")
+ |> aggregateWindow(every: 1h, fn: mean, createEmpty:false)
+bicycles4 = from(bucket: "smartcity")
+ |> range(start:2021-03-01T00:00:00z, stop: 2021-04-01T00:00:00z)
+ |> filter(fn: (r) => r._measurement == "city_IoT")
+ |> filter(fn: (r) => r._field == "counter")
+ |> filter(fn: (r) => r.source == "bicycle")
+ |> filter(fn: (r) => r.neighborhood_id == "4")
+ |> aggregateWindow(every: 1h, fn: mean, createEmpty:false)join(tables: {neighborhood_3: bicycles3, neighborhood_4: bicycles4}, on ["_time"], method: "inner")
+ |> keep(columns: ["_time", "_value_neighborhood_3","_value_neighborhood_4"])
+ |> map(fn: (r) => ({
+ r with
+ difference_value : math.abs(x: (r._value_neighborhood_3 - r._value_neighborhood_4))
+ }))
+```
+
+### Flux
+
+Flux is our internal querying language built from the ground up to handle time-series data. It's also the underlying powerhouse for a few of our tools, including tasks, alerts, and notifications. To dissect the flux query from above, you need to define a few things. For starters, a "bucket" is what we call a database. You configure your buckets and then add your data stream into them. The query calls the smartcity bucket, with the range of a specific day (a 24-hour period to be exact.) You can get all the data from the bucket, but most users include a data range. That's the most basic flux query you can do.
+
+Next, I add filters, which filter the data down to something more exact and manageable. For example, I filter for the count of bicycles in the neighborhood assigned to the id of 3. From there, I use aggregateWindow to get the mean for every hour. That means I expect to receive a table with 24 columns, one for every hour in the range. I do this exact same query for neighborhood 4 as well. Finally, I join the two tables and get the differences between bike usage in these two neighborhoods.
+
+This is great if you want to know what hours are high-traffic hours. Obviously, this is just a small example of the power of flux queries. But it gives a great example of some of the tools flux comes with. I also have a large amount of data analysis and statistics functions. But for that, I suggest checking out the Flux documentation.
+
+```
+import "influxdata/influxdb/tasks"
+option task = {name: PB_downsample, every: 1h, offset: 10s}
+from(bucket: "plantbuddy")
+ |>range(start: tasks.lastSuccess(orTime: -task.every))
+ |>filter(fn: (r) => r["_measurement"] == "sensor_data")
+ |>aggregateWindow(every: 10m, fn:last, createEmpty:false)
+ |>yield(name: "last")
+ |>to(bucket: "downsampled")
+```
+
+### Tasks
+
+An InfluxDB task is a scheduled Flux script that takes a stream of input data and modifies or analyzes it in some way. It then stores the modified data in a new bucket or performs other actions. Storing a smaller data set into a new bucket is called "downsampling," and it's a core feature of the database, and a core part of the time-series data lifecycle.
+
+You can see in the current task example that I've downsampled the data. I'm getting the last value for every 10-minute increment and storing that value in the downsampled bucket. The original data set might have had thousands of data points in those 10 minutes, but now the downsampled bucket only has 60 new values. One thing to note is that I'm also using the last success function in range. This tells InfluxDB to run this task from the last time it ran successfully, just in case it has failed for the past 2 hours, in which case it can go back three hours in time to the last successful run. This is great for built-in error handling.
+
+![Image of the checks and alerts notification system.][3]
+
+### Checks and alerts
+
+InfluxDB includes an alerting or checks and notification system. This system is very straightforward. You start with a check that looks at the data periodically for anomalies that you've defined. Normally, this is defined with thresholds. For example, any temperature value under 32° F gets assigned a value of `WARN`, and anything above 32° F gets assigned a value of `OK`, and anything below 0° F gets a value of `CRITICAL`. From there, your check can run as often as you deem necessary. There is a recorded history of your checks and the current status of each. You are not required to set up a notification when it's not needed. You can just reference your alert history as needed.
+
+Many people choose to set up their notifications. For that, you need to define a notification endpoint. For example, a chat application could make an HTTP call to receive your notifications. Then you define when you would like to receive notifications, for example you can have checks run every hour. You can run notifications every 24 hours. You can have your notification respond to a change in the value, for example `WARN` to `CRITICAL`, or when a value is `CRITICAL`, regardless of it changing from `OK` to `WARN`. This is a highly customizable system. The Flux code that's created from this system can also be edited.
+
+![Image of the new Edge feature.][4]
+
+### Edge
+
+To wrap up, I'd like to bring all the core features together, including a very special new feature that's recently been released. Edge to cloud is a very powerful tool that allows you to run the open source InfluxDB and locally store your data in case of connectivity issues. When connectivity is repaired, it streams the data to the InfluxData cloud platform.
+
+This is significant for edge devices and important data where any loss of data is detrimental. You define that you want a bucket to be replicated to the cloud, and then that bucket has a disk-backed queue to store the data locally. Then you define what your cloud bucket should replicate into. The data is stored locally until connected to the cloud.
+
+### InfluxDB and the IoT Edge
+
+Suppose you have a project where you want to [monitor the health of household plants][5] using IoT sensors attached to the plant. The project is set up using your laptop as the edge device. When your laptop is closed or otherwise off, it stores the data locally, and then streams it to my cloud bucket when reconnected.
+
+![Image showing how Plant buddy works.][6]
+
+One thing to notice is that this downsamples data on the local device before storing it in the replication bucket. Your plant's sensors provide a data point for every second. But it condenses the data to be an average of one minute so you have less data to store. In the cloud account, you might add some alerts and notifications that let you know when the plant's moisture is below a certain level and needs to be watered. There could also be visuals you could use on a website to tell users about their plants' health.
+
+Databases are the backbone of many applications. Working with time-stamped data in a time series database platform like InfluxDB saves developers time, and gives them access to a wide range of tools and services. The maintainers of InfluxDB love seeing what people are building within our open source community, so connect with us and share your projects and code with others!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/time-series-data-edge-open-source-tools
+
+作者:[Zoe Steinkamp][a]
+选题:[lkxed][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/zoesteinkamp
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/17/8/influxdb-time-series-database-stack
+[2]: https://opensource.com/sites/default/files/2022-12/Telegraf.png
+[3]: https://opensource.com/sites/default/files/2022-12/TimeSeriesChecks%26Alerts.png
+[4]: https://opensource.com/sites/default/files/2022-12/TimSeriesEdge.png
+[5]: https://opensource.com/article/22/5/plant-care
+[6]: https://opensource.com/sites/default/files/2022-12/TimeSeriesplantbuddy.png
From 31db9f791501407d12ba1c4003e276ad4242e191 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 7 Jan 2023 19:46:30 +0800
Subject: [PATCH 211/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020230106.2=20=E2=AD=90=EF=B8=8F=20Budgie's=20Upcoming?=
=?UTF-8?q?=2010.7=20Release=20Promises=20These=203=20Key=20Improvements?=
=?UTF-8?q?=20for=20Linux=20Users.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...es These 3 Key Improvements for Linux Users.md | 97 +++++++++++++++++++
1 file changed, 97 insertions(+)
create mode 100644 sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md
diff --git a/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md b/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md
new file mode 100644
index 0000000000..461694fa92
--- /dev/null
+++ b/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md
@@ -0,0 +1,97 @@
+[#]: subject: "Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users"
+[#]: via: "https://news.itsfoss.com/budgie-10-7-features/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users
+======
+
+Budgie 10.7 is packed with valuable improvements. Check them out here.
+
+![Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users][1]
+
+Budgie is a desktop environment designed to keep clutter to a minimum and provide users with a clean/minimal experience.
+
+Back in January 2022, the former-co-lead of Solus, **Joshua Strobl**[left Solus][2] to work on [SerpentOS][3], but he continued to work on Budgie.
+
+So, he forked the project into a new repository and formed the [Buddies Of Budgie][4] organization. Three months after that, they released **Budgie 10.6**.
+
+It was a good release, if not extraordinary.
+
+Moving forward, they have shared the plans for 2023 which include the release of **Budgie 10.7**.
+
+[Joshua Strobl][5] also mentioned more about the plans in the blog post:
+
+> At the very least, it should serve as a good foundation to build on and provide a clear picture on where Budgie Desktop is going this year: Budgie 10.x will receive new features, QoL improvements, and fixes. Budgie 11 development will be underway.
+
+### Budgie 10.7: What Can You Expect?
+
+The development of Budgie 10.7 has been going on since last year. It was supposed to release in 2022, but more time was required to serve a polished experience.
+
+A lot of work has been done, but some of the notable ones include the following three changes:
+
+- **Updates to Budgie Menu**
+- **New Budgie Screenshot Tool**
+- **Improvements to Budgie Run Dialog**
+
+#### Updates to Budgie Menu
+
+![budgie 10.7 menu][6]
+
+For this release, Budgie Menu is set to receive several improvements, such as:
+
+- A new power menu with all the usual options, such as **Suspend, Hibernate, Logout, and Power Off**.
+- Updated personal user menu with quick XDG directory access. This will let you open a file manager window directly into folders like Home, Documents, Music, etc.
+- Quick access to Budgie Control Center and Desktop Settings.
+- Ability to show various desktop settings from the menu itself.
+
+#### Budgie Screenshot Tool
+
+![budgie 10.7 screenshot tool][7]
+
+Finally, you won't need to download another tool to take a screenshot on Budgie; from 10.7 onwards, it will feature a native screenshot application.
+
+It will have capture support for the screen, window, and even selection capture!
+
+#### Improvements to Budgie Run Dialog
+
+![budgie 10.7 run dialog][8]
+
+The Budgie Run dialog will receive many improvements, such as:
+
+- A new application indexer will be used for Budgie Menu to find and sort applications. It is supposed to provide a 'predictable fuzzy search experience'.
+- Improved calculation of dialog sizing according to the work area of the monitor.
+- Better styling of labels for application names and descriptions.
+
+### Release & Future Plans
+
+According to their [announcement][9], they intend to release Budgie 10.7 sometime in **Q1, 2023.** They haven't settled for a specific date yet.
+
+A 10.7.1 release with bug fixes has been planned soon after, and the release of **Budgie 10.8** in Q2, 2023.
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/budgie-10-7-features/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/budgie-10-7-release.png
+[2]: https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/
+[3]: https://serpentos.com
+[4]: https://blog.buddiesofbudgie.org
+[5]: https://joshuastrobl.com
+[6]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Menu.jpg
+[7]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_SS.png
+[8]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Run.jpg
+[9]: https://blog.buddiesofbudgie.org/state-of-the-budgie-2022/
From 5e71697d6f9ad63aafe8b1a8e289402e67e3d01c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 7 Jan 2023 19:47:03 +0800
Subject: [PATCH 212/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230107.0=20=E2=AD=90=EF=B8=8F=20Learn=20w=20Command?=
=?UTF-8?q?=20in=20Linux=20&=20BSD=20with=20Examples.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...earn w Command in Linux & BSD with Examples.md | 115 ++++++++++++++++++
1 file changed, 115 insertions(+)
create mode 100644 sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
diff --git a/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
new file mode 100644
index 0000000000..960d1c4af8
--- /dev/null
+++ b/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
@@ -0,0 +1,115 @@
+[#]: subject: "Learn w Command in Linux & BSD with Examples"
+[#]: via: "https://www.debugpoint.com/w-command-linux-examples/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Learn w Command in Linux & BSD with Examples
+======
+
+**Here’s a beginner’s guide on understanding the w command in Linux & BSD with several examples.**
+
+![][1]
+
+_This article is part of the [Linux command][2] learning series._
+
+### w command
+
+The `w` command is a utility in Linux that displays information about the users currently logged into the system and their processes. It shows who is logged on and what activities they are doing. That means it can show what processes they are running in their system.
+
+### Syntax
+
+Here is the basic syntax of the `w` command:
+
+```
+w [options] [username]
+```
+
+The `w` command takes an optional list of options, followed by an optional username. If a username is specified, `w` will only show information about processes owned by that user.
+
+### Examples of the w command and its usage
+
+Here are some examples of using the `w` command.
+
+When you run it with only w, it shows the following output.
+
+```
+$ w
+ 21:45:07 up 1 day, 12:48, 1 user, load average: 1.05, 0.85, 0.56
+USER TTY LOGIN@ IDLE JCPU PCPU WHAT
+debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binary
+```
+
+![a basic output of w command in Linux][3]
+
+Explanation: The USER column gives you the username, followed by the terminal number, login date-time, IDLE time, CPU usage, and the process being executed by the user.
+
+- `USER` – Logged on user name in your Linux or BSD system.
+- `TTY` – Terminal identifier number for the current session.
+- `FROM` – Hostname or IP address of the user.
+- `LOGIN@` – User logged in time. It sometimes shows dates based on your system settings.
+- `IDLE` – Idle time elapsed since the user interacted with the terminal.
+- `JCPU` – CPU time used by all the user processes for that session.
+- `PCPU` – Time used by the process for the user, which is mentioned in the WHAT field.
+- `WHAT` – Current process with arguments.
+
+Here’s another example of the w command with two users logged in a virtual machine environment. As you can see, two user names are shown with separate processes with process parameters currently running.
+
+![w command output for a demo multi-user environment][4]
+
+Let’s take a look at some options for this command.
+
+To show stop showing header, use the`-h` option. It’s identical to the `--no-header` switch.
+
+```
+$ w -h
+```
+
+The -f option toggles the visibility of FROM field in your output.
+
+```
+$ w -f
+```
+
+Use the `-s` option to print a short version of the output excluding JCPU, PCPU and LOGIN@ information.
+
+```
+$ w -s
+```
+
+To show a list of all processes owned by a specific user (for example, `debugpoint`):
+
+```
+$ w debugpoint
+```
+
+### Closing Notes
+
+I hope this article helps you to understand w command and its basics. You can also read the [w man pages][5] to learn more. Let me know if you have any questions.
+
+**This article is part of the [Linux command][2] learning series**.
+
+[_Using Mastodon? Follow us at floss.social/@debugpoint_][6]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/w-command-linux-examples/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/whead.jpg
+[2]: https://www.debugpoint.com/category/linux-commands
+[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/a-basic-outout-of-w-command-in-Linux.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/w-command-output-for-a-demo-multi-user-environment.jpg
+[5]: https://linux.die.net/man/1/w
+[6]: https://floss.social/@debugpoint
From 2cd2072bd540d21210ebfec45c2b991db74f30eb Mon Sep 17 00:00:00 2001
From: Figaro Cao
Date: Sat, 7 Jan 2023 20:29:56 +0800
Subject: [PATCH 213/266] Finished translating of Create a timer on Linux
Finished translating of Create a timer on Linux
---
.../tech/20211012 Create a timer on Linux.md | 87 ++++++++++---------
1 file changed, 44 insertions(+), 43 deletions(-)
diff --git a/sources/tech/20211012 Create a timer on Linux.md b/sources/tech/20211012 Create a timer on Linux.md
index ff4f334435..12934668ca 100644
--- a/sources/tech/20211012 Create a timer on Linux.md
+++ b/sources/tech/20211012 Create a timer on Linux.md
@@ -7,32 +7,33 @@
[#]: publisher: " "
[#]: url: " "
-Create a timer on Linux
+在Linux中创建计时器
======
-A tutorial showing how to create a POSIX-compliant interval timer.
+这是一个演示如何创建POSIX兼容的间隔计时器的教程
+
![Team checklist][1]
-The timing of certain events is a common task for a developer. Common scenarios for timers are watchdogs, cyclic execution of tasks, or scheduling events for a specific time. In this article, I show how to create a POSIX-compliant interval timer using [timer_create(...)][2].
+对开发人员来说,确定某些事件的时间是一项常见任务。 计时器的常见场景是监督任务的循环执行或在特定时间安排事件。 在这篇文章中,我将演示如何使用 [timer_create(...)][2]创建一个POSIX兼容的间隔计时器。
-You can download the source code for the following examples from [GitHub][3].
+你可以从[GitHub][3]下载下面样例的源代码。
-### Prepare Qt Creator
+### 准备 Qt Creator
-I used [Qt Creator][4] as the IDE for this example. To run and debug the example code in Qt Creator, clone the [GitHub][3] repository, open Qt Creator, and go to **File -> Open File or Project...** and choose the **CMakeLists.txt**:
+我使用[Qt Creator][4]作为样例的IDE。为了在Qt Creator运行和调试样例代码,克隆[GitHub][3]仓库,打开Qt Creator,在**File -> Open File or Project...** 并选择 **CMakeLists.txt**:
![Qt Creator open project][5]
-Open a project in Qt Creator (CC-BY-SA 4.0)
+在Qt Creator中打开项目 (CC-BY-SA 4.0)
-After selecting the toolchain, click on **Configure Project**. The project contains three independent examples (we will only cover two of them in this article). With the green-marked menu, switch between the configurations for each example and activate **Run in terminal** for each of them (see the yellow mark below). The currently active example for building and debugging can be selected over the **Debug** button on the bottom left corner (see the orange mark below):
+选择工具链之后,点击 **Configure Project**。这个项目包括三个独立的样例(我们在这篇文章中将只会用到其中的两个)。使用绿色标记出来的菜单,可以在每个样例的配置之间切换,并为每个样例激活在终端运行**Run in terminal**(用黄色标记)。当前用于构建和调试的活动示例可以通过左下角的**Debug**按钮进行选择(参见下面的橙色标记)。
![Project configuration][6]
-Project configuration (CC-BY-SA 4.0)
+项目配置 (CC-BY-SA 4.0)
-### Threading timer
+### 线程计时器
-Let's take a look at the _simple_threading_timer.c_ example. This is the simplest one: It shows how an interval timer is created, which calls the function **expired** on expiration. On each expiration, a new thread is created in which the function **expiration** is called.
+让我们看看_simple_threading_timer.c_样例。这是最简单的一个。它展示了一个调用了超时函数**expired**的间隔计时器是如何被创建的。
```
@@ -59,11 +60,11 @@ int main()
struct t_eventData eventData = { .myData = 0 };
- /* sigevent specifies behaviour on expiration */
+ /* sigevent指定了过期时要执行的操作 */
struct sigevent sev = { 0 };
- /* specify start delay and interval
- * it_value and it_interval must not be zero */
+ /* 指定启动延时时间和间隔时间
+ * it_value和it_interval不能为零 */
struct itimerspec its = { .it_value.tv_sec = 1,
.it_value.tv_nsec = 0,
@@ -77,7 +78,7 @@ int main()
sev.sigev_notify_function = &expired;
sev.sigev_value.sival_ptr = &eventData;
- /* create timer */
+ /* 创建计时器 */
res = timer_create(CLOCK_REALTIME, &sev, &timerId);
if (res != 0){
@@ -85,7 +86,7 @@ int main()
[exit][10](-1);
}
- /* start timer */
+ /* 启动计时器 */
res = timer_settime(timerId, 0, &its, NULL);
if (res != 0){
@@ -104,24 +105,24 @@ void expired(union sigval timer_data){
}
```
-The advantage of this approach is its small footprint, in terms of code and simple debugging. The disadvantage is the additional overhead due to the creation of a new thread on expiration and, consequently, the less deterministic behavior.
+这种方法的优点是在代码和简单的调试方面占用空间小。缺点是由于到期时创建新线程而增加额外的开销和因此导致的不太确定的结果。
-### Interrupt Signal Timer
+### 中断信号计时器
-Another possibility to be notified by an expired timer is based on a [kernel signal][12]. Instead of creating a new thread each time the timer expires, the kernel sends a signal to the process, the process is interrupted, and the corresponding signal handler is called.
+超时计时器通知的另一种可能性是基于[内核信号][12]。 内核不是在每次计时器过期时创建一个新线程,而是向进程发送一个信号,进程被中断,并调用相应的信号处理程序。
-As the default action when receiving a signal is to terminate the process (see [signal][13] man page), we have to prepare Qt Creator in advance so that properly debugging is possible.
+由于接收信号时的默认操作是终止进程(参考[信号][13]手册页),我们必须要提前准备Qt Creator,以便进行正确的调试。
-The default behavior of Qt Creator when the debuggee receives a signal is:
+当被调试对象接收到一个信号时,Qt Creator的默认行为是:
- * Interrupt execution and switch to the debugger context.
- * Display a pop-up window that notifies the user about the reception of a signal.
+ * 中断执行并切换到调试器上下文。
+ * 显示一个弹出窗口,通知用户接收到信号。
-Both actions are not wanted as the reception of a signal is part of our application.
+这两种操作都不需要,因为信号的接收是我们应用程序的一部分。
-Qt Creator uses GDB in the background. In order to prevent GDB from stopping the execution when the process receives a signal, go to **Tools** -> **Options**, select **Debugger**, and navigate to **Locals & Expressions**. Add the following expression to _Debugging Helper Customization_:
+Qt Creator在后台使用GDB。为了防止GDB在进程接收到信号时停止执行,在“工具”菜单**Tools** -> **Options**,选择 **Debugger**,并导航到**Locals & Expressions**。添加下面的表达式到_Debugging Helper Customization_:
```
@@ -130,23 +131,23 @@ Qt Creator uses GDB in the background. In order to prevent GDB from stopping the
![Signal no stop with error][14]
-Sig 34 no stop with error (CC-BY-SA 4.0)
+Sig 34 发生错误时未停止 (CC-BY-SA 4.0)
-You can find more information about GDB signal handling in the [GDB documentation][15].
+你可以在[GDB documentation][15]找到更多关于GDB信号处理的信息。
-Next, we want to suppress the pop-up window that notifies us every time a signal is received when we stop in the signal handler:
+接下来,当我们在信号处理程序中停止时,我们想要抑制每次接收到信号时通知我们的弹出窗口:
![Signal 34 pop up box][16]
-Signal 34 pop-up box (CC-BY-SA 4.0)
+Signal 34 弹出窗口 (CC-BY-SA 4.0)
-To do so, navigate to the tab **GDB** and uncheck the marked checkbox:
+为此,导航到**GDB**标签并取消勾选标记的复选框:
![Timer signal windows][17]
-Timer signal windows (CC-BY-SA 4.0)
+计时器信号窗口 (CC-BY-SA 4.0)
-Now you can properly debug the _signal_interrupt_timer_. The actual implementation of the signal timer is a bit more complex:
+现在你可以正确的调试_signal_interrupt_timer_。真正的信号计时器的实施会更复杂一些:
```
@@ -177,10 +178,10 @@ int main()
struct sigevent sev = { 0 };
struct t_eventData eventData = { .myData = 0 };
- /* specifies the action when receiving a signal */
+ /* 指定收到信号时的操作 */
struct sigaction sa = { 0 };
- /* specify start delay and interval */
+ /* 指定启动延时的时间和间隔时间 */
struct itimerspec its = { .it_value.tv_sec = 1,
.it_value.tv_nsec = 0,
.it_interval.tv_sec = 1,
@@ -193,7 +194,7 @@ int main()
sev.sigev_signo = SIGRTMIN;
sev.sigev_value.sival_ptr = &eventData;
- /* create timer */
+ /* 创建计时器 */
res = timer_create(CLOCK_REALTIME, &sev, &timerId);
if ( res != 0){
@@ -201,22 +202,22 @@ int main()
[exit][10](-1);
}
- /* specifz signal and handler */
+ /* 指定信号和处理程序 */
sa.sa_flags = SA_SIGINFO;
sa.sa_sigaction = handler;
- /* Initialize signal */
+ /* 初始化信号 */
sigemptyset(&sa.sa_mask);
[printf][7]("Establishing handler for signal %d\n", SIGRTMIN);
- /* Register signal handler */
+ /* 注册信号处理程序 */
if (sigaction(SIGRTMIN, &sa, NULL) == -1){
[fprintf][8](stderr, "Error sigaction: %s\n", [strerror][9](errno));
[exit][10](-1);
}
- /* start timer */
+ /* 启动计时器 */
res = timer_settime(timerId, 0, &its, NULL);
if ( res != 0){
@@ -239,11 +240,11 @@ handler(int sig, siginfo_t *si, void *uc)
}
```
-In contrast to the threading timer, we have to initialize the signal and register a signal handler. This approach is more performant as it won't cause the creation of additional threads. For this reason, the execution of the signal handler is also more deterministic. The drawback is clearly the extra configuration effort to debug this properly.
+与线程计时器相反,我们必须初始化信号并注册一个信号处理程序。这种方法性能更好,因为它不会导致创建额外的线程。因此,信号处理程序的执行也更加确定。缺点显然是正确调试需要额外的配置工作。
-### Summary
+### 总结
-Both methods described in this article are close-to-the-kernel implementations of timers. Even if the [timer_create(...)][2] function is part of the POSIX specification, it is not possible to compile the sample code on a FreeBSD system due to small differences in data structures. Besides this drawback, such an implementation gives you fine-grained control for general-purpose timing applications.
+本文中描述的两种方法都是计时器的接近内核的实现。即使[timer_create(...)][2]函数是POSIX规范的一部分, 在FreeBSD系统上编译样例代码是不可能的,因为数据结构的差异很小。除了这个缺点之外,这种实现还为通用计时应用程序提供了细粒度控制。
--------------------------------------------------------------------------------
@@ -251,7 +252,7 @@ via: https://opensource.com/article/21/10/linux-timers
作者:[Stephan Avenwedde][a]
选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
+译者:[FigaroCao](https://github.com/FigaroCao)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From 9a0754fb0add8391379a89e0e27a91be24bd09ed Mon Sep 17 00:00:00 2001
From: Figaro Cao
Date: Sat, 7 Jan 2023 20:34:14 +0800
Subject: [PATCH 214/266] Rename sources/tech/20211012 Create a timer on
Linux.md to translated/tech/20211012 Create a timer on Linux.md
moved to translated folder
---
{sources => translated}/tech/20211012 Create a timer on Linux.md | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename {sources => translated}/tech/20211012 Create a timer on Linux.md (100%)
diff --git a/sources/tech/20211012 Create a timer on Linux.md b/translated/tech/20211012 Create a timer on Linux.md
similarity index 100%
rename from sources/tech/20211012 Create a timer on Linux.md
rename to translated/tech/20211012 Create a timer on Linux.md
From 8c60a4a9612e2ead3f20c1d2cf300294eb9cec63 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 8 Jan 2023 11:33:44 +0800
Subject: [PATCH 215/266] RP
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@CanYellow
https://linux.cn/article-15423-1.html
很棒!
---
...20210718 Is Open-Source Software Secure.md | 105 +++++++++---------
1 file changed, 53 insertions(+), 52 deletions(-)
rename {translated/talk => published}/20210718 Is Open-Source Software Secure.md (51%)
diff --git a/translated/talk/20210718 Is Open-Source Software Secure.md b/published/20210718 Is Open-Source Software Secure.md
similarity index 51%
rename from translated/talk/20210718 Is Open-Source Software Secure.md
rename to published/20210718 Is Open-Source Software Secure.md
index 7e0b33aec4..cc02f9b43e 100644
--- a/translated/talk/20210718 Is Open-Source Software Secure.md
+++ b/published/20210718 Is Open-Source Software Secure.md
@@ -3,18 +3,20 @@
[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/)
[#]: collector: (lujun9972)
[#]: translator: (CanYellow)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
+[#]: reviewer: (wxy)
+[#]: publisher: (wxy)
+[#]: url: (https://linux.cn/article-15423-1.html)
开源软件安全吗?
======
-作为一个偏爱 [Linux桌面发行版][1] 并鼓励使用开源软件的人,你可能期待就标题中提出的问题得到一个响亮的**肯定**回答。
+![][0]
-然而,我并不打算仅限于讨论开源软件的优点。让我们一起探索更多的内容吧!
+作为一个偏爱 [在桌面电脑上使用 Linux][1],并鼓励使用开源软件的人,你可能期待就标题中提出的问题得到一个响亮的**肯定**回答。
-本文,我计划分享我关于开源软件是否安全的思考以及哪些事情与开源软件的安全性相关。
+然而,我并不打算仅限于讨论开源软件的优点。让我们一起探索更多观点!
+
+在本文,我计划分享我关于开源软件是否安全的思考,以及哪些事情与开源软件的安全性相关。
### 为什么你需要关注开源软件是否安全?
@@ -22,123 +24,119 @@
举个例子,大多数专有软件工具依赖于某种形式的开源库来保证其正常工作。
-此外,各种规模的公司(包括 Google、Microsoft 和 Facebook )依赖开源软件或者以某种途径向开源社区贡献资源是有原因的。
+此外,各种规模的公司(包括谷歌、微软和 Facebook)依赖开源软件或者以某种途径向开源社区贡献资源是有原因的。
因此,开源软件的安全性是有必要了解的。
-### 有关开源软件安全性的谣言
+### 有关开源软件安全性的迷思
![][3]
虽然有多种理由证明开源软件在安全性方面的缺陷,然而其中一些实际毫无意义。
-#### 任何人都可以查看 & 恶意利用开源软件代码
+#### 任何人都可以查看并恶意利用开源软件代码
是的,开源软件代码对于任何人都是可访问的。但是你可以查看代码并不意味着你可以利用它。
-**不现实**
+**不现实。**
-即使任何人都可以克隆(或者拷贝)该软件,原始软件也不能轻易地被修改使用。
+即使任何人都可以复刻(或者拷贝)该软件,原始软件也不能轻易地被修改使用。
-通常,项目维护人员(或者维护团队)管理代码仓库并且接受来自贡献者的提交。开源软件代码在接受之前被审查。没有人可以像那样劫持代码。
+通常,项目维护人员(或者维护团队)管理代码仓库,并且接受来自贡献者的提交。开源软件代码在接受之前会被审查。没有人可以就这样劫持代码。
-**不论是开源软件还是闭源软件,攻击者都需要付出努力来利用软件中的代码漏洞或者添加恶意代码**
+**不论是开源软件还是闭源软件,攻击者都需要付出努力来利用软件中的代码漏洞或者添加恶意代码。**
-#### 失去专用资源,安全性无从谈起
+#### 没有专职团队,安全性无从谈起
很多人相信如果开源软件没有专职人员或者专职团队,维护软件安全性是困难的。
-恰恰相反,由于各种个样类型的贡献者的加入与离开,开源软件获得了来自更大范围的开发者的更多关注。
+恰恰相反,由于各种各样类型的贡献者的加入与离开,开源软件获得了来自更大范围的开发者的更多关注。
-他们可能比由专用软件所聘用的少数开发者更能够发现安全问题。
+他们可能比由专有软件所聘用的少数开发者更能够发现安全问题。
一些来自 Mozilla 等同类公司的项目拥有自己的专职团队来高效处理安全问题。同样的,大部分成功的开源项目拥有大量的资源用于保障安全性。
-因此,开源软件的生态系统是安全性的组合包。即使没有专职资源,开源项目也可以得到来自各类贡献者的帮助,他们中的一些很大程度上是有利可图的,这有助于他们投入更多的精力。
+因此,开源软件的生态系统是安全性的组合包。即使没有专职团队,开源项目也可以得到来自各类贡献者的帮助,他们中的一些很大程度上是有利可图的,这有助于他们投入更多的精力。
### 开源软件是安全的,以下是原因
-![][3]
+![][5]
-既然我们已经解决了有关开源软件安全性的谣言,让我重点展示一下开源软件是如何处理安全问题的。
+既然我们已经澄清了这些有关开源软件安全性的迷思,让我重点展示一下开源软件是如何处理安全问题的。
换句话说,开源软件在安全性上的优势。
-请不要忘记,开源软件的优势也是 [ Linux 比 Windows 更好][4]的一些原因。
+请不要忘记,开源软件的优势也是 [Linux 比 Windows 更好][4] 的一些原因。
#### 更多的眼晴关注开源软件代码
-不像专有软件,代码访问仅不限于少数开发者。
+不像专有软件,(对开源软件的)代码访问并不局限于少数几个开发者。
-一些开源项目甚至可能拥有数以万记的开发者查看代码、审查它们并标记和修复其中的安全性问题。
+一些开源项目甚至可能拥有数以万记的开发者可以查看代码、审查它们并标记和修复其中的安全性问题。
-这给予了开源项目拥有**快速识别问题并尽快修复它们的能力**的相比闭源软件的优势。
+相比闭源软件,这给予了开源项目拥有**快速识别问题并尽快修复它们的能力**的优势。
不仅仅限于拥有更多的开发者,企业通常也会参与他们所使用的开源项目。当他们这样做的时候,他们也会查阅代码并审查它们。
-这提供了外部审查的另一条途径,而这可能有助于提升开源软件的安全性。
+这提供了另一条外部审查的途径,而这可能有助于提升开源软件的安全性。
-反之,就闭源软件而言,有限人数的开发者可能并不能找出所有种类的安全问题。而且他们可能需要花费更长的时间来一一修复发现的问题。
+反之,就闭源软件而言,数量有限的开发者可能并不能找出所有种类的安全问题。而且他们可能需要花费更长的时间来一一修复发现的问题。
#### 社区决定安全问题的优先级
闭源软件的开发者可能在处理什么问题和什么时候解决问题等方面有某些限制或者优先等级。
-而如果是开源项目,贡献者社区可以自行决定优先级并自行安排他们想解决的问题以及决定合适修复问题。你不需要依赖于供应商的决定或者按照他们的指示来解决一个安全问题。
+而如果是开源项目,贡献者社区可以自行决定优先级,并自行安排他们想解决的问题以及决定合适修复问题。你不需要依赖于供应商的决定或者按照他们的指示来解决一个安全问题。
-着手处理和修复安全问题的决定在开源软件项目中更加透明和灵活。因此,它可以被证明是更有效的,并为你带来以下三个益处:
+着手处理和修复安全问题的决策在开源软件项目中更加透明和灵活。因此,它可以被证明是更有效的,并为你带来以下三个益处:
- * **透明度**
- * **不依赖供应商**
- * **更快的安全更新**
+ * 透明度
+ * 不依赖供应商
+ * 更快的安全更新
-### 开源软件不是刀枪不入的,以下是原因
+### 开源软件不是防弹的,以下是原因
-![][3]
+![][6]
-虽然有开源软件可能在安全性上具有优势的案例,然而仍有一些因素影响它。
+虽然在某些情况下,开源软件可能在安全性上具有优势,然而仍有一些因素影响它。
-承认这些问题的存在是很重要的,据此,企业或者个人可以就一款开源软件的安全情况做出更好的决定。
+承认这些问题的存在是很重要的,据此,企业或者个人可以就开源软件的安全情况做出更好的决定。
#### 并无足够的眼睛来审查代码和不确定性
-即使开源软件代码可以由全世界的开发者自由访问,**项目没有足够的贡献者/开发者彻底审查开源代码**的可能性仍然存在。
+即使开源软件代码可以被全世界的开发者自由访问,**项目没有足够的贡献者/开发者彻底审查开源代码**的可能性仍然存在。
-既如此,我们不能对经同行审查的开源软件抱有极高的信心,因为它恰好缺失了这一点。
+既如此,我们不能对开源软件的同行审查抱有极高的信心,因为它恰好缺失了这一点。
开源软件可能“声称”拥有最高的安全性因为它们是开源的。在没有足够的开发者致力于该项目时,这是一种误导。
-同样,我们也无从得知有多少开发者在查看/检查代码以及代码走查在多大程度上进行。
+同样,我们也无从得知有多少开发者在查看/检查代码,也不知道代码的检查进行到什么程度了。
-举例而言,心脏出血漏洞([Heartbleed][T1])是在其在广泛使用项目—— **OpenSSL** ——中引入了2年以后才被发现的。
+举例而言,[心脏出血漏洞][T1]Heartbleed 是在一个被广泛使用的项目(OpenSSL)中引入了 2 年以后才被发现的。
-#### 软件责任与义务
+#### 软件责任与问责
对于个人用户这可能并不重要,但是**开源项目通常并无任何保证**。
因此,如果一家公司使用它,它们必须自行承担任何由该软件使用造成的数据丢失与损坏。
-这告诉你没有什么是100%安全和没有漏洞的。无论有多少眼睛聚焦在代码上或者贡献者的技术多么精湛,总会存在某种形式的风险,可能是安全风险可能是数据丢失。
+这告诉你,没有什么是 100% 安全和没有漏洞的。无论有多少眼睛聚焦在代码上或者贡献者的技术多么精湛,总会存在某种形式的风险,无论是安全风险还是数据丢失。
-这告诉我们一个现实:开源软件并非刀枪不入。
+这告诉我们一个现实:开源软件并非防弹的。
### 开源软件有其更高安全性的优势,但是...
就安全性而言没有什么优胜者。不论是闭源还是开源,当涉及安全问题时都适用同一套原则。
-有很多外部因素可以印象软件安全性,而**其中很多都不是来源相关的**。
+有很多外部因素可以影响软件安全性,而**其中很多因素并不依赖于源代码**。
-代码必须被以某种形式监控以保证安全。
+必须以某种形式监控代码,以保证安全。
-是的,**开源道路提供了闭源软件所不具备的优势**,但是这并不意味着开源软件是刀枪不入的。
+是的,**开源道路提供了闭源软件所不具备的优势**,但是这并不意味着开源软件是防弹的。
-_你对开源软件安全状况有何思考?_ _你又是否认为开源软件比专有软件解决方案更好呢?_
+_你对开源软件安全状况有何思考?你又是否认为开源软件比专有软件解决方案更好呢?_
-提前感谢您在下面的评论中提出的宝贵意见。
-
-#### 大型科技网站坐拥百万收入,而 It's FOSS 拥有每一个你!
-
-如果你喜欢我们在 It's FOSS 中所做的工作,请您考虑捐赠以支持我们的独立出版物。你的支持将有助于我们继续发布有关 Linux 桌面版以及开源软件的内容。
+提前感谢你在下面的评论中提出的宝贵意见。
--------------------------------------------------------------------------------
@@ -147,7 +145,7 @@ via: https://news.itsfoss.com/open-source-software-security/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[CanYellow](https://github.com/CanYellow)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -155,7 +153,10 @@ via: https://news.itsfoss.com/open-source-software-security/
[b]: https://github.com/lujun9972
[1]: https://news.itsfoss.com/linux-foundation-linux-desktop/
[2]: https://itsfoss.com/what-is-linux-distribution/
-[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQzOSIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
+[3]: https://news.itsfoss.com/content/images/wordpress/2021/07/hacker-exploit-illustration.png
[4]: https://itsfoss.com/linux-better-than-windows/
+[5]: https://news.itsfoss.com/content/images/wordpress/2021/07/open-source-security-illustration.png
+[6]: https://news.itsfoss.com/content/images/wordpress/2021/07/open-source-security-issue.jpg
[T1]: https://www.cve.org/CVERecord?id=CVE-2014-0160
+[0]: https://news.itsfoss.com/content/images/size/w2000/wordpress/2021/07/open-source-security.jpg
\ No newline at end of file
From f576c5bfa3fd4dd6595cc4ca253b9060cf10a8ed Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 8 Jan 2023 12:53:01 +0800
Subject: [PATCH 216/266] ALL
@wxy
https://linux.cn/article-15424-1.html
---
...es These 3 Key Improvements for Linux Users.md | 97 +++++++++++++++++++
...es These 3 Key Improvements for Linux Users.md | 97 -------------------
2 files changed, 97 insertions(+), 97 deletions(-)
create mode 100644 published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md
delete mode 100644 sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md
diff --git a/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md b/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md
new file mode 100644
index 0000000000..9d332fdddd
--- /dev/null
+++ b/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md
@@ -0,0 +1,97 @@
+[#]: subject: "Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users"
+[#]: via: "https://news.itsfoss.com/budgie-10-7-features/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15424-1.html"
+
+Budgie 10.7 即将带来 3 项关键改进
+======
+
+> Budgie 10.7 有很多有价值的改进。请看本文。
+
+![][1]
+
+Budgie 是一个旨在将杂乱无章降到最低,为用户提供一个干净/简约的体验的桌面环境。
+
+早在 2022 年 1 月,Solus 的前联合负责人 Joshua Strobl [离开了 Solus][2],从事 [SerpentOS][3] 的开发,但他还继续参与 Budgie 的开发。
+
+因此,他将该项目复刻到一个新的代码仓库,并成立了 [Buddies Of Budgie][4] 组织。三个月后,他们发布了 **Budgie 10.6**。
+
+这是一个很不错的版本,即使不是很特别。
+
+展望未来,他们发布了 2023 年的计划,其中包括发布 **Budgie 10.7**。
+
+[Joshua Strobl][5] 在博文中也提到了更多计划内容:
+
+> 至少,它应该是一个很好的基础,并为 Budgie 桌面今年的发展方向提供一个清晰的蓝图:Budgie 10.x 将会增加新的功能、QoL 改进和修复。Budgie 11 的开发工作也将起步。
+
+### Budgie 10.7 可以期待什么?
+
+Budgie 10.7 的开发工作自去年以来一直在进行。它本应在 2022 年发布,但需要更多的时间来提供一个完美的体验。
+
+已经完成了很多工作,但其中一些值得注意的三个变化是:
+
+- 对 Budgie 菜单的更新
+- 新的 Budgie 屏幕截图工具
+- 对 Budgie 运行对话框的改进
+
+#### 对 Budgie 菜单的更新
+
+![Budgie 10.7 菜单][6]
+
+在这个版本中,Budgie 菜单将得到一些改进,例如。
+
+- 一个新的电源菜单,包含所有常用的选项,如**暂停、休眠、注销和关闭电源**。
+- 更新的个人用户菜单可以快速访问 XDG 目录。这将让你直接打开文件管理器窗口进入主页、文档、音乐等文件夹。
+- 快速访问 Budgie 控制中心和桌面设置。
+- 能够从菜单本身显示各种桌面设置。
+
+#### Budgie 屏幕截图工具
+
+![Budgie 10.7 屏幕截图工具][7]
+
+终于,你不再需要下载另一个工具来在 Budgie 上进行截图;从 10.7 开始,它将具有一个原生的屏幕截图应用程序。
+
+它将支持对屏幕、窗口的捕捉,甚至是进行选区捕捉。
+
+#### 对 Budgie 运行对话框的改进
+
+![Budgie 10.7 运行对话框][8]
+
+Budgie 运行对话框将获得许多改进,例如:
+
+- 一个新的应用程序索引器将被用于 Budgie 菜单,以寻找和分类应用程序。它应该能提供一个 “可预测的模糊搜索体验”。
+- 根据显示器的工作区域改进对话框的大小计算。
+- 更好的应用程序名称和描述的标签样式。
+
+### 发布和未来计划
+
+根据他们的 [公告][9],他们打算在 2023 年第一季度的某个时候发布 Budgie 10.7。他们还没有确定一个具体的日期。
+
+并计划在不久之后发布带有错误修复的 10.7.1 版本,然后在 2023 年第二季度发布 Budgie 10.8。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/budgie-10-7-features/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/budgie-10-7-release.png
+[2]: https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/
+[3]: https://serpentos.com
+[4]: https://blog.buddiesofbudgie.org
+[5]: https://joshuastrobl.com
+[6]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Menu.jpg
+[7]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_SS.png
+[8]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Run.jpg
+[9]: https://blog.buddiesofbudgie.org/state-of-the-budgie-2022/
diff --git a/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md b/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md
deleted file mode 100644
index 461694fa92..0000000000
--- a/sources/news/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md
+++ /dev/null
@@ -1,97 +0,0 @@
-[#]: subject: "Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users"
-[#]: via: "https://news.itsfoss.com/budgie-10-7-features/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users
-======
-
-Budgie 10.7 is packed with valuable improvements. Check them out here.
-
-![Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users][1]
-
-Budgie is a desktop environment designed to keep clutter to a minimum and provide users with a clean/minimal experience.
-
-Back in January 2022, the former-co-lead of Solus, **Joshua Strobl**[left Solus][2] to work on [SerpentOS][3], but he continued to work on Budgie.
-
-So, he forked the project into a new repository and formed the [Buddies Of Budgie][4] organization. Three months after that, they released **Budgie 10.6**.
-
-It was a good release, if not extraordinary.
-
-Moving forward, they have shared the plans for 2023 which include the release of **Budgie 10.7**.
-
-[Joshua Strobl][5] also mentioned more about the plans in the blog post:
-
-> At the very least, it should serve as a good foundation to build on and provide a clear picture on where Budgie Desktop is going this year: Budgie 10.x will receive new features, QoL improvements, and fixes. Budgie 11 development will be underway.
-
-### Budgie 10.7: What Can You Expect?
-
-The development of Budgie 10.7 has been going on since last year. It was supposed to release in 2022, but more time was required to serve a polished experience.
-
-A lot of work has been done, but some of the notable ones include the following three changes:
-
-- **Updates to Budgie Menu**
-- **New Budgie Screenshot Tool**
-- **Improvements to Budgie Run Dialog**
-
-#### Updates to Budgie Menu
-
-![budgie 10.7 menu][6]
-
-For this release, Budgie Menu is set to receive several improvements, such as:
-
-- A new power menu with all the usual options, such as **Suspend, Hibernate, Logout, and Power Off**.
-- Updated personal user menu with quick XDG directory access. This will let you open a file manager window directly into folders like Home, Documents, Music, etc.
-- Quick access to Budgie Control Center and Desktop Settings.
-- Ability to show various desktop settings from the menu itself.
-
-#### Budgie Screenshot Tool
-
-![budgie 10.7 screenshot tool][7]
-
-Finally, you won't need to download another tool to take a screenshot on Budgie; from 10.7 onwards, it will feature a native screenshot application.
-
-It will have capture support for the screen, window, and even selection capture!
-
-#### Improvements to Budgie Run Dialog
-
-![budgie 10.7 run dialog][8]
-
-The Budgie Run dialog will receive many improvements, such as:
-
-- A new application indexer will be used for Budgie Menu to find and sort applications. It is supposed to provide a 'predictable fuzzy search experience'.
-- Improved calculation of dialog sizing according to the work area of the monitor.
-- Better styling of labels for application names and descriptions.
-
-### Release & Future Plans
-
-According to their [announcement][9], they intend to release Budgie 10.7 sometime in **Q1, 2023.** They haven't settled for a specific date yet.
-
-A 10.7.1 release with bug fixes has been planned soon after, and the release of **Budgie 10.8** in Q2, 2023.
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/budgie-10-7-features/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/budgie-10-7-release.png
-[2]: https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/
-[3]: https://serpentos.com
-[4]: https://blog.buddiesofbudgie.org
-[5]: https://joshuastrobl.com
-[6]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Menu.jpg
-[7]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_SS.png
-[8]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Run.jpg
-[9]: https://blog.buddiesofbudgie.org/state-of-the-budgie-2022/
From 7e745ce427c2fbe394acd463af1c6507ea523a59 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Mon, 9 Jan 2023 08:54:09 +0800
Subject: [PATCH 217/266] translated
---
... ⭐️ How to read and write files in Rust.md | 110 -----------------
... ⭐️ How to read and write files in Rust.md | 111 ++++++++++++++++++
2 files changed, 111 insertions(+), 110 deletions(-)
delete mode 100644 sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md
create mode 100644 translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md
diff --git a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md b/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md
deleted file mode 100644
index ac4a7ee73e..0000000000
--- a/sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md
+++ /dev/null
@@ -1,110 +0,0 @@
-[#]: subject: "How to read and write files in Rust"
-[#]: via: "https://opensource.com/article/23/1/read-write-files-rust"
-[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How to read and write files in Rust
-======
-
-Knowing how to read and write files can be useful for various purposes. In Rust, this task is done using the file system module ([std::fs][1]) in the standard library. In this article, I'll give you an overview on how to use this module.
-
-To demonstrate this task, I prepared example code which is also available on [GitHub][2].
-
-### Preparation
-
-When using Rust, a function that fails returns the [Result][3] type. The file system module in particular returns the specialized type [std::io::Result][4]. With this knowledge, you can return the same type from the `main()` function:
-
-```
-fn main() -> std::io::Result<()> {
-/* ...code comes here... */
-```
-
-### Writing Rust files
-
-Performing file I/O-operations in Rust is relatively easy. Writing to a file can be simplified to one line:
-
-```
-use std::fs;
-fs::write("favorite_websites.txt", b"opensource.com")?;
-Ok(())
-```
-
-Using the error propagation operator `(?)`, the error information gets passed on to the calling function where the error can subsequently be handled. As `main()` is the only other function in the call stack, the error information gets passed on to the console output in case the write operation failed.
-
-The syntax of the [fs::write][5] function is quite forward. The first argument is the file path, which must be the type [std::path::Path][6]. The second argument is the content, which is actually a slice of bytes (`[u8]`). Rust converts the arguments passed into the correct type. Luckily, these types are basically the only types dealt with in the following examples.
-
-A more concise access of the write operation can be achieved using the file descriptor type [std::fs::File][7]:
-
-```
-let mut file = fs::File::create("favorite_websites.txt")?;
-file.write_all(b"opensource.com\n")?;
-Ok(())
-```
-
-As the file type implements the [Write][8] trait, it is possible to use the associated methods to write to the file. However, the `create` method can overwrite an already existing file.
-
-To get even more control of the file descriptor, the type [std::fs::OpenOptions][9] must be used. This provides opening modes similar to the ones in other languages:
-
-```
-let mut file = fs::OpenOptions::new()
- .append(true)
- .open("favorite_websites.txt")?;
-
-file.write_all(b"sourceforge.net\n")?;
-```
-
-### Reading Rust files
-
-What applies to writing also applies to reading. Reading can also be done with a simple one-line of code:
-
-```
-let websites = fs::read_to_string("favorite_websites.txt")?;
-```
-
-The above line reads the content of the file and returns a string. In addition to reading a string, there is also the [std::fs::read][10] function which reads the data into a vector of bytes if the file contains binary data.
-
-The next example shows how to read the content of the file into memory and subsequently print it line by line to a console:
-
-```
-let file = fs::File::open("favorite_websites.txt")?;
-let lines = io::BufReader::new(file).lines();
-
-for line in lines {
- if let Ok(_line) = line {
- println!(">>> {}", _line);
- }
-}
-```
-
-### Summary
-
-If you are already familiar with other programming languages, you may have noticed that there is `no close-`function (or something similar) that releases the file handle. In Rust, the file handle is released as soon as the related variable goes out of scope. To define the closing behavior, a scope `({ })` around the file representation can be applied. I recommend that you get familiar with [Read][11] and [Write][8] trait as you can find this trait implemented in many other types.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/23/1/read-write-files-rust
-
-作者:[Stephan Avenwedde][a]
-选题:[lkxed][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/hansic99
-[b]: https://github.com/lkxed
-[1]: https://doc.rust-lang.org/std/fs/
-[2]: https://github.com/hANSIc99/rust_file_io
-[3]: https://doc.rust-lang.org/std/result/enum.Result.html
-[4]: https://doc.rust-lang.org/std/io/type.Result.html
-[5]: https://doc.rust-lang.org/std/fs/fn.write.html
-[6]: https://doc.rust-lang.org/std/path/struct.Path.html
-[7]: https://doc.rust-lang.org/std/fs/struct.File.html
-[8]: https://doc.rust-lang.org/std/io/trait.Write.html
-[9]: https://doc.rust-lang.org/std/fs/struct.OpenOptions.html#
-[10]: https://doc.rust-lang.org/std/fs/fn.read.html
-[11]: https://doc.rust-lang.org/std/io/trait.Read.html
diff --git a/translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md b/translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md
new file mode 100644
index 0000000000..4a0453ae31
--- /dev/null
+++ b/translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md
@@ -0,0 +1,111 @@
+[#]: subject: "How to read and write files in Rust"
+[#]: via: "https://opensource.com/article/23/1/read-write-files-rust"
+[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+如何在 Rust 中读取和写入文件
+======
+
+知道如何读写文件对各种用途都很有用。在 Rust 中,这项任务是通过标准库中的文件系统模块([std::fs][1])完成的。在这篇文章中,我将向你介绍如何使用这个模块。
+
+为了演示这项任务,我准备了一些示例代码,也可以在 [GitHub][2] 上找到。
+
+### 准备工作
+
+在使用 Rust 时,失败的函数会返回 [Result][3] 类型。尤其是文件系统模块会返回专门的类型 [std::io::Result][4]。有了这些知识,你可以从 `main()` 函数中返回相同的类型:
+
+```
+fn main() -> std::io::Result<()> {
+/* ...code comes here... */
+```
+
+### Rust 文件写入
+
+在 Rust 中执行文件的 I/O 操作是相对容易的。写入文件可以简化为一行:
+
+```
+use std::fs;
+fs::write("favorite_websites.txt", b"opensource.com")?;
+Ok(())
+```
+
+使用错误传播操作符 `(?)`,错误信息被传递到调用函数中,随后可以处理错误。由于 `main()` 是调用栈中唯一的其他函数,如果写操作失败,错误信息将被传递到控制台输出。
+
+[fs::write][5] 函数的语法是非常先进的。第一个参数是文件路径,它必须是 [std::path::Path][6] 类型。第二个参数是内容,它实际上是一个字节切片(`[u8]`)。Rust 将传递的参数转换为正确的类型。幸运的是,这些类型基本上是下面的例子中所处理的唯一类型。
+
+使用文件描述符类型 [std::fs::File][7] 可以实现对写操作更简洁的访问:
+
+```
+let mut file = fs::File::create("favorite_websites.txt")?;
+file.write_all(b"opensource.com\n")?;
+Ok(())
+```
+
+由于文件类型实现了 [Write][8] 特性,所以可以使用相关的方法来写入文件。然而,`create` 方法可以覆盖一个已经存在的文件。
+
+为了获得对文件描述符的更多控制,必须使用 [std::fs::OpenOptions][9] 类型。这提供了类似于其他语言中的打开模式:
+
+```
+let mut file = fs::OpenOptions::new()
+ .append(true)
+ .open("favorite_websites.txt")?;
+
+file.write_all(b"sourceforge.net\n")?;
+```
+
+### Rust 文件读取
+
+适用于写的东西也适用于读。读取也可以通过简单的一行代码来完成:
+
+```
+let websites = fs::read_to_string("favorite_websites.txt")?;
+```
+
+以上一行读取文件的内容并返回一个字符串。除了读取字符串,还有 [std::fs::read][10] 函数,如果文件包含二进制数据,该函数会将数据读成一个字节向量。
+
+下一个例子显示了如何将文件的内容读入内存,随后逐行打印到控制台:
+
+```
+let file = fs::File::open("favorite_websites.txt")?;
+let lines = io::BufReader::new(file).lines();
+
+for line in lines {
+ if let Ok(_line) = line {
+ println!(">>> {}", _line);
+ }
+}
+```
+
+### 总结
+
+如果你已经熟悉了其他编程语言,你可能已经注意到没有 `close-` 函数(或类似的)来释放文件句柄。在 Rust 中,当相关变量超出作用域,文件句柄就会被释放。为了定义关闭行为,可以在文件表示的周围应用作用域 `({ })`。我建议你熟悉 [Read][11] 和 [Write][8] 特性,因为你可以在许多其他类型中找到这个特性的实现。
+
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/read-write-files-rust
+
+作者:[Stephan Avenwedde][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/hansic99
+[b]: https://github.com/lkxed
+[1]: https://doc.rust-lang.org/std/fs/
+[2]: https://github.com/hANSIc99/rust_file_io
+[3]: https://doc.rust-lang.org/std/result/enum.Result.html
+[4]: https://doc.rust-lang.org/std/io/type.Result.html
+[5]: https://doc.rust-lang.org/std/fs/fn.write.html
+[6]: https://doc.rust-lang.org/std/path/struct.Path.html
+[7]: https://doc.rust-lang.org/std/fs/struct.File.html
+[8]: https://doc.rust-lang.org/std/io/trait.Write.html
+[9]: https://doc.rust-lang.org/std/fs/struct.OpenOptions.html#
+[10]: https://doc.rust-lang.org/std/fs/fn.read.html
+[11]: https://doc.rust-lang.org/std/io/trait.Read.html
From ca6fd3d3ee58e00f649594919d6e73973c1be76e Mon Sep 17 00:00:00 2001
From: geekpi
Date: Mon, 9 Jan 2023 09:01:25 +0800
Subject: [PATCH 218/266] translating
---
...0230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
index 960d1c4af8..23ae40eb72 100644
--- a/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
+++ b/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
@@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/w-command-linux-examples/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From abd0017a8bfb6aca4b0d971bd24bee3ec8bbfa4f Mon Sep 17 00:00:00 2001
From: cool-summer-021
Date: Mon, 9 Jan 2023 11:32:29 +0800
Subject: [PATCH 219/266] =?UTF-8?q?=E7=94=B3=E9=A2=86=E6=96=87=E7=AB=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...arted with edge computing by programming embedded systems.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md b/sources/tech/20210316 Get started with edge computing by programming embedded systems.md
index a51532e521..703d460e2e 100644
--- a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md
+++ b/sources/tech/20210316 Get started with edge computing by programming embedded systems.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/21/3/rtos-embedded-development"
[#]: author: "Alan Smithee https://opensource.com/users/alansmithee"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "cool-summer-021"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 2db4411edb0c0acfade77c69bfdf004245380553 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 9 Jan 2023 14:07:00 +0800
Subject: [PATCH 220/266] RP
@geekpi
https://linux.cn/article-15426-1.html
---
...d Siri in Works for Home Assistant Platform.md | 24 +++++++++----------
1 file changed, 12 insertions(+), 12 deletions(-)
rename {translated/tech => published}/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md (74%)
diff --git a/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
similarity index 74%
rename from translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
rename to published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
index adba1b18db..a35da5c56a 100644
--- a/translated/tech/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
+++ b/published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md
@@ -3,14 +3,14 @@
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15426-1.html"
-Google、Alexa 和 Siri 的开源替代品 Home Assistant 平台
+Home Assistant:谷歌助理、Alexa 和 Siri 的开源替代品
======
-一个开源助手可以取代谷歌、Alexa 和 Siri?
+> 一个开源助手可以取代谷歌助理、Alexa 和 Siri?
![An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform][1]
@@ -20,13 +20,13 @@ Google、Alexa 和 Siri 的开源替代品 Home Assistant 平台
> 💡 该公司由 Home Assistant 的创始人 [Paulus Schoutsen][3] 领导。
-在上周的[博客][4]中,Paulus 宣布了**一个新的开源项目,旨在提供一个没有主动互联网连接的语音助手**或任何其他大型科技语音助手。
+在上周的 [博客][4] 中,Paulus 宣布了**一个新的开源项目,旨在提供一个没有主动互联网连接的语音助手**,也无需任何其他大型科技公司的语音助手。
-这是_一个对 Google、Alexa 和 Siri 的开源挑战者?_ 😲
+这是 _一个对谷歌助理、Alexa 和 Siri 的开源挑战者?_ 😲
让我们看看这到底是怎么回事。
-**它是什么?:**这将是 Home Assistant 应用的一部分,将提供在本地运行语音命令的能力,以控制连接的智能设备。
+**它是什么?** 这将是 Home Assistant 应用的一部分,将提供在本地运行语音命令的能力,以控制连接的智能设备。
Paulus 还断言,他们最重要的优先事项是支持不同的语言,他说:
@@ -40,7 +40,7 @@ Paulus 还断言,他们最重要的优先事项是支持不同的语言,他
_为什么要重新发明已经存在的东西?最好是在它的基础上进行改进。_
-**可以期待什么?:**最初,语音助手将不能做你可能期待的事情。因此,像进行网络搜索、打电话、玩语音游戏等,都是不可能的。
+**可以期待什么?** 最初,这个语音助手做不到做你可能期待的事情。因此,像进行网络搜索、打电话、玩语音游戏等,都是不可能的。
它所关注的反而是**语音助手应该有的基本功能**。这样做是为了确保他们面前的工作是可控的。
@@ -48,9 +48,9 @@ _为什么要重新发明已经存在的东西?最好是在它的基础上进
在目前的状态下,Home Assistant 在其用户界面上支持 62 种不同的语言。他们计划用他们的语音助手增加对所有这些语言的支持。
-**何时期待?:**他们已经开始了这方面的工作,为每种语言建立一个[意图匹配句子集合][7]。
+**何时期待?** 他们已经开始了这方面的工作,为每种语言建立一个 [意图匹配句子集合][7]。
-这意味着社区可以通过将智能设备的命令改编成各自的母语来为语音助手的发展做出贡献。
+这意味着社区可以通过将智能设备的命令改编成各自的母语,来为语音助手的发展做出贡献。
他们的目标是在 **2023** 年的某个时候发布,并提到这将是“_语音年_”。
@@ -65,7 +65,7 @@ via: https://news.itsfoss.com/open-source-assistant/
作者:[Sourav Rudra][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From 7b0d395ec49203c87e1dcff21911b40ec9639fb3 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 9 Jan 2023 14:16:44 +0800
Subject: [PATCH 221/266] =?UTF-8?q?=E8=BF=87=E6=9C=9F=E6=96=B0=E9=97=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ases With New Features and Linux Kernel 6.0.md | 133 ------------------
...s 5.8 Arrives with Official Wayland Support.md | 74 ----------
...ort. But You Can't Use It Yet Unfortunately.md | 100 -------------
3 files changed, 307 deletions(-)
delete mode 100644 sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md
delete mode 100644 sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md
delete mode 100644 sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md
diff --git a/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md b/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md
deleted file mode 100644
index c42c37b80c..0000000000
--- a/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md
+++ /dev/null
@@ -1,133 +0,0 @@
-[#]: subject: "EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0"
-[#]: via: "https://news.itsfoss.com/endeavouros-cassini/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0
-======
-
-EndeavourOS's latest update has arrived!
-
-![EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0][1]
-
-EndeavourOS is a popular Arch-based Linux distribution that aims to make the Arch experience easy.
-
-Code-named 'Cassini', it signifies a new phase in EndeavourOS's development that aims to make the OS better than its previous iterations.
-
-Similar to a [previous release][2], this release is also named after one of NASA's [projects][3].
-
-Let's see what makes this release so unique.
-
-Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][4]Unlocator![][5]
-
-### 🆕 EndeavourOS 'Cassini': What's New?
-
-![endeavouros cassini][6]
-
-The 'Cassini' release packs plenty of improvements, some of the noteworthy highlights include:
-
-- **Improved ARM Support**
-- **Linux Kernel 6.0**
-- **Various User Interface Updates**
-- **Updated Software Packages**
-
-#### Improved ARM Support
-
-![endeavouros cassini arm][7]
-
-EndeavourOS now features support for the [Pinebook Pro][8].
-
-This was made possible by including the new 'linux-eos-arm' kernel that comes with the 'amdgpu' driver for supporting generic ARM devices.
-
-The developers also added that:
-
-> We’ve leveraged existing work and PKGBUIDs of both Manjaro ARM and archlinuxarm-pbp projects to create our Pinebook Pro images and would like to thank them for their continuing work in supporting PineBook Pro for Arch Linux ARM platform.
-
-Furthermore, EndeavourOS also has enhanced support for ARM devices like the [Phytiuim D2000][9], [Raspberry Pi][10], and [Odroid N2+][11].
-
-#### 🎨 Various User Interface Updates
-
-![endeavouros cassini budgie][12]
-
-With this release, EndeavourOS has received quite a few user interface tweaks; some of the highlights include:
-
-- The 'Discover' icon was replaced with a 'Konsole' icon on KDE Plasma.
-- [Qogir theme][13] is being used for icons in Cinnamon and Budgie.
-- In the case of GNOME, the wallpaper follows night and day theme like the Console.
-- The default wallpaper is now set by the 'settings' package instead of 'welcome'.
-- A load of cleanup work for Calamares.
-
-#### Linux Kernel 6.0
-
-EndeavourOS 'Cassini' features Linux Kernel 6.0.12.arch1-1, which enables it to have enhanced support for [OpenRISC][14] and [LoongArch][15] architectures.
-
-Alongside that, there is a noticeable uplift in performance for AMD EPYC, Ryzen Threadripper, and Intel Xeon Ice Lake chips.
-
-You can go through our coverage for more details:
-
-#### Updated Software Packages
-
-This release also features a lot of updated software, including:
-
-- Calamares 3.3.0-alpha3
-- Firefox 108.0.1-1
-- Mesa 22.3.1-1
-- Xorg-Server 21.1.5-1
-- nvidia-dkms 525.60.11-1
-- Grub 2:2.06.r403.g7259d55ff-1
-
-#### 🛠️ Other Changes
-
-There were also a few other changes that I want to mention, such as:
-
-- [dracut][16] has replaced [mkinitcpio][17] to handle the installation process.
-- You can now choose not to install a bootloader.
-- You have two bootloader options to pick from, [systemd-boot][18] and [Grub][19].
-- The Grub submenu is now enabled by default.
-- gedit and GNOME terminal have been replaced by [gnome-text-editor][20] and [GNOME Console][21].
-
-### 📥 Download EndeavourOS Cassini
-
-You can find the latest release on the [official website][22] from one of the available mirrors.
-
-_💬 What do you think of this release? Was it worth the wait?_
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/endeavouros-cassini/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/endeavour-os-cassini-release.png
-[2]: https://news.itsfoss.com/endeavouros-artemis-release/
-[3]: https://solarsystem.nasa.gov/missions/cassini/overview/
-[4]: https://unlocator.com/favicon.ico
-[5]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg
-[6]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini.jpg
-[7]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_ARM.png
-[8]: https://itsfoss.com/pinebook-pro/
-[9]: https://phytium.com.cn/en/article/721
-[10]: https://www.raspberrypi.org
-[11]: https://www.hardkernel.com/shop/odroid-n2-with-4gbyte-ram-2/
-[12]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_2-1.jpg
-[13]: https://github.com/vinceliuice/Qogir-theme
-[14]: https://openrisc.io
-[15]: https://en.wikipedia.org/wiki/Loongson
-[16]: https://dracut.wiki.kernel.org/index.php/Main_Page
-[17]: https://wiki.archlinux.org/title/mkinitcpio
-[18]: https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/
-[19]: https://www.gnu.org/software/grub/
-[20]: https://itsfoss.com/gnome-text-editor/
-[21]: https://gitlab.gnome.org/GNOME/console
-[22]: https://endeavouros.com/latest-release/
diff --git a/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md b/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md
deleted file mode 100644
index e55d86badd..0000000000
--- a/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md
+++ /dev/null
@@ -1,74 +0,0 @@
-[#]: subject: "Tails 5.8 Arrives with Official Wayland Support"
-[#]: via: "https://debugpointnews.com/tails-5-8-release/"
-[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Tails 5.8 Arrives with Official Wayland Support
-======
-
-![][1]
-
-**A sizable update arrives in Tails 5.8, bringing Wayland support, newly redesigned persistence storage and more.**
-
-Tails, aka The Amnesic Incognito Live System, is a [privacy-focussed Linux Distribution][2] which uses the Tor network to protect you while browsing the web. Tails are based on Debian stable branch and come with many goodies such as an IRC client, Tor browser, email clients, and messengers to help you roam around on the web anonymously.
-
-![Tails 5.8 desktop][3]
-
-### What’s New in Tails 5.8 Release
-
-At a high level, Tails 5.8 includes significant redesigns of existing features, improved usability, and strengthened security. Also, bringing modern tech aligns with the changing times and needs of the hour.
-
-The persistence storage module gets a complete redesign in this release. In the new version of Persistent Storage, you no longer have to restart after creating a Persistent Storage or activating a new feature. You can also change the password for your Persistent Storage from within the application. Additionally, you can now create a Persistent Storage directly from the Welcome Screen if you don’t already have one. The Persistent Storage had not been updated much since its initial release in 2012 due to challenges in modifying and improving the code.
-
-The Tails team has also replaced the deprecated X.Org display system with Wayland. While you may not notice any visual changes, Wayland provides increased security for Tails by making it harder for a compromised application to compromise or misuse other applications.
-
-![Browse internet securely using Tails 5.8][4]
-
-For example, since Tails 4.8, the Unsafe Browser has been disabled by default due to a security vulnerability that could reveal your IP address and deanonymize you through the use of an invisible Unsafe Browser. Wayland addresses this vulnerability and makes it safe to enable the Unsafe Browser by default again. However, if desired, you can still disable the Unsafe Browser from the Welcome Screen.
-
-In addition to addressing security concerns, Wayland also introduces new features that were previously not supported in the Unsafe Browser, including sound, file uploads and downloads, alternative input methods for non-Latin languages such as Chinese, and accessibility features like the screen reader and virtual keyboard.
-
-The Tails team has also made it easier to enter new Tor bridges by allowing you to scan a QR code. You can obtain a QR code by sending an empty email to [bridges@torproject.org][5] from a Gmail or Riseup email address or by visiting [https://bridges.torproject.org/][6] and printing the QR code on paper.
-
-Furthermore, the entire Debian stable base is bumped up to the latest version, including pre-loaded apps.
-
-A complete changelog is available [here][7] if you want to dive deeper into the changes.
-
-### Download and upgrade
-
-If you are already running a prior version of the Tails 5.0 series, you should automatically get this update once you boot up Tails from the USB stick.
-
-In addition, if you want to install Tails 5.8 fresh, grab the ISO files from the below links:
-
-- [For USB sticks (USB image)][8]
-- [For DVDs and virtual machines (ISO image)][9]
-
-Via [release announcement][10].
-
---------------------------------------------------------------------------------
-
-via: https://debugpointnews.com/tails-5-8-release/
-
-作者:[arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://debugpointnews.com/author/dpicubegmail-com/
-[b]: https://github.com/lkxed
-[1]: https://debugpointnews.com/wp-content/uploads/2022/12/tails58head.jpg
-[2]: https://www.debugpoint.com/privacy-linux-distributions-2022/
-[3]: https://debugpointnews.com/wp-content/uploads/2022/12/Tails-5.8-desktop.jpg
-[4]: https://debugpointnews.com/wp-content/uploads/2022/12/Browse-internet-securely-using-Tails-5.8.jpg
-[5]: https://debugpointnews.commailto:bridges@torproject.org
-[6]: https://bridges.torproject.org/
-[7]: https://gitlab.tails.boum.org/tails/tails/-/blob/master/debian/changelog
-[8]: https://tails.boum.org/install/download/index.en.html
-[9]: https://tails.boum.org/install/download-iso/index.en.html
-[10]: https://tails.boum.org/news/version_5.8/index.en.html
diff --git a/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md b/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md
deleted file mode 100644
index 07be806ba7..0000000000
--- a/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md
+++ /dev/null
@@ -1,100 +0,0 @@
-[#]: subject: "Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately"
-[#]: via: "https://news.itsfoss.com/pinta-2-1-release/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately
-======
-
-Pinta 2.1 comes with WebP support and various other useful improvements.
-
-![Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately][1]
-
-Pinta is a free and open-source drawing app for Linux that offers a ton of features in a relatively small package.
-
-It is one of the [best Linux tools for digital artists][2] available.
-
-Its last major release was in January 2022, introducing improved Hi DPI support, GTK 3 port, and [more][3].
-
-Marking 2023's first release, Pinta 2.1 promises to offer even further refinements.
-
-**Notice the new Pinta icon in the image above? Well, that's one of the changes.**
-
-Let's see how this release pans out.
-
-### 🆕 What's New in Pinta 2.1?
-
-![pinta 2.1][4]
-
-[Pinta 2.1][5] is offering plenty of new improvements; some notable ones include:
-
-- **WebP Support**
-- **Improved .ora Support**
-- **Enhanced Handles**
-- **Dark Mode**
-- **Improved File Dialog**
-- **Various Bug Fixes and Changes**
-
-**WebP Support:** Pinta finally has support for WebP files, but it does not come out of the box. For Linux users, the [webp-pixbuf-loader][6]**dependency is required to enable WebP support.**
-
-> 📋 Unfortunately, WebP support is not included in the Flatpak and Snap builds of Pinta 2.1. Even if you have that library installed on your system. So, you probably have to build it from the source or use WebP files on Windows/macOS only.
-
-**Improved .ora Support:** With Pinta 2.1, hidden layers are now round-tripped properly for .ora files.
-
-Furthermore, when you save a .ora file, a flattened image is now included in the archive.
-
-It is like this because it is required by the spec to accommodate the viewer software.
-
-**Enhanced Handles:** The selection move and shape control point handles are now more intuitive, especially when working on zoomed-in or small images.
-
-**Dark Mode:** Pinta has finally received full support for dark mode across the app; all icons, toolbars, dialogs, etc., are now in high-res SVG format.
-
-**Improved File Dialog:** The file dialog now uses MIME types on Linux, allowing valid image files with unknown extensions to be included in the image file filter.
-
-**Various Bug Fixes and Changes:** Apart from the changes I listed above, here are some that are also worth mentioning:
-
-- Upgraded to .NET 7.
-- New '**Transparency Mode**' in Gradient Tool.
-- Standard GTK about dialog.
-- The gradient tool now updates properly while drawing transparent colors.
-- The new screenshot command now uses the XDG portal.
-
-If you want to go deep into the technical details of the release, head to its [release notes][7].
-
-### 📥 Download Pinta 2.1
-
-Pinta 2.1 is available in the [Snap store][8], as well as on [Flathub][9]. The repositories include an outdated back, so you can safely ignore it.
-
-You can also try building it from the [source code][10] and explore other download options for Windows/macOS.
-
-[Download Pinta 2.1][11]
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/pinta-2-1-release/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/pinta-2-1-release.png
-[2]: https://itsfoss.com/best-linux-graphic-design-software/
-[3]: https://news.itsfoss.com/pinta-2-0-release/
-[4]: https://news.itsfoss.com/content/images/2023/01/Pinta_2.1.png
-[5]: https://www.pinta-project.com
-[6]: https://github.com/aruiz/webp-pixbuf-loader/
-[7]: https://github.com/PintaProject/Pinta/releases/tag/2.1
-[8]: https://snapcraft.io/pinta
-[9]: https://flathub.org/apps/details/com.github.PintaProject.Pinta
-[10]: https://github.com/PintaProject/Pinta
-[11]: https://www.pinta-project.com/releases/
-
From 59755dcd04f35a042a2ae5ef47a2487947264dab Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 9 Jan 2023 15:05:55 +0800
Subject: [PATCH 222/266] RP
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@FigaroCao
https://linux.cn/article-15427-1.html
恭喜你升级为二星译者!
---
published/20211012 Create a timer on Linux.md | 275 +++++++++++++++++
.../tech/20211012 Create a timer on Linux.md | 278 ------------------
2 files changed, 275 insertions(+), 278 deletions(-)
create mode 100644 published/20211012 Create a timer on Linux.md
delete mode 100644 translated/tech/20211012 Create a timer on Linux.md
diff --git a/published/20211012 Create a timer on Linux.md b/published/20211012 Create a timer on Linux.md
new file mode 100644
index 0000000000..d00d129d20
--- /dev/null
+++ b/published/20211012 Create a timer on Linux.md
@@ -0,0 +1,275 @@
+[#]: subject: "Create a timer on Linux"
+[#]: via: "https://opensource.com/article/21/10/linux-timers"
+[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
+[#]: collector: "lujun9972"
+[#]: translator: "FigaroCao"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15427-1.html"
+
+在 Linux 中创建定时器
+======
+
+> 这是一个演示如何创建 POSIX 兼容的间隔定时器的教程。
+
+![][0]
+
+对开发人员来说,定时某些事件是一项常见任务。定时器的常见场景是看门狗、任务的循环执行,或在特定时间安排事件。在这篇文章中,我将演示如何使用 [timer_create(...)][2] 创建一个 POSIX 兼容的间隔定时器。
+
+你可以从 [GitHub][3] 下载下面样例的源代码。
+
+### 准备 Qt Creator
+
+我使用 [Qt Creator][4] 作为该样例的 IDE。为了在 Qt Creator 运行和调试样例代码,请克隆 [GitHub][3] 上的仓库,打开 Qt Creator,在 “文件File -> 打开文件或项目……Open File or Project...” 并选择 “CMakeLists.txt”:
+
+![Qt Creator open project][5]
+
+*在 Qt Creator 中打开项目*
+
+选择工具链之后,点击 “配置项目Configure Project”。这个项目包括三个独立的样例(我们在这篇文章中将只会用到其中的两个)。使用绿色标记出来的菜单,可以在每个样例的配置之间切换,并为每个样例激活在终端运行 “在终端中运行Run in terminal”(用黄色标记)。当前用于构建和调试的活动示例可以通过左下角的“调试Debug” 按钮进行选择(参见下面的橙色标记)。
+
+![Project configuration][6]
+
+*项目配置*
+
+### 线程定时器
+
+让我们看看 `simple_threading_timer.c` 样例。这是最简单的一个。它展示了一个调用了超时函数 `expired` 的间隔定时器是如何被创建的。在每次过期时,都会创建一个新的线程,在其中调用函数 `expired`:
+
+```
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+void expired(union sigval timer_data);
+
+pid_t gettid(void);
+
+struct t_eventData{
+ int myData;
+};
+
+int main()
+{
+ int res = 0;
+ timer_t timerId = 0;
+
+ struct t_eventData eventData = { .myData = 0 };
+
+ /* sigevent 指定了过期时要执行的操作 */
+ struct sigevent sev = { 0 };
+
+ /* 指定启动延时时间和间隔时间
+ * it_value和it_interval 不能为零 */
+
+ struct itimerspec its = { .it_value.tv_sec = 1,
+ .it_value.tv_nsec = 0,
+ .it_interval.tv_sec = 1,
+ .it_interval.tv_nsec = 0
+ };
+
+ printf("Simple Threading Timer - thread-id: %d\n", gettid());
+
+ sev.sigev_notify = SIGEV_THREAD;
+ sev.sigev_notify_function = &expired;
+ sev.sigev_value.sival_ptr = &eventData;
+
+ /* 创建定时器 */
+ res = timer_create(CLOCK_REALTIME, &sev, &timerId);
+
+ if (res != 0){
+ fprintf(stderr, "Error timer_create: %s\n", strerror(errno));
+ exit(-1);
+ }
+
+ /* 启动定时器 */
+ res = timer_settime(timerId, 0, &its, NULL);
+
+ if (res != 0){
+ fprintf(stderr, "Error timer_settime: %s\n", strerror(errno));
+ exit(-1);
+ }
+
+ printf("Press ETNER Key to Exit\n");
+ while(getchar()!='\n'){}
+ return 0;
+}
+
+void expired(union sigval timer_data){
+ struct t_eventData *data = timer_data.sival_ptr;
+ printf("Timer fired %d - thread-id: %d\n", ++data->myData, gettid());
+}
+```
+
+这种方法的优点是在代码和简单调试方面用量小。缺点是由于到期时创建新线程而增加额外的开销,因此行为不太确定。
+
+### 中断信号定时器
+
+超时定时器通知的另一种可能性是基于 [内核信号][12]。内核不是在每次定时器过期时创建一个新线程,而是向进程发送一个信号,进程被中断,并调用相应的信号处理程序。
+
+由于接收信号时的默认操作是终止进程(参考 [signal][13] 手册页),我们必须要提前设置好 Qt Creator,以便进行正确的调试。
+
+当被调试对象接收到一个信号时,Qt Creator 的默认行为是:
+
+ * 中断执行并切换到调试器上下文。
+ * 显示一个弹出窗口,通知用户接收到信号。
+
+这两种操作都不需要,因为信号的接收是我们应用程序的一部分。
+
+Qt Creator 在后台使用 GDB。为了防止 GDB 在进程接收到信号时停止执行,进入 “工具Tools -> 选项Options” 菜单,选择 “调试器Debugger”,并导航到 “本地变量和表达式Locals & Expressions”。添加下面的表达式到 “定制调试助手Debugging Helper Customization”:
+
+```
+handle SIG34 nostop pass
+```
+
+![Signal no stop with error][14]
+
+*Sig 34 时不停止*
+
+你可以在 [GDB 文档][15] 中找到更多关于 GDB 信号处理的信息。
+
+接下来,当我们在信号处理程序中停止时,我们要抑制每次接收到信号时通知我们的弹出窗口:
+
+![Signal 34 pop up box][16]
+
+*Signal 34 弹出窗口*
+
+为此,导航到 “GDB” 标签并取消勾选标记的复选框:
+
+![Timer signal windows][17]
+
+*定时器信号窗口*
+
+现在你可以正确的调试 `signal_interrupt_timer`。真正的信号定时器的实施会更复杂一些:
+
+```
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#define UNUSED(x) (void)(x)
+
+static void handler(int sig, siginfo_t *si, void *uc);
+pid_t gettid(void);
+
+struct t_eventData{
+ int myData;
+};
+
+int main()
+{
+ int res = 0;
+ timer_t timerId = 0;
+
+ struct sigevent sev = { 0 };
+ struct t_eventData eventData = { .myData = 0 };
+
+ /* 指定收到信号时的操作 */
+ struct sigaction sa = { 0 };
+
+ /* 指定启动延时的时间和间隔时间 */
+ struct itimerspec its = { .it_value.tv_sec = 1,
+ .it_value.tv_nsec = 0,
+ .it_interval.tv_sec = 1,
+ .it_interval.tv_nsec = 0
+ };
+
+ printf("Signal Interrupt Timer - thread-id: %d\n", gettid());
+
+ sev.sigev_notify = SIGEV_SIGNAL; // Linux-specific
+ sev.sigev_signo = SIGRTMIN;
+ sev.sigev_value.sival_ptr = &eventData;
+
+ /* 创建定时器 */
+ res = timer_create(CLOCK_REALTIME, &sev, &timerId);
+
+ if ( res != 0){
+ fprintf(stderr, "Error timer_create: %s\n", strerror(errno));
+ exit(-1);
+ }
+
+ /* 指定信号和处理程序 */
+ sa.sa_flags = SA_SIGINFO;
+ sa.sa_sigaction = handler;
+
+ /* 初始化信号 */
+ sigemptyset(&sa.sa_mask);
+
+ printf("Establishing handler for signal %d\n", SIGRTMIN);
+
+ /* 注册信号处理程序 */
+ if (sigaction(SIGRTMIN, &sa, NULL) == -1){
+ fprintf(stderr, "Error sigaction: %s\n", strerror(errno));
+ exit(-1);
+ }
+
+ /* 启动定时器 */
+ res = timer_settime(timerId, 0, &its, NULL);
+
+ if ( res != 0){
+ fprintf(stderr, "Error timer_settime: %s\n", strerror(errno));
+ exit(-1);
+ }
+
+ printf("Press ENTER to Exit\n");
+ while(getchar()!='\n'){}
+ return 0;
+}
+
+static void
+handler(int sig, siginfo_t *si, void *uc)
+{
+ UNUSED(sig);
+ UNUSED(uc);
+ struct t_eventData *data = (struct t_eventData *) si->_sifields._rt.si_sigval.sival_ptr;
+ printf("Timer fired %d - thread-id: %d\n", ++data->myData, gettid());
+}
+```
+
+与线程定时器相比,我们必须初始化信号并注册一个信号处理程序。这种方法性能更好,因为它不会导致创建额外的线程。因此,信号处理程序的执行也更加确定。缺点显然是正确调试需要额外的配置工作。
+
+### 总结
+
+本文中描述的两种方法都是接近内核的定时器的实现。不过,即使 [timer_create(...)][2] 函数是 POSIX 规范的一部分,由于数据结构的细微差别,也不可能在 FreeBSD 系统上编译样例代码。除了这个缺点之外,这种实现还为通用计时应用程序提供了细粒度控制。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/21/10/linux-timers
+
+作者:[Stephan Avenwedde][a]
+选题:[lujun9972][b]
+译者:[FigaroCao](https://github.com/FigaroCao)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/hansic99
+[b]: https://github.com/lujun9972
+[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_todo_clock_time_team.png?itok=1z528Q0y (Team checklist)
+[2]: https://linux.die.net/man/2/timer_create
+[3]: https://github.com/hANSIc99/posix_timers
+[4]: https://www.qt.io/product/development-tools
+[5]: https://opensource.com/sites/default/files/posix_timers_open_project_0.png
+[6]: https://opensource.com/sites/default/files/posix_timers_project_configuration_2.png
+[7]: http://www.opengroup.org/onlinepubs/009695399/functions/printf.html
+[8]: http://www.opengroup.org/onlinepubs/009695399/functions/fprintf.html
+[9]: http://www.opengroup.org/onlinepubs/009695399/functions/strerror.html
+[10]: http://www.opengroup.org/onlinepubs/009695399/functions/exit.html
+[11]: http://www.opengroup.org/onlinepubs/009695399/functions/getchar.html
+[12]: https://man7.org/linux/man-pages/man3/signal.3p.html
+[13]: https://linux.die.net/man/7/signal
+[14]: https://opensource.com/sites/default/files/posix_timers_sig34_nostop_pass.png
+[15]: https://sourceware.org/gdb/onlinedocs/gdb/Signals.html
+[16]: https://opensource.com/sites/default/files/posix_timers_sig34_pop_up_2.png
+[17]: https://opensource.com/sites/default/files/posix_timers_signal_windows.png
+[0]: https://img.linux.net.cn/data/attachment/album/202301/09/150238f1d60cmvssr9d0js.jpg
\ No newline at end of file
diff --git a/translated/tech/20211012 Create a timer on Linux.md b/translated/tech/20211012 Create a timer on Linux.md
deleted file mode 100644
index 12934668ca..0000000000
--- a/translated/tech/20211012 Create a timer on Linux.md
+++ /dev/null
@@ -1,278 +0,0 @@
-[#]: subject: "Create a timer on Linux"
-[#]: via: "https://opensource.com/article/21/10/linux-timers"
-[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
-[#]: collector: "lujun9972"
-[#]: translator: "FigaroCao"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-在Linux中创建计时器
-======
-这是一个演示如何创建POSIX兼容的间隔计时器的教程
-
-![Team checklist][1]
-
-对开发人员来说,确定某些事件的时间是一项常见任务。 计时器的常见场景是监督任务的循环执行或在特定时间安排事件。 在这篇文章中,我将演示如何使用 [timer_create(...)][2]创建一个POSIX兼容的间隔计时器。
-
-你可以从[GitHub][3]下载下面样例的源代码。
-
-### 准备 Qt Creator
-
-我使用[Qt Creator][4]作为样例的IDE。为了在Qt Creator运行和调试样例代码,克隆[GitHub][3]仓库,打开Qt Creator,在**File -> Open File or Project...** 并选择 **CMakeLists.txt**:
-
-![Qt Creator open project][5]
-
-在Qt Creator中打开项目 (CC-BY-SA 4.0)
-
-选择工具链之后,点击 **Configure Project**。这个项目包括三个独立的样例(我们在这篇文章中将只会用到其中的两个)。使用绿色标记出来的菜单,可以在每个样例的配置之间切换,并为每个样例激活在终端运行**Run in terminal**(用黄色标记)。当前用于构建和调试的活动示例可以通过左下角的**Debug**按钮进行选择(参见下面的橙色标记)。
-
-![Project configuration][6]
-
-项目配置 (CC-BY-SA 4.0)
-
-### 线程计时器
-
-让我们看看_simple_threading_timer.c_样例。这是最简单的一个。它展示了一个调用了超时函数**expired**的间隔计时器是如何被创建的。
-
-
-```
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <signal.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-void expired(union sigval timer_data);
-
-pid_t gettid(void);
-
-struct t_eventData{
- int myData;
-};
-
-int main()
-{
- int res = 0;
- timer_t timerId = 0;
-
- struct t_eventData eventData = { .myData = 0 };
-
- /* sigevent指定了过期时要执行的操作 */
- struct sigevent sev = { 0 };
-
- /* 指定启动延时时间和间隔时间
- * it_value和it_interval不能为零 */
-
- struct itimerspec its = { .it_value.tv_sec = 1,
- .it_value.tv_nsec = 0,
- .it_interval.tv_sec = 1,
- .it_interval.tv_nsec = 0
- };
-
- [printf][7]("Simple Threading Timer - thread-id: %d\n", gettid());
-
- sev.sigev_notify = SIGEV_THREAD;
- sev.sigev_notify_function = &expired;
- sev.sigev_value.sival_ptr = &eventData;
-
- /* 创建计时器 */
- res = timer_create(CLOCK_REALTIME, &sev, &timerId);
-
- if (res != 0){
- [fprintf][8](stderr, "Error timer_create: %s\n", [strerror][9](errno));
- [exit][10](-1);
- }
-
- /* 启动计时器 */
- res = timer_settime(timerId, 0, &its, NULL);
-
- if (res != 0){
- [fprintf][8](stderr, "Error timer_settime: %s\n", [strerror][9](errno));
- [exit][10](-1);
- }
-
- [printf][7]("Press ETNER Key to Exit\n");
- while([getchar][11]()!='\n'){}
- return 0;
-}
-
-void expired(union sigval timer_data){
- struct t_eventData *data = timer_data.sival_ptr;
- [printf][7]("Timer fired %d - thread-id: %d\n", ++data->myData, gettid());
-}
-```
-
-这种方法的优点是在代码和简单的调试方面占用空间小。缺点是由于到期时创建新线程而增加额外的开销和因此导致的不太确定的结果。
-
-### 中断信号计时器
-
-超时计时器通知的另一种可能性是基于[内核信号][12]。 内核不是在每次计时器过期时创建一个新线程,而是向进程发送一个信号,进程被中断,并调用相应的信号处理程序。
-
-由于接收信号时的默认操作是终止进程(参考[信号][13]手册页),我们必须要提前准备Qt Creator,以便进行正确的调试。
-
-当被调试对象接收到一个信号时,Qt Creator的默认行为是:
-
- * 中断执行并切换到调试器上下文。
- * 显示一个弹出窗口,通知用户接收到信号。
-
-
-
-这两种操作都不需要,因为信号的接收是我们应用程序的一部分。
-
-Qt Creator在后台使用GDB。为了防止GDB在进程接收到信号时停止执行,在“工具”菜单**Tools** -> **Options**,选择 **Debugger**,并导航到**Locals & Expressions**。添加下面的表达式到_Debugging Helper Customization_:
-
-
-```
-`handle SIG34 nostop pass`
-```
-
-![Signal no stop with error][14]
-
-Sig 34 发生错误时未停止 (CC-BY-SA 4.0)
-
-你可以在[GDB documentation][15]找到更多关于GDB信号处理的信息。
-
-接下来,当我们在信号处理程序中停止时,我们想要抑制每次接收到信号时通知我们的弹出窗口:
-
-![Signal 34 pop up box][16]
-
-Signal 34 弹出窗口 (CC-BY-SA 4.0)
-
-为此,导航到**GDB**标签并取消勾选标记的复选框:
-
-![Timer signal windows][17]
-
-计时器信号窗口 (CC-BY-SA 4.0)
-
-现在你可以正确的调试_signal_interrupt_timer_。真正的信号计时器的实施会更复杂一些:
-
-
-```
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <unistd.h>
-#include <signal.h>
-#include <time.h>
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-
-#define UNUSED(x) (void)(x)
-
-static void handler(int sig, siginfo_t *si, void *uc);
-pid_t gettid(void);
-
-struct t_eventData{
- int myData;
-};
-
-int main()
-{
- int res = 0;
- timer_t timerId = 0;
-
- struct sigevent sev = { 0 };
- struct t_eventData eventData = { .myData = 0 };
-
- /* 指定收到信号时的操作 */
- struct sigaction sa = { 0 };
-
- /* 指定启动延时的时间和间隔时间 */
- struct itimerspec its = { .it_value.tv_sec = 1,
- .it_value.tv_nsec = 0,
- .it_interval.tv_sec = 1,
- .it_interval.tv_nsec = 0
- };
-
- [printf][7]("Signal Interrupt Timer - thread-id: %d\n", gettid());
-
- sev.sigev_notify = SIGEV_SIGNAL; // Linux-specific
- sev.sigev_signo = SIGRTMIN;
- sev.sigev_value.sival_ptr = &eventData;
-
- /* 创建计时器 */
- res = timer_create(CLOCK_REALTIME, &sev, &timerId);
-
- if ( res != 0){
- [fprintf][8](stderr, "Error timer_create: %s\n", [strerror][9](errno));
- [exit][10](-1);
- }
-
- /* 指定信号和处理程序 */
- sa.sa_flags = SA_SIGINFO;
- sa.sa_sigaction = handler;
-
- /* 初始化信号 */
- sigemptyset(&sa.sa_mask);
-
- [printf][7]("Establishing handler for signal %d\n", SIGRTMIN);
-
- /* 注册信号处理程序 */
- if (sigaction(SIGRTMIN, &sa, NULL) == -1){
- [fprintf][8](stderr, "Error sigaction: %s\n", [strerror][9](errno));
- [exit][10](-1);
- }
-
- /* 启动计时器 */
- res = timer_settime(timerId, 0, &its, NULL);
-
- if ( res != 0){
- [fprintf][8](stderr, "Error timer_settime: %s\n", [strerror][9](errno));
- [exit][10](-1);
- }
-
- [printf][7]("Press ENTER to Exit\n");
- while([getchar][11]()!='\n'){}
- return 0;
-}
-
-static void
-handler(int sig, siginfo_t *si, void *uc)
-{
- UNUSED(sig);
- UNUSED(uc);
- struct t_eventData *data = (struct t_eventData *) si->_sifields._rt.si_sigval.sival_ptr;
- [printf][7]("Timer fired %d - thread-id: %d\n", ++data->myData, gettid());
-}
-```
-
-与线程计时器相反,我们必须初始化信号并注册一个信号处理程序。这种方法性能更好,因为它不会导致创建额外的线程。因此,信号处理程序的执行也更加确定。缺点显然是正确调试需要额外的配置工作。
-
-### 总结
-
-本文中描述的两种方法都是计时器的接近内核的实现。即使[timer_create(...)][2]函数是POSIX规范的一部分, 在FreeBSD系统上编译样例代码是不可能的,因为数据结构的差异很小。除了这个缺点之外,这种实现还为通用计时应用程序提供了细粒度控制。
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/10/linux-timers
-
-作者:[Stephan Avenwedde][a]
-选题:[lujun9972][b]
-译者:[FigaroCao](https://github.com/FigaroCao)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/hansic99
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_todo_clock_time_team.png?itok=1z528Q0y (Team checklist)
-[2]: https://linux.die.net/man/2/timer_create
-[3]: https://github.com/hANSIc99/posix_timers
-[4]: https://www.qt.io/product/development-tools
-[5]: https://opensource.com/sites/default/files/posix_timers_open_project_0.png
-[6]: https://opensource.com/sites/default/files/posix_timers_project_configuration_2.png
-[7]: http://www.opengroup.org/onlinepubs/009695399/functions/printf.html
-[8]: http://www.opengroup.org/onlinepubs/009695399/functions/fprintf.html
-[9]: http://www.opengroup.org/onlinepubs/009695399/functions/strerror.html
-[10]: http://www.opengroup.org/onlinepubs/009695399/functions/exit.html
-[11]: http://www.opengroup.org/onlinepubs/009695399/functions/getchar.html
-[12]: https://man7.org/linux/man-pages/man3/signal.3p.html
-[13]: https://linux.die.net/man/7/signal
-[14]: https://opensource.com/sites/default/files/posix_timers_sig34_nostop_pass.png
-[15]: https://sourceware.org/gdb/onlinedocs/gdb/Signals.html
-[16]: https://opensource.com/sites/default/files/posix_timers_sig34_pop_up_2.png
-[17]: https://opensource.com/sites/default/files/posix_timers_signal_windows.png
From bdcd68f13ad408acf7696f30fe48bb2ba7773974 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 10 Jan 2023 00:47:48 +0800
Subject: [PATCH 223/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230109.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Le?=
=?UTF-8?q?arn=20the=20Ada=20programming=20language=20by=20writing=20a=20s?=
=?UTF-8?q?imple=20game.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...a programming language by writing a simple game.md | 179 ++++++++++++++++++
1 file changed, 179 insertions(+)
create mode 100644 sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
diff --git a/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
new file mode 100644
index 0000000000..bbfa8c28fc
--- /dev/null
+++ b/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
@@ -0,0 +1,179 @@
+[#]: subject: "Learn the Ada programming language by writing a simple game"
+[#]: via: "https://opensource.com/article/23/1/learn-ada-simple-game"
+[#]: author: "Moshe Zadka https://opensource.com/users/moshez"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Learn the Ada programming language by writing a simple game
+======
+
+When you want to [learn a new programming language][1], it's good to focus on the things programming languages have in common:
+
+- Variables
+- Expressions
+- Statements
+
+These concepts are the basis of most programming languages. Once you understand them, you can start figuring out the rest. Because programming languages usually share similarities, once you know one language, you can learn the basics of another by understanding its differences.
+
+A good way to learn new languages is practicing with a standard program. This allows you to focus on the language, not the program's logic. I'm doing that in this article series using a "guess the number" program, in which the computer picks a number between one and 100 and asks you to guess it. The program loops until you guess the number correctly.
+
+This program exercises several concepts in programming languages:
+
+- Variables
+- Input
+- Output
+- Conditional evaluation
+- Loops
+
+It's a great practical experiment to learn a new programming language.
+
+### Install Ada
+
+The [Ada programming language][2] is a unique and highly structured language with a dedicated developer base. The toolchain for Ada is the GNU Ada Development Environment, better known as GNAT.
+
+You can install GNAT on Linux using your distribution's package manager. On Fedora, CentOS, or similar:
+
+```
+$ sudo dnf install gcc-gnat
+```
+
+On Debian, Linux Mint, and derivatives:
+
+```
+$ sudo apt install gnat
+```
+
+On macOS and Windows, you can download an installer from the [Adacore website][3] (choose your platform from the drop-down menu).
+
+### Guess the number in Ada
+
+Create a file called `game.adb`.
+
+The two built-in Ada libraries this program uses are `Text_IO` and `Numerics.Discrete_Random`:
+
+```
+with Ada.Text_IO;
+use Ada.Text_IO;
+with Ada.Numerics.Discrete_Random;
+```
+
+#### Procedure head
+
+The name of the procedure must match the name of the file. The first part is defining the variables.
+
+Note that the `discrete_random` is specialized to a specific range. In this case, the range of numbers allowed:
+
+```
+procedure Game is
+ type randRange is range 1..100;
+ package Rand_Int is new ada.numerics.discrete_random(randRange);
+ use Rand_Int;
+ gen : Generator;
+ num : randRange;
+ incorrect: Boolean := True;
+ guess: randRange;
+```
+
+#### Procedure logic
+
+The logic starts by `reset(gen)`. This initializes the random number generator, ensuring the number, initialized with `random(gen)`, will be different each time you run the program.
+
+The next step is to run the loop:
+
+- Output the instructions for a guess
+- Read the line
+- Convert it to `randRange`
+- Check it against the number
+
+If the number matches, incorrect is set to **False**, causing the next iteration of the loop to exit.
+
+Finally, the program prints a confirmation of the guess correctness before exiting:
+
+```
+begin
+ reset(gen);
+ num := random(gen);
+ while incorrect loop
+ Put_Line ("Guess a number between 1 and 100");
+ declare
+ guess_str : String := Get_Line (Current_Input);
+ begin
+ guess := randRange'Value (guess_str);
+ end;
+ if guess < num then
+ Put_line("Too low");
+ elsif guess > num then
+ Put_line("Too high");
+ else
+ incorrect := False;
+ end if;
+ end loop;
+ Put_line("That's right");
+end Game;
+```
+
+### Build the program
+
+The easiest way to compile an Ada program is to use `gnatmake`:
+
+```
+$ gnatmake game.adb
+aarch64-linux-gnu-gcc-10 -c game.adb
+aarch64-linux-gnu-gnatbind-10 -x game.ali
+aarch64-linux-gnu-gnatlink-10 game.ali
+```
+
+This generates a binary called `game`.
+
+### Run the program
+
+Each run of the program will be a little different. This is one example:
+
+```
+$ ./game
+Guess a number between 1 and 100
+50
+Too low
+Guess a number between 1 and 100
+75
+Too low
+Guess a number between 1 and 100
+82
+Too low
+Guess a number between 1 and 100
+90
+Too high
+Guess a number between 1 and 100
+87
+Too low
+Guess a number between 1 and 100
+88
+That's right
+```
+
+### Learn Ada
+
+This "guess the number" game is a great introductory program for learning a new programming language because it exercises several common programming concepts in a pretty straightforward way. By implementing this simple game in different programming languages, you can demonstrate some core concepts of the languages and compare their details.
+
+Do you have a favorite programming language? How would you write the "guess the number" game in it? Follow this article series to see examples of other programming languages that might interest you!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/learn-ada-simple-game
+
+作者:[Moshe Zadka][a]
+选题:[lkxed][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/moshez
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/20/10/learn-any-programming-language
+[2]: https://opensource.com/article/21/10/learn-ada-2021
+[3]: https://www.adacore.com/download/more
+
From e99e003b4b1789fd67787264ad73879fce5ee9f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 10 Jan 2023 00:48:39 +0800
Subject: [PATCH 224/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230109.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Us?=
=?UTF-8?q?e=20this=20open=20source=20API=20gateway=20to=20scale=20your=20?=
=?UTF-8?q?API.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
... this open source API gateway to scale your API.md | 149 ++++++++++++++++++
1 file changed, 149 insertions(+)
create mode 100644 sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md
diff --git a/sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md b/sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md
new file mode 100644
index 0000000000..67bba6c7e0
--- /dev/null
+++ b/sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md
@@ -0,0 +1,149 @@
+[#]: subject: "Use this open source API gateway to scale your API"
+[#]: via: "https://opensource.com/article/23/1/api-gateway-apache-apisix"
+[#]: author: "Bobur Umurzokov https://opensource.com/users/iambobur"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Use this open source API gateway to scale your API
+======
+
+An API gateway is a single point of entry for incoming calls to an [application programming interface (API)][1]. The gateway aggregates the services being requested and then returns the appropriate response. To make your API gateway effective, it's vital for you to design a reliable, efficient, and simple API. This is an architectural puzzle, but it's one you can solve as long as you understand the most important components.
+
+### API-Led approach
+
+An API-Led approach puts an API at the heart of communication between applications and the business capabilities they need to access in order to consistently deliver seamless functionality across all digital channels. **API-Led connectivity** refers to the technique of using a reusable and well-designed API to link data and applications.
+
+### API-Led architecture
+
+API-Led architecture is an architectural approach that looks at the best ways of reusing an API. API-Led architecture addresses things like:
+
+- Protecting an API from unauthorized access.
+- Ensuring that consuming applications can always find the right API endpoint.
+- Throttling or limiting the number of calls made to an API to ensure continuous availability.
+- Supporting continuous integration, testing, lifecycle management, monitoring, operations, and so on.
+- Preventing error propagation across the stack.
+- Real-time monitoring of an API with rich analytics and insight.
+- Implementing scalable and flexible business capabilities (for example, supporting a [microservice][2] architecture.)
+
+### API resource routing
+
+Implementing an API gateway as the single entry point to all services means that API consumers only have to be aware of one URL. It becomes the API gateway's responsibility to route traffic to the corresponding service endpoints, and to enforce policies.
+
+![Image depicting the API routing traffic.][3]
+
+This reduces complexity on the API consumer side because the client applications don't need to consume functionality from multiple HTTP endpoints. There's alsono need to implement a separate layer for authentication, authorization, throttling, and rate limiting for each service. Most API gateways, like the open source [Apache APISIX][4] project, already have these core features built in.
+
+### API content-based routing
+
+A content-based routing mechanism also uses an API gateway to route calls based on the content of a request. For example, a request might be routed based on the HTTP header or message body instead of just its target URI.
+
+Consider a scenario when database sharding is applied in order to distribute the load across multiple database instances. This technique is typically applied when the overall number of records stored is huge and a single instance struggles to manage the load.
+
+A better solution is to spread records across multiple database instances. Then you implement multiple services, one for each unique datastore, and adopt an API gateway as the only entry point to all services. You can then configure your API gateway to route calls to the corresponding service based on a key obtained either from the HTTP header or the payload.
+
+![Image of the API gateway exposing a single customer.][5]
+
+In the above diagram, an API gateway is exposing a single `/customers` resource for multiple customer services, each with a different data store.
+
+### API geo-routing
+
+An API geo-routing solution routes an API call to the nearest API gateway based on its origin. In order to prevent latency issues due to distance (for example, a consuming application from Asia calling an API located in North America), you can deploy an API gateway in multiple regions across the world. You can use a different subdomain for each API gateway in each region, letting the consuming application determine the nearest gateway based on application logic. Then, an API gateway provides internal load balancing to make sure that incoming requests are distributed across available instances.
+
+![Image of a DNS traffic management system.][6]
+
+It's common to use a DNS traffic management service and an API gateway to resolve each subdomain against the region's load balancer to target the nearest gateway.
+
+### API aggregator
+
+This technique performs operations (for example, queries) against multiple services, and returns the result to the client service with a single HTTP response. Instead of having a client application make several calls to multiple APIs, an API aggregator uses an API gateway to do this on behalf of the consumer on the server side.
+
+Suppose you have a mobile app that makes multiple calls to different APIs. This increases complexity in the client-side code, it causes over-utilization of network resources, and produces a poor user experience due to increased latency. An API gateway can accept all information required as input, and can request authentication and validation, and understand the data structures from each API it interacts with. It's also capable of transforming the response payloads so they can be sent back to the mobile app as a uniform payload needed for the consumer.
+
+![Image of an API gateway.][7]
+
+### API centralized authentication
+
+In this design, an API gateway acts as a centralized authentication gateway. As an authenticator, an API gateway looks for access credentials in the HTTP header (such as a bearer token.) It then implements business logic that validates those credentials with an identity provider.
+
+![Image of a tree showing API gateway's centralized authentication.][8]
+
+Centralized authentication with an API gateway can solve many problems. It completely offloads user management from an application, improving performance by responding quickly to authentication requests received from client applications. Apache APISIX offers a [variety of plugins][9] to enable different methods of API gateway authentication.
+
+![Image showing Apache ASPISIS and various plugins.][10]
+
+### API format conversion
+
+API format conversion is the ability to convert payloads from one format to another over the same transport. For example, you can transfer from XML/SOAP over HTTPS to JSON over HTTPS, and back again. An API gateway offers capabilities in support of a [REST API][11] and can do payload conversions and transport conversions. For instance, a gateway can convert from a message queue telemetry transport (MQTT) over TCP (a very popular transport in IoT) to JSON over HTTPS.
+
+![Image depicting APISIX transfers.][12]
+
+Apache APISIX is able to receive an HTTP request, transcode it, and then forward it to a gRPC service. It gets the response and returns it back to the client in HTTP format by means of its [gRPC Transcode][13] plug-in.
+
+### API observability
+
+By now, you know that an API gateway offers a central control point for incoming traffic to a variety of destinations. But it can also be a central point for observation, because it's uniquely qualified to monitor all traffic moving between the client and service networks. You can adjust an API gateway so that the data (structured logs, metrics, and traces) can be collected for use with specialized monitoring tools**.**
+
+Apache APISIX provides [pre-built connectors][14] so you can integrate with external monitoring tools. You can leverage these connectors to collect log data from your API gateway to further derive useful metrics and gain complete visibility into how your services are being used. You can also manage the performance and security of your API in your environment.
+
+### API caching
+
+API caching is usually implemented inside the API gateway. It can reduce the number of calls made to your endpoint, and also improve the latency of requests to your API by caching a response from upstream. If the API gateway cache has a fresh copy of the requested resource, it uses that copy to satisfy the request directly instead of making a request to the endpoint. If the cached data is not found, the request travels to the intended upstream services.
+
+![Image depicting how the API gateway cache functions.][15]
+
+### API fault handling
+
+API services may fail due to any number of reasons. In such scenarios, your API service must be resilient enough to deal with predictable failures. You also want to ensure that any resilience mechanisms you have in place work properly. This includes error handling code, circuit breakers, health checks, fallbacks, redundancy, and so on. Modern API gateways support all the most common error-handling features, including automatic retries and timeouts.
+
+![Image depicting some of the many mechanisms that the modern API Gatway can support.][16]
+
+An API gateway acts as an orchestrator that can use a status report to decide how to manage traffic, send load balances to a healthy node, and can fail fast. It can also alert you when something goes wrong. An API gateway also ensures that routing and other network-level components work together successfully to deliver a request to the API process. It helps you detect a problem in the early stage, and to fix issues. A fault injection mechanism (like the one Apache APISIX uses) at the API gateway level can be used to test the resiliency of an application or microservices API against various forms of failures.
+
+### API versioning
+
+This refers to having the ability to define and run multiple concurrent versions of an API. This is particularly important, because an API evolves over time. Having the ability to manage concurrent versions of an API enables API consumers to incrementally switch to newer versions of an API. This means older versions can be deprecated and ultimately retired. This is important because an API, just like any other software application, should be able to evolve either in support of new features or in response to bug fixes.
+
+![Image of using the API Gateway to implement API versioning.][17]
+
+You can use an API gateway to implement API versioning. The versioning can be a header, query parameter, or path.
+
+### Gateway to APISIX
+
+If you want to scale your API services, you need an API gateway. The Apache APISIX project provides essential features for a robust entrypoint, and its benefits are clear. It aligns with an API-Led architecture, and is likely to transform the way your clients interact with your hosted services.
+
+_This article has been adapted and republished from the [Apache APISIX blog][18] with the author's permission._
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/api-gateway-apache-apisix
+
+作者:[Bobur Umurzokov][a]
+选题:[lkxed][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/iambobur
+[b]: https://github.com/lkxed
+[1]: https://www.redhat.com/en/topics/api/what-are-application-programming-interfaces
+[2]: https://www.redhat.com/en/topics/microservices/what-are-microservices?intcmp=7013a000002qLH8AAM
+[3]: https://opensource.com/sites/default/files/2022-12/API.routing.traffic.png
+[4]: https://apisix.apache.org/docs/apisix/terminology/api-gateway/
+[5]: https://opensource.com/sites/default/files/2022-12/API%20gateway%20%20exposing%20a%20singlecustomer.png
+[6]: https://opensource.com/sites/default/files/2022-12/DNS-traffic%20management%20.png
+[7]: https://opensource.com/sites/default/files/2022-12/API-gateway.png
+[8]: https://opensource.com/sites/default/files/2022-12/Apigateway.centralized.png
+[9]: https://apisix.apache.org/docs/apisix/plugins/openid-connect/
+[10]: https://opensource.com/sites/default/files/2022-12/Apache.ASPISISplugins.png
+[11]: https://www.redhat.com/en/topics/api/what-is-a-rest-api?intcmp=7013a000002qLH8AAM
+[12]: https://opensource.com/sites/default/files/2022-12/APISIX.transfers.png
+[13]: https://apisix.apache.org/docs/apisix/plugins/grpc-transcode/
+[14]: https://apisix.apache.org/docs/apisix/plugins/prometheus/
+[15]: https://opensource.com/sites/default/files/2022-12/APIgatewaycache.png
+[16]: https://opensource.com/sites/default/files/2022-12/ModernAPIGatways.png
+[17]: https://opensource.com/sites/default/files/2022-12/API.gateway.version.png
+[18]: https://apisix.apache.org/blog/2022/10/27/ten-use-cases-api-gateway/
From 21e1f7dd5613f7634e32c4b82e2b49d3f1cef5c2 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Tue, 10 Jan 2023 08:45:16 +0800
Subject: [PATCH 225/266] translated
---
... Command in Linux Explanation with Examples.md | 138 ------------------
... Command in Linux Explanation with Examples.md | 132 +++++++++++++++++
2 files changed, 132 insertions(+), 138 deletions(-)
delete mode 100644 sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
create mode 100644 translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
diff --git a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
deleted file mode 100644
index 3f04e64f41..0000000000
--- a/sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
+++ /dev/null
@@ -1,138 +0,0 @@
-[#]: subject: "who Command in Linux: Explanation with Examples"
-[#]: via: "https://www.debugpoint.com/who-command-linux/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-who Command in Linux: Explanation with Examples
-======
-
-**Here’s a beginner’s guide on understanding who command in Linux with several examples.**
-
-_This article is part of the [Linux command][1] learning series._
-
-### who command
-
-The “who” command in Linux is used to display information about users who are currently logged in to the system. It shows the user’s login name, the terminal from which the user is logged in, the time at which the user logged in, and the remote hostname (if applicable).
-
-#### Syntax
-
-Here is the basic syntax for the “who” command:
-
-```
-who [OPTION]... [ FILE | ARG1 ARG2 ]
-```
-
-### Example of various who command and switches
-
-By default, “who” reads the file `/var/run/utmp`, which contains information about users who are currently logged in. If no options are specified, it displays each user’s login name, terminal, and time of login.
-
-```
-who
-```
-
-It gives the following output. As you can see it shows the login name=debugpoint, terminal id tty2 and the date and time of the login.
-
-```
-debugpoint tty2 2023-01-01 11:22 (tty2)
-```
-
-![who command - default example][2]
-
-However, if you run the above command in a guest virtual machine, you should see the same but the terminal id would be the x11 server display name i.e. :0.
-
-```
-❯ whodebugpoint :0 2023-01-01 23:36 (:0)
-```
-
-To show the username of the current user and information, use below:
-
-```
-whoami
-```
-
-View the last system boot time using the -b option:
-
-```
-❯ who -bsystem boot 2023-01-01 23:36
-```
-
-Display the count of users logged in the current system:
-
-```
-❯ who -qdebugpointusers=1
-```
-
-All the above command when paired with -H option, you get a better info with a header line, like below:
-
-```
-who -H
-
-NAME LINE TIME COMMENT
-debugpoint tty2 2023-01-01 11:22 (tty2)
-```
-
-If you want to display all the information related to who command in Linux, use the option -a:
-
-```
-who -aH
-
-NAME LINE TIME IDLE PID COMMENT EXIT
-system boot 2023-01-01 11:19
-run-level 5 2023-01-01 11:19
-debugpoint + tty2 2023-01-01 11:22 13:26 2042 (tty2)
-```
-
-As always, you can save the output of the who command to any file using the redirect as below:
-
-```
-who > user_details.txt
-```
-
-#### Example summary of who command options
-
-Here are some who command examples and their explanation:
-
-Here are some options that can be used with the “who” command:
-
-- `-a`: Display the hostname, time of login, and processes for each user
-- `-b`: Display the time of the last system boot
-- `-d`: Display dead processes (processes that have terminated but have not been removed from the utmp file)
-- `-H`: Display a header line
-- `-l`: Display login processes in long format
-- `-m`: Display only the name and line of the user who is logged in on the terminal specified by `ARG1 ARG2`
-- `-q`: Display a count of logged in users
-- `-u`: Display information about users who have processes that are not detached
-- `-w`: Display information about users who are logged in, in the same format as the utmp file
-
-### Closing Notes
-
-I hope this article helps you to understand who command and its basics. You can also read the [who man pages][3] to learn more. Let me know if you have any questions.
-
-**This article is part of the [Linux command][1] learning series**.
-
-[Next:How to Force Auto Dark Mode in Chrome and Chromium][4]
-
-[_Using Mastodon? Follow us at floss.social/@debugpoint_][5]
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/who-command-linux/
-
-作者:[Arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.debugpoint.com/author/admin1/
-[b]: https://github.com/lkxed
-[1]: https://www.debugpoint.com/category/linux-commands
-[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/who-command-default-example.jpg
-[3]: https://man7.org/linux/man-pages/man1/who.1.html
-[4]: https://www.debugpoint.com/chrome-dark-mode/
-[5]: https://floss.social/@debugpoint
diff --git a/translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
new file mode 100644
index 0000000000..d2097e7d35
--- /dev/null
+++ b/translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
@@ -0,0 +1,132 @@
+[#]: subject: "who Command in Linux: Explanation with Examples"
+[#]: via: "https://www.debugpoint.com/who-command-linux/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Linux 中的 who 命令:解释与示例
+======
+
+**这里是一个关于理解 Linux 中 who 命令的初学者指南,并有几个例子。**
+
+_这篇文章是 [Linux 命令][1]学习系列的一部分。_
+
+### who 命令
+
+Linux中的 “who” 命令用于显示当前登录到系统中的用户的信息。它显示用户的登录名,用户登录的终端,用户登录的时间,以及远程主机名(如果有)。
+
+#### 语法
+
+下面是 “who” 命令的基本语法:
+
+```
+who [OPTION]... [ FILE | ARG1 ARG2 ]
+```
+
+### 各种 who 命令和开关的例子
+
+默认情况下,“who” 读取文件 `/var/run/utmp`,其中包含当前登录的用户的信息。如果没有指定选项,它会显示每个用户的登录名、终端和登录时间。
+
+```
+who
+```
+
+它给出了以下输出。你可以看到它显示了登录名是 debugpoint,终端ID tty2 和登录的日期和时间。
+
+```
+debugpoint tty2 2023-01-01 11:22 (tty2)
+```
+
+![who 命令 - 默认示例][2]
+
+然而,如果你在虚拟机中运行上述命令,你应该看到同样的情况,但终端 ID 将是 x11 服务器的显示名称,即:0。
+
+```
+❯ whodebugpoint :0 2023-01-01 23:36 (:0)
+```
+
+要显示当前用户的用户名和信息,使用下面的方法:
+
+```
+whoami
+```
+
+使用 -b 选项查看最后一次系统启动时间:
+
+```
+❯ who -bsystem boot 2023-01-01 23:36
+```
+
+显示当前系统中登录的用户数:
+
+```
+❯ who -qdebugpointusers=1
+```
+
+所有上述命令与 -H 选项配对时,你会有一个更好的含标题行的信息,如下所示:
+
+```
+who -H
+
+NAME LINE TIME COMMENT
+debugpoint tty2 2023-01-01 11:22 (tty2)
+```
+
+如果你想在Linux中显示与who命令有关的所有信息,请使用选项-a:
+
+```
+who -aH
+
+NAME LINE TIME IDLE PID COMMENT EXIT
+system boot 2023-01-01 11:19
+run-level 5 2023-01-01 11:19
+debugpoint + tty2 2023-01-01 11:22 13:26 2042 (tty2)
+```
+
+像往常一样,你可以使用下面的重定向将 who 命令的输出保存到任何文件:
+
+```
+who > user_details.txt
+```
+
+#### who 命令选项的例子总结
+
+下面是一些 who 命令的例子和它们的解释:
+
+下面是一些可以与 “who” 命令一起使用的选项:
+
+- `-a`: 显示每个用户的主机名、登录时间和进程
+- `-b`: 显示上次系统启动的时间
+- `-d`: 显示死进程(已终止但未从 utmp 文件中删除的进程)
+- `-H`: 显示标题行
+- `-l`: 显示长格式的登录进程
+- `-m`: 只显示在 `ARG1 ARG2` 指定的终端上登录的用户的名字和行。
+- `-q`: 显示已登录用户的数量
+- `-u`: 显示拥有未分离进程的用户的信息
+- `-w`: 显示已经登录的用户信息,格式与 utmp 文件相同
+
+### 结尾说明
+
+我希望这篇文章能够帮助你了解 who 命令及其基本原理。你也可以阅读 [who 手册页][3]来了解更多。如果你有任何问题,请告诉我。
+
+**本文是 [Linux 命令][1]学习系列的一部分**。
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/who-command-linux/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/category/linux-commands
+[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/who-command-default-example.jpg
+[3]: https://man7.org/linux/man-pages/man1/who.1.html
From 4ce97555a818140fd036970552212d53ea0622da Mon Sep 17 00:00:00 2001
From: geekpi
Date: Tue, 10 Jan 2023 09:27:50 +0800
Subject: [PATCH 226/266] translating
---
...30103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
index 8c1d6978d0..3028fc4ed6 100644
--- a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
+++ b/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
@@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/whereis-command-linux/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 7faf3872ae02996638ceb5f24be1c76e3d1ea989 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Tue, 10 Jan 2023 13:03:17 +0800
Subject: [PATCH 227/266] RP
@geekpi
https://linux.cn/article-15430-1.html
---
... Command in Linux Explanation with Examples.md | 59 ++++++++++---------
1 file changed, 32 insertions(+), 27 deletions(-)
rename {translated/tech => published}/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md (54%)
diff --git a/translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
similarity index 54%
rename from translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
rename to published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
index d2097e7d35..8dfae90cf2 100644
--- a/translated/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
+++ b/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md
@@ -3,24 +3,26 @@
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15430-1.html"
-Linux 中的 who 命令:解释与示例
+who 命令的解释与示例
======
-**这里是一个关于理解 Linux 中 who 命令的初学者指南,并有几个例子。**
+![][0]
-_这篇文章是 [Linux 命令][1]学习系列的一部分。_
+> 这里是一个关于理解 Linux 中 who 命令的初学者指南,并带有几个例子。
+
+这篇文章是 [Linux 命令][1]学习系列的一部分。
### who 命令
-Linux中的 “who” 命令用于显示当前登录到系统中的用户的信息。它显示用户的登录名,用户登录的终端,用户登录的时间,以及远程主机名(如果有)。
+Linux 中的 `who` 命令用于显示当前登录到系统中的用户的信息。它显示用户的登录名,用户登录的终端,用户登录的时间,以及远程主机名(如果有)。
#### 语法
-下面是 “who” 命令的基本语法:
+下面是 `who` 命令的基本语法:
```
who [OPTION]... [ FILE | ARG1 ARG2 ]
@@ -28,13 +30,13 @@ who [OPTION]... [ FILE | ARG1 ARG2 ]
### 各种 who 命令和开关的例子
-默认情况下,“who” 读取文件 `/var/run/utmp`,其中包含当前登录的用户的信息。如果没有指定选项,它会显示每个用户的登录名、终端和登录时间。
+默认情况下,`who` 读取文件 `/var/run/utmp`,其中包含当前登录的用户的信息。如果没有指定选项,它会显示每个用户的登录名、终端和登录时间。
```
who
```
-它给出了以下输出。你可以看到它显示了登录名是 debugpoint,终端ID tty2 和登录的日期和时间。
+它给出了以下输出。你可以看到它显示了登录名是 `debugpoint`,终端 ID `tty2` 和登录的日期和时间。
```
debugpoint tty2 2023-01-01 11:22 (tty2)
@@ -42,10 +44,11 @@ debugpoint tty2 2023-01-01 11:22 (tty2)
![who 命令 - 默认示例][2]
-然而,如果你在虚拟机中运行上述命令,你应该看到同样的情况,但终端 ID 将是 x11 服务器的显示名称,即:0。
+然而,如果你在虚拟机中运行上述命令,你应该看到同样的情况,但终端 ID 将是 x11 服务器的显示名称,即 `:0`。
```
-❯ whodebugpoint :0 2023-01-01 23:36 (:0)
+❯ who
+debugpoint :0 2023-01-01 23:36 (:0)
```
要显示当前用户的用户名和信息,使用下面的方法:
@@ -54,19 +57,22 @@ debugpoint tty2 2023-01-01 11:22 (tty2)
whoami
```
-使用 -b 选项查看最后一次系统启动时间:
+使用 `-b` 选项查看最后一次系统启动时间:
```
-❯ who -bsystem boot 2023-01-01 23:36
+❯ who -b
+system boot 2023-01-01 23:36
```
显示当前系统中登录的用户数:
```
-❯ who -qdebugpointusers=1
+❯ who -q
+debugpoint
+users=1
```
-所有上述命令与 -H 选项配对时,你会有一个更好的含标题行的信息,如下所示:
+所有上述命令与 `-H` 选项配对时,你会有一个更好的含标题行的信息,如下所示:
```
who -H
@@ -75,7 +81,7 @@ NAME LINE TIME COMMENT
debugpoint tty2 2023-01-01 11:22 (tty2)
```
-如果你想在Linux中显示与who命令有关的所有信息,请使用选项-a:
+如果你想在 Linux 中显示与 `who` 命令有关的所有信息,请使用选项 `-a`:
```
who -aH
@@ -86,7 +92,7 @@ run-level 5 2023-01-01 11:19
debugpoint + tty2 2023-01-01 11:22 13:26 2042 (tty2)
```
-像往常一样,你可以使用下面的重定向将 who 命令的输出保存到任何文件:
+像往常一样,你可以使用下面的重定向将 `who` 命令的输出保存到任何文件:
```
who > user_details.txt
@@ -94,9 +100,9 @@ who > user_details.txt
#### who 命令选项的例子总结
-下面是一些 who 命令的例子和它们的解释:
+下面是一些 `who` 命令的例子和它们的解释:
-下面是一些可以与 “who” 命令一起使用的选项:
+下面是一些可以与 `who` 命令一起使用的选项:
- `-a`: 显示每个用户的主机名、登录时间和进程
- `-b`: 显示上次系统启动的时间
@@ -105,14 +111,12 @@ who > user_details.txt
- `-l`: 显示长格式的登录进程
- `-m`: 只显示在 `ARG1 ARG2` 指定的终端上登录的用户的名字和行。
- `-q`: 显示已登录用户的数量
-- `-u`: 显示拥有未分离进程的用户的信息
+- `-u`: 显示拥有未脱离进程的用户的信息
- `-w`: 显示已经登录的用户信息,格式与 utmp 文件相同
-### 结尾说明
+### 总结
-我希望这篇文章能够帮助你了解 who 命令及其基本原理。你也可以阅读 [who 手册页][3]来了解更多。如果你有任何问题,请告诉我。
-
-**本文是 [Linux 命令][1]学习系列的一部分**。
+我希望这篇文章能够帮助你了解 `who` 命令及其基本原理。你也可以阅读 [who 手册页][3]来了解更多。如果你有任何问题,请告诉我。
--------------------------------------------------------------------------------
@@ -120,8 +124,8 @@ via: https://www.debugpoint.com/who-command-linux/
作者:[Arindam][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -130,3 +134,4 @@ via: https://www.debugpoint.com/who-command-linux/
[1]: https://www.debugpoint.com/category/linux-commands
[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/who-command-default-example.jpg
[3]: https://man7.org/linux/man-pages/man1/who.1.html
+[0]: https://img.linux.net.cn/data/attachment/album/202301/10/130213zb6odhv8gl8cvxvo.jpg
\ No newline at end of file
From e04abddad8e8af9484d77de49437c5aa2b9d6d98 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Tue, 10 Jan 2023 17:36:40 +0800
Subject: [PATCH 228/266] ALL
@wxy
https://linux.cn/article-15432-1.html
---
...my zsh and powerlevel10k A Match Made in Heaven.md | 224 ++++++++++++++++++
...my zsh and powerlevel10k A Match Made in Heaven.md | 222 -----------------
2 files changed, 224 insertions(+), 222 deletions(-)
create mode 100644 published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md
delete mode 100644 sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md
diff --git a/published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md b/published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md
new file mode 100644
index 0000000000..27d7c57e27
--- /dev/null
+++ b/published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md
@@ -0,0 +1,224 @@
+[#]: subject: "oh my zsh and powerlevel10k: A Match Made in Heaven"
+[#]: via: "https://www.debugpoint.com/oh-my-zsh-powerlevel10k/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15432-1.html"
+
+Oh My Zsh 和 Powerlevel10k:天作之合
+======
+
+> 这是一篇快速而简单的指南,用 Oh My Zsh 和 Powerlevel10k 主题改造你的 Zsh 终端 Shell,使其在 Ubuntu 和其他 Linux 发行版中看起来很酷。
+
+![][1]
+
+大多数 Linux 发行版中的默认 Shell 是 Bash。Bash 是一个可靠的和传统的工具。然而,它缺乏一些自定义功能,比如漂亮的颜色、光标支持等等。
+
+你可以使用另一个 Shell,即 Zsh 来得到更多的设置调整,并帮助你扩展你的 Bash Shell 体验。
+
+这个简单的指南解释了如何安装 Zsh、Oh My Zsh 并应用 Powerlevel10k 主题。
+
+### Oh My Zsh 和 Powerlevel10k 安装和配置指南
+
+#### 1、安装 Zsh 和改变 Shell
+
+打开一个终端,使用以下适用于你的发行版的命令安装 Zsh。
+
+Ubuntu、Debian、Linux Mint 和所有相关的发行版:
+
+```
+sudo apt install zsh
+```
+
+Fedora:
+
+```
+sudo dnf install zsh
+```
+
+Arch:
+
+```
+pacman -S zsh
+```
+
+安装完成后,找出 Zsh 的安装路径:
+
+```
+whereis zsh
+```
+
+然后使用当前用户的 Zsh 可执行路径改变 Shell。
+
+```
+chsh -s /usr/bin/zsh <用户名 >
+```
+
+![改变当前用户的 Shell][2]
+
+关闭并再次打开终端。然后你应该看到 Zsh 的首次设置。选择选项 2。它将用一个默认的主题改变你的 Shell 提示符的外观,如下图所示:
+
+![Zsh 的首次设置][3]
+
+#### 2、安装 Oh My Zsh
+
+Oh My Zsh 是一套可以进一步定制 Zsh 的脚本。
+
+首先,我们将从 GitHub 上下载 Oh My Zsh 脚本来安装它。如果你有 `wget` 和 `git` 软件包,那就最好了。如果还没有安装,请使用以下命令 [安装 wget][4] & git:
+
+```
+sudo apt install wget
+sudo apt install git
+```
+
+然后用下面的命令安装 Oh My Zsh:
+
+```
+sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
+```
+
+然后你应该看到 Oh My Zsh 及默认主题 Robbyrussell 应用到了你的终端。
+
+![安装 Oh My Zsh 和默认主题][5]
+
+Oh My Zsh 还附带了其他的主题,你可以 [使用这篇指南][6] 安装它们。然而,在本教程中,我将谈论一个特定的主题,即 Powerlevel10k。
+
+#### 3、为 Oh My Zsh 安装 Powerlevel10k 主题
+
+打开终端,运行以下命令,从 GitHub 上克隆 Powerlevel10k 代码库,并将文件放到 Oh My Zsh 的配置文件夹中。
+
+```
+git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
+```
+
+用文本编辑器打开 `~/.zshrc` 文件,将 `ZSH_THEME` 变量设为 `"powerlevel10k/powerlevel10k"`。
+
+```
+cd ~
+```
+
+```
+nano .zshrc
+```
+
+默认情况下,它应该是 Robbyrussell。删除 `”robbyrussell"`,添加下面的 `"powerlevel10k/powerlevel10k"`。
+
+更改后,你的 `~/.zshrc` 文件应该是这样的:
+
+```
+ZSH_THEME="powerlevel10k/powerlevel10k”
+```
+
+保存并关闭该文件(`CTRL+O`、回车和 `CTRL+X`)。
+
+![改变 Oh My Zsh 主题为 Powerlevel10k][7]
+
+重新启动你的终端,启动首次向导来设置 Powerlevel10k 主题。
+
+#### 4、Powerleve10k 的首次设置
+
+安装后启动终端时,Powerlevel10k 会提示你各种问题以了解你的 Linux 发行版设置。所以,根据你的需要按下键,按照你的口味来定制你的终端。下面是一些问题的例子截图,可以给你一些启发。
+
+![Powerlevel10k - wizard1][8]
+
+![Powerlevel10k - wizard2][9]
+
+最后,你可以保存文件,享受你的终端的新面貌。
+
+![应用 Powerlevel10k Zsh 主题设置后][10]
+
+如果你想再次重启配置向导,运行以下程序。你可以随心所欲地做,次数不限。
+
+```
+p10k configure
+```
+
+基本设置就这样结束了。如果你想了解更多,请继续阅读。
+
+### 更多配置(高级用法)
+
+#### 5、安装 Dracula GNOME 终端主题
+
+如果你使用的是带有原生终端应用的 GNOME 桌面,你可以试试令人惊叹的 Drakula 主题。要做到这一点,打开一个终端,运行下面的命令来下载该主题:
+
+```
+git clone https://github.com/dracula/gnome-terminalcd gnome-terminal
+```
+
+打开 GNOME “终端”应用,进入偏好设置。通过点击 “+” 添加一个新的配置文件,并命名为 “drakula”。然后进入颜色标签,取消勾选 “使用系统主题的颜色use colors from system theme” 选项。
+
+![为终端创建一个新的配置文件][11]
+
+回到终端,运行以下程序。当出现提示时,选择你刚才创建的配置文件名称,如上所述。
+
+```
+./install.sh
+```
+
+![为 GNOME “终端”应用 Drakula 主题][12]
+
+一旦安装完成,回到偏好设置中,将 Drakula 配置文件标记为默认。
+
+#### 6、Zsh 的自动补完和语法高亮
+
+你可能想试试由社区开发的两个可用于 Zsh 的插件。它们是 zsh-autosuggestions 和 zsh-syntax-highlighting。
+
+打开终端,运行以下程序,下载 zsh-autosuggestions,并将其放在插件文件夹中:
+
+```
+git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
+```
+
+同样地,为语法高亮插件运行以下程序:
+
+```
+git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
+```
+
+通过文本编辑器打开 `~/.zshrc`文件(使用以下命令),并找到 `plugins=(git)` 一行。并将其替换为以下内容:
+
+```
+nano ~/.zshrc
+```
+
+```
+plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
+```
+
+使用 `CTRL+O`、回车和 `CTRL+X` 保存并关闭该文件。
+
+关闭并打开你的终端。现在,你应该可以使用自动建议和语法高亮了。
+
+### 总结
+
+这样就好了!你现在应该已经在你的系统上安装了 Oh My Zsh 和 Powerlevel10k 主题。你可以根据自己的需要,进一步定制 Powerlevel10k 主题的外观和行为。
+
+干杯。
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/oh-my-zsh-powerlevel10k/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2022/12/ohp10k.jpg
+[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-the-shell-for-the-current-user.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/first-time-setup-for-zsh.jpg
+[4]: https://www.debugpoint.com/wget-not-found-error/
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/Install-oh-my-zsh-and-default-theme.jpg
+[6]: https://www.debugpoint.com/install-use-zsh/
+[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-oh-my-zsh-theme-to-powerlevel10k.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard1.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard-2.jpg
+[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-applying-settings-in-powerlevel10k-zsh-theme.jpg
+[11]: https://www.debugpoint.com/wp-content/uploads/2022/12/create-a-new-profile-for-terminal.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2022/12/applying-the-drakula-theme-for-gnome-terminal.jpg
diff --git a/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md b/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md
deleted file mode 100644
index 4972b6f039..0000000000
--- a/sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md
+++ /dev/null
@@ -1,222 +0,0 @@
-[#]: subject: "oh my zsh and powerlevel10k: A Match Made in Heaven"
-[#]: via: "https://www.debugpoint.com/oh-my-zsh-powerlevel10k/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-oh my zsh and powerlevel10k: A Match Made in Heaven
-======
-
-**A quick and simple guide to transforming your zsh terminal shell with oh my zsh and powerlevel10k theme to make it look cool in Ubuntu and other Linux distros.**
-
-![][1]
-
-The default shell in most of the Linux distributions is bash. Bash is solid and a legacy utility. However, it lacks some customizations, such as nice colours, cursor support, etc.
-
-You can use another shell, zsh to enjoy additional tweaks and help you to extend your Bash shell experience.
-
-This crisp guide explains how to install zsh, oh my zsh and apply the powerlevel10k theme.
-
-### oh my zsh and powerlevel10k: Installation and configuration guide
-
-#### 1. Installing zsh and changing the shell
-
-Open a terminal and install zsh using the following command applicable to your distribution.
-
-**_Ubuntu, Debian, Linux Mint and all related distro_**
-
-```
-sudo apt install zsh
-```
-
-_**Fedora**_
-
-```
-sudo dnf install zsh
-```
-
-**_Arch_**
-
-```
-pacman -S zsh
-```
-
-After installation is complete, find out the zsh install path
-
-```
-whereis zsh
-```
-
-Then change the shell using the zsh executable path for the current user.
-
-```
-chsh -s /usr/bin/zsh
-```
-
-![change the shell for the current user][2]
-
-Close and open the terminal again. And you should see the first-time setup for zsh. Select option 2. And it will change the look of your shell prompt with a default theme, as shown below.
-
-![first time setup for zsh][3]
-
-#### 2. Install oh my zsh
-
-The oh my zsh is a set of scripts to customize zsh further.
-
-Firstly, we will install oh my zsh script by downloading it from GitHub. It would be best if you had wget and git package for that. [Install wget][4] & git using the following command if it’s not installed.
-
-```
-sudo apt install wget
-sudo apt install git
-```
-
-Then install oh my zsh using the following command.
-
-```
-sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
-```
-
-And you should see the oh my zsh theme is applied with a default theme robbyrussell to your terminal.
-
-![Install oh my zsh and default theme][5]
-
-The Oh my zsh also comes with additional themes, and you can install them [using this guide][6]. However, in this tutorial, I will talk about a specific theme, i.e. powerlevel10k.
-
-#### 3. Install powerlevel10k theme for oh my zsh
-
-Open a terminal and run the following command to clone powerlevel10k repo from GitHub and put the files in the config folder of oh my zsh.
-
-```
-git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
-```
-
-Open the `~/.zshrc` file in a text editor and set the `ZSH_THEME` variable to `"powerlevel10k/powerlevel10k"`.
-
-```
-cd ~
-```
-
-```
-nano .zshrc
-```
-
-By default, it should be robbyrussell. Remove “robbyrussell” and add the below `"powerlevel10k/powerlevel10k"`.
-
-Your `~/.zshrc` file should look something like this after the change:
-
-`ZSH_THEME="powerlevel10k/powerlevel10k"`
-
-Save and close the file (CTRL+O, ENTER and CTRL+X).
-
-![change oh my zsh theme to powerlevel10k][7]
-
-Restart your terminal to launch the first-time wizard to set up the powerlevel10k theme.
-
-#### 4. First time set up for powerleve10k
-
-When you launch the terminal after the installation, the powerlevel10k prompts you with various questions to understand your Linux distro setup. So, press the key as per your need to customize your terminal as per your taste. Some example screenshots of questions are below to give you some idea.
-
-![powerlevel10k - wizard1][8]
-
-![powerlevel10k - wizard 2][9]
-
-And finally, you can save the file to enjoy the new look of your terminal.
-
-![After applying settings in powerlevel10k zsh theme][10]
-
-If you want to restart the configuration wizard again, run the following. You can do it as many times as you want.
-
-```
-p10k configure
-```
-
-This concludes the basic setup. If you want more, follow along.
-
-### More configuration (advanced usage)
-
-#### 5. Installing dracula GNOME Terminal theme
-
-If you are using GNOME desktop with the native terminal, you can try the stunning drakula theme. To do that, open a terminal and run the following command to download the theme.
-
-```
-git clone https://github.com/dracula/gnome-terminalcd gnome-terminal
-```
-
-Open GNOME Terminal and go to preferences. Add a new profile by clicking on the [+] and name it “drakula”. Then go to colours tab and uncheck ‘use colors from system theme’ option.
-
-![create a new profile for terminal][11]
-
-Go back to the terminal and run the following. When prompted, select the profile name which you just created as above.
-
-```
-./install.sh
-```
-
-![applying the drakula theme for gnome terminal][12]
-
-Once the installation is complete, go back to preferences and mark the drakula profile as default.
-
-#### 6. Autocomplete and syntax highlighting for zsh
-
-There are two community-developed plugins available for zsh, which you may want to try out. They are zsh-autosuggestions and zsh-syntax-highlighting.
-
-Open a terminal and run the following to download zsh-autosuggestions and put it inside the plugin folder.
-
-```
-git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
-```
-
-Similarly, run the following for the syntax highlighting plugin.
-
-```
-git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
-```
-
-Open the ~/.zshrc file via a text editor (use the following command), and find the plugins=(git) line. And replace it with the following:
-
-```
-nano ~/.zshrc
-```
-
-```
-plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
-```
-
-Save & close the file using CTRL+O, ENTER and CTRL+X.
-
-Close and open your terminal; now, you should be able to use the auto-suggestions and syntax highlighting.
-
-### Wrapping Up
-
-That’s it! You should now have “Oh My Zsh” and the Powerlevel10k theme installed on your system. You can customize the appearance and behaviour of the Powerlevel10k theme by customizing further as per your need.
-
-Cheers.
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/oh-my-zsh-powerlevel10k/
-
-作者:[Arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.debugpoint.com/author/admin1/
-[b]: https://github.com/lkxed
-[1]: https://www.debugpoint.com/wp-content/uploads/2022/12/ohp10k.jpg
-[2]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-the-shell-for-the-current-user.jpg
-[3]: https://www.debugpoint.com/wp-content/uploads/2022/12/first-time-setup-for-zsh.jpg
-[4]: https://www.debugpoint.com/wget-not-found-error/
-[5]: https://www.debugpoint.com/wp-content/uploads/2022/12/Install-oh-my-zsh-and-default-theme.jpg
-[6]: https://www.debugpoint.com/install-use-zsh/
-[7]: https://www.debugpoint.com/wp-content/uploads/2022/12/change-oh-my-zsh-theme-to-powerlevel10k.jpg
-[8]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard1.jpg
-[9]: https://www.debugpoint.com/wp-content/uploads/2022/12/powerlevel10k-wizard-2.jpg
-[10]: https://www.debugpoint.com/wp-content/uploads/2022/12/After-applying-settings-in-powerlevel10k-zsh-theme.jpg
-[11]: https://www.debugpoint.com/wp-content/uploads/2022/12/create-a-new-profile-for-terminal.jpg
-[12]: https://www.debugpoint.com/wp-content/uploads/2022/12/applying-the-drakula-theme-for-gnome-terminal.jpg
From 3192fa76378c0a42ef1e4f088b51f5561766116e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 10 Jan 2023 20:01:03 +0800
Subject: [PATCH 229/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020230109.3=20=E2=AD=90=EF=B8=8F=20OBS=20Studio=2029=20?=
=?UTF-8?q?Release=20Has=20Little=20in=20Store=20For=20Linux.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...io 29 Release Has Little in Store For Linux.md | 92 +++++++++++++++++++
1 file changed, 92 insertions(+)
create mode 100644 sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md
diff --git a/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md b/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md
new file mode 100644
index 0000000000..a6d65103b1
--- /dev/null
+++ b/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md
@@ -0,0 +1,92 @@
+[#]: subject: "OBS Studio 29 Release Has Little in Store For Linux"
+[#]: via: "https://news.itsfoss.com/obs-studio-29-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+OBS Studio 29 Release Has Little in Store For Linux
+======
+
+OBS Studio 29 is an exciting release with key improvements across all platforms.
+
+![OBS Studio 29 Release Has Little in Store For Linux][1]
+
+[OBS Studio][2] is one of the most popular open-source screen recording and streaming software.
+
+Used by many Linux users and content creators, it has a pretty neat set of tools and features that lets you record and stream content.
+
+Its last major release was back in September 2022, which brought in native support for Apple Silicon, updated UI, improved color support, and more.
+
+Its next release, v29, seems to be a bit interesting, but not so much for Linux users 😞
+
+### OBS Studio 29: What's New?
+
+![obs studio 29][3]
+
+This release has plenty of improvements and fixes; some of the highlights include the following:
+
+- **Media key support for Linux**
+- **New Audio Filters**
+- **Improved NVIDIA Video and Audio Filters**
+- **Better Encoder Support**
+- **Various Fixes and Improvements**
+
+**Media key support:** You can finally use the media keys on your keyboard to control the playback or the volume with OBS on Linux.
+
+**New Audio Filters:** OBS Studio 29 features two new audio filters, an upward compressor filter, and a 3-band equalizer filter.
+
+**Improved NVIDIA Video and Audio Filters:** Various improvements have been made to these filters.
+
+A new Mask Refresh slider has been added, alongside support for temporal processing, that is supposed to provide better quality masking.
+
+**Better Encoder Support:** Well, OBS Studio 29 received improved support for several encoders, such as:
+
+- AMD AV1 Encoder for[RX7000 series][4] of GPUs on Windows.
+- Intel AV1 Encoder for [Arc GPUs][5] on Windows.
+- Intel HEVC Encoder on Windows.
+- Native HEVC and ProRes encoders for macOS.
+
+> 📋 Note that support for these encoders is only for either Windows or macOS.Sadly, they miss out on support for Linux. We hope these are added in a future release of OBS Studio.
+
+**Various Fixes and Improvements:** Apart from the ones listed above, OBS Studio 29 features plenty of other changes, such as:
+
+- Websockets 5.1.0
+- The replay buffer's memory limit is now limited to 75% of installed system RAM, instead of being fixed to 8 GB.
+- Support for encryption and authentication for SRT and RIST outputs.
+- Ability to inspect and/or mute individual browser docks.
+- Support for higher refresh rates in case of video captures.
+
+For more technical details, you can go through the [official release notes][6].
+
+### Download OBS Studio 29
+
+To get the latest OBS Studio 29, you can get the [Flatpak][7], the recommended method.
+
+You can also explore other installation methods mentioned in its official download page.
+
+[OBS Studio 29][8]
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/obs-studio-29-release/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/obs-studio-29-release.png
+[2]: https://obsproject.com
+[3]: https://news.itsfoss.com/content/images/2023/01/OBS_Studio_29.png
+[4]: https://en.wikipedia.org/wiki/Radeon_RX_7000_series
+[5]: https://www.intel.in/content/www/in/en/products/details/discrete-gpus/arc.html
+[6]: https://github.com/obsproject/obs-studio/releases/tag/29.0.0
+[7]: https://flathub.org/apps/details/com.obsproject.Studio
+[8]: https://obsproject.com/download
From eac9131992876e2f3591d461f3614c640bc129fa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 10 Jan 2023 20:03:41 +0800
Subject: [PATCH 230/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230110.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20A?=
=?UTF-8?q?=20guide=20to=20strings=20in=20MySQL.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...0110.0 ⭐️⭐️ A guide to strings in MySQL.md | 228 ++++++++++++++++++
1 file changed, 228 insertions(+)
create mode 100644 sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
diff --git a/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
new file mode 100644
index 0000000000..a0047585ee
--- /dev/null
+++ b/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
@@ -0,0 +1,228 @@
+[#]: subject: "A guide to strings in MySQL"
+[#]: via: "https://opensource.com/article/23/1/strings-mysql"
+[#]: author: "Hunter Coleman https://opensource.com/users/hunterc"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+A guide to strings in MySQL
+======
+
+Strings are one of the most common data types you will use in MySQL. Many users insert and read strings in their databases without thinking too much about them. This article aims to give you a bit of a deep dive into how MySQL stores and displays your string variables so that you can have better control over your data.
+
+You can break strings into two categories: binary and nonbinary. You probably think about nonbinary strings most of the time. Nonbinary strings have character sets and collations. Binary strings, on the other hand, store things such as MP3 files or images. Even if you store a word in a binary string, such as **song**, it is not stored in the same way as in a nonbinary string.
+
+I will focus on nonbinary strings. All nonbinary strings in MySQL are associated with a character set and a collation. A string's character set controls what characters can be stored in the string, and its collation controls how the strings are ordered when you display them.
+
+### Character sets
+
+To view the character sets on your system, run the following command:
+
+```
+SHOW CHARACTER SET;
+```
+
+This command will output four columns of data, including the character set:
+
+- Name
+- Brief description
+- Default collation
+- Maximum size of each character in the character set
+
+MySQL used to default to the **latin1** character set, but since version 8.0, the default has been **utf8mb4**. The default collation is now **utf8mb4_0900_ai_ci**. The **ai** indicates that this collation is accent insensitive (**á = a**), and the **ci** specifies that it is case insensitive (**a = A**).
+
+Different character sets store their characters in various-sized chunks of memory. For example, as you can see from the above command, characters stored in **utf8mb4** are stored in memory from one to four bytes in size. If you want to see if a string has multibyte characters, you can use the **CHAR_LENGTH()** and **LENGTH()** functions. **CHAR_LENGTH()** displays how many characters a string contains, whereas **LENGTH()** shows how many bytes a string has, which may or may not be the same as a string's length in characters, depending on the character set. Here is an example:
+
+```
+SET @a = CONVERT('data' USING latin1);
+
+SELECT LENGTH(@a), CHAR_LENGTH(@a);
+
++------------+-----------------+
+| LENGTH(@a) | CHAR_LENGTH(@a) |
++------------+-----------------+
+| 4 | 4 |
++------------+-----------------+
+```
+
+This example shows that the **latin1** character set stores characters in single-byte units. Other character sets, such as **utf16**, allow multibyte characters:
+
+```
+SET @b = CONVERT('data' USING utf16);
+
+SELECT LENGTH(@b), CHAR_LENGTH(@b);
+
++------------+------------------+
+| LENGTH(@b) | CHAR_LENGTH(@b) |
++------------+------------------+
+| 8 | 4 |
++------------+------------------+
+```
+
+### Collation
+
+A string's collation will determine how the values are displayed when you run a SQL statement with an **ORDER BY** clause. Your choice of collations is determined by what character set you select. When you ran the command `SHOW CHARACTER SET` above, you saw the default collations for each character set. You can easily see all the collations available for a particular character set. For example, if you want to see which collations are allowed by the **utf8mb4** character set, run:
+
+```
+SHOW COLLATION LIKE 'utf8mb4%';
+```
+
+A collation can be case-insensitive, case-sensitive, or binary. Let's build a simple table, insert a few values into it, and then view the data using different collations to see how the output differs:
+
+```
+CREATE TABLE sample (s CHAR(5));
+
+INSERT INTO sample (s) VALUES
+ ('AAAAA'), ('ccccc'), ('bbbbb'), ('BBBBB'), ('aaaaa'), ('CCCCC');
+
+SELECT * FROM sample;
+
++-----------+
+| s |
++-----------+
+| AAAAA |
+| ccccc |
+| bbbbb |
+| BBBBB |
+| aaaaa |
+| CCCCC |
++-----------+
+```
+
+With case-insensitive collations, your data is returned in alphabetical order, but there is no guarantee that capitalized words will come before lowercase words, as seen below:
+
+```
+SELECT * FROM sample ORDER BY s COLLATE utf8mb4_turkish_ci;
+
++-----------+
+| s |
++-----------+
+| AAAAA |
+| aaaaa |
+| bbbbb |
+| BBBBB |
+| ccccc |
+| CCCCC |
++-----------+
+```
+
+On the other hand, when MySQL runs a case-sensitive search, lowercase will come before uppercase for each letter:
+
+```
+SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_as_cs;
+
++-----------+
+| s |
++-----------+
+| aaaaa |
+| AAAAA |
+| bbbbb |
+| BBBBB |
+| ccccc |
+| CCCCC |
++-----------+
+```
+
+And binary collations will return all capitalized words before lowercase words:
+
+```
+SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_bin;
+
++-----------+
+| s |
++-----------+
+| AAAAA |
+| ccccc |
+| bbbbb |
+| BBBBB |
+| aaaaa |
+| CCCCC |
++-----------+
+```
+
+If you want to know which character set and collation a string uses, you can use the aptly named **charset** and **collation** functions. A server running MySQL version 8.0 or higher will default to using the **utf8mb4** character set and **utf8mb4_0900_ai-ci** collation:
+
+```
+SELECT charset('data');
+
++-------------------+
+| charset('data') |
++-------------------+
+| utf8mb4 |
++-------------------+
+
+ SELECT collation('data');
+
++--------------------+
+| collation('data') |
++--------------------+
+| utf8mb4_0900_ai_ci |
++--------------------+
+```
+
+You can use the `SET NAMES` command to change the character set or collation used.
+
+To change from the **utf8mb4** character set to **utf16**, run this command:
+
+```
+SET NAMES 'utf16';
+```
+
+If you would also like to choose a collation other than the default, you can add a **COLLATE** clause to the `SET NAMES` command.
+
+For example, say your database stores words in the Spanish language. The default collation for MySQL (**utf8mb4_0900_ai_ci**) sees ch and ll as two different characters and will sort them as such. But in Spanish, ch and ll are individual letters, so if you want them sorted in the proper order (following c and l, respectively), you need to use a different collation. One option is to use the **utf8mb4_spanish2_ci** collation.
+
+```
+SET NAMES 'utf8mb4' COLLATE 'utf8mb4_spanish2-ci';
+```
+
+### Storing strings
+
+MySQL allows you to choose between several data types for your string values. (Even more so than other popular databases such as PostgreSQL and MongoDB.)
+
+Here is a list of MySQL's binary string data types, their nonbinary equivalents, and their maximum length:
+
+- **binary:** char (255)
+- **varbinary:** varchar (65,535)
+- **tinyblob:** tinytext (255)
+- **blob:** text (65,535)
+- **mediumblob:** mediumtext (16,777,215)
+- **longblob:** longtext (4,294,967,295)
+
+One important thing to remember is that unlike the varbinary, varchar, text, and blob types, which are stored in variable length fields (that is, using only as much space as needed), MySQL stores binary and char types in fixed length fields. So a value such as **char(20)** or **binary(20)** will always take up 20 bytes, even if you store less than 20 characters in them. MySQL pads the values with the **ASCII NUL** value (**0x00**) for binary types and spaces for char types.
+
+Another thing to consider when choosing data types is whether you want spaces after the string to be preserved or stripped. When displaying data, MySQL strips whitespace from data stored with the char data type, but not varchar.
+
+```
+CREATE TABLE sample2 (s1 CHAR(10), s2 VARCHAR(10));
+
+INSERT INTO sample2 (s1, s2) VALUES ('cat ', 'cat ');
+
+SELECT s1, s2, CHAR_LENGTH(s1), CHAR_LENGTH(s2) FROM sample2;
+
++---------+---------+-----------------------------------+
+| s1 | s2 | CHAR_LENGTH(s1) | CHAR_LENGTH(s2) |
++---------+---------+-----------------------------------+
+| cat | cat | 3 | 10 |
++---------+---------+-----------------------------------+
+```
+
+### Wrap up
+
+Strings are one of the most common data types used in databases, and MySQL remains one of the most popular database systems in use today. I hope that you have learned something new from this article and will be able to use your new knowledge to improve your database skills.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/strings-mysql
+
+作者:[Hunter Coleman][a]
+选题:[lkxed][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/hunterc
+[b]: https://github.com/lkxed
From 66504130fc3125c0af27456c2585bcb9be740f5c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Tue, 10 Jan 2023 20:05:08 +0800
Subject: [PATCH 231/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020230110.2=20=E2=AD=90=EF=B8=8F=20Wow!=20CoolerMaster'?=
=?UTF-8?q?s=20MasterPlus=20Software=20to=20Go=20Open=20Source!.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...er's MasterPlus Software to Go Open Source!.md | 80 +++++++++++++++++++
1 file changed, 80 insertions(+)
create mode 100644 sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md
diff --git a/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md b/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md
new file mode 100644
index 0000000000..ca57c55a4f
--- /dev/null
+++ b/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md
@@ -0,0 +1,80 @@
+[#]: subject: "Wow! CoolerMaster's MasterPlus Software to Go Open Source!"
+[#]: via: "https://news.itsfoss.com/coolermaster-open-source-software/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Wow! CoolerMaster's MasterPlus Software to Go Open Source!
+======
+
+MasterPlus to get a complete overhaul and an open-source version? Sounds good!
+
+![Wow! CoolerMaster's MasterPlus Software to Go Open Source!][1]
+
+Most gaming/peripheral software suits are either proprietary or not officially available for Linux.
+
+As a result, we must constantly look for open-source tools to configure our hardware to get native functionality.
+
+The likes of [Piper][2], [OpenRGB][3], [Solaar][4], etc. come in handy in these situations.
+
+But, sometimes, even these are not enough.
+
+Luckily, [CoolerMaster][5] has decided to release an open-source version of its [MasterPlus][6] software that aims to work with its coolers and non-CoolerMaster coolers.
+
+**While this does not guarantee its availability for Linux systems, we can definitely hope for it.**
+
+This move should also encourage other companies like Razer and Logitech to consider making open-source tools that do away with bloat found in them.
+
+Let's see what CoolerMaster plans to do.
+
+### MasterPlus Open-Source Version: What We Know So Far
+
+![coolermaster masterplus revamp][7]
+
+**CoolerMaster revealed their plans to release a new MasterPlus open-source version** in the recent [CES 2023][8] event. Kudos to **Albert** from [Boring Text Reviews][9] for bringing this to our attention.
+
+**What to expect?:** A complete redesign of the MasterPlus software, with an API plug-in system that allows non-CoolerMaster coolers to integrate with it.
+
+They have clarified that exclusive CoolerMaster features won't work with other coolers. So, things such as detecting a leak in an AIO cooler or calculating the PSU's efficiency can't be tracked for third-party products.
+
+Instead, the application will only support reading basic performance info such as temperature and fan speed with the ability to configure ARGB devices.
+
+If you ask me, **this is better than nothing.** And, if you happen to use CoolerMaster components for your system, it is an exciting news for you!
+
+CoolerMaster also showcased a potential application of the API system by letting it hook into a photo application and using it to control a secondary display integrated into a computer case's side.
+
+Furthermore, they also introduced full cloud integration for their software. But sadly, this will not be made open-source.
+
+**When to expect?:**
+
+We do not have a concrete release date for the open sourcing of MasterPlus.
+
+But, if I were to guess, sometime in 2023 would be the best bet.
+
+💬 _Even if the tool is not confirmed to work for Linux users, on open-source tool is a good start, isn't it? What do you think?_
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/coolermaster-open-source-software/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/coolermaster-masterplus-goes-opensource.png
+[2]: https://github.com/libratbag/piper
+[3]: https://openrgb.org
+[4]: https://github.com/pwr-Solaar/Solaar
+[5]: https://www.coolermaster.com
+[6]: https://masterplus.coolermaster.com
+[7]: https://news.itsfoss.com/content/images/2023/01/CoolerMaster_MasterPlus_Revamp-1.png
+[8]: https://www.ces.tech
+[9]: https://boringtextreviews.com/exclusive-say-goodbye-to-bloated-closed-source-software-coolermaster-to-release-new-open-source-version-of-its-software-with-api-integration-and-it-can-work-with-other-coolers-too
From e4a926172e070a240f4fd610310e668f9a5c4924 Mon Sep 17 00:00:00 2001
From: Drwhooooo <90264412+Drwhooooo@users.noreply.github.com>
Date: Tue, 10 Jan 2023 21:06:22 +0800
Subject: [PATCH 232/266] apply for traslation request, ID: Drwhooooo
already add my id into the blank ( the translator line)
---
...here, a few there, pretty soon you-re talking real memory.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md b/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md
index dfdd3ed0d0..feea6a91df 100644
--- a/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md
+++ b/sources/tech/20210105 A few bytes here, a few there, pretty soon you-re talking real memory.md
@@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
-[#]: translator: ( )
+[#]: translator: (Drwhooooo)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
From 166858b3feffbe9e457b539ba6c08034022ea1ab Mon Sep 17 00:00:00 2001
From: geekpi
Date: Wed, 11 Jan 2023 08:29:21 +0800
Subject: [PATCH 233/266] translated
---
...earn w Command in Linux & BSD with Examples.md | 115 ------------------
...earn w Command in Linux & BSD with Examples.md | 112 +++++++++++++++++
2 files changed, 112 insertions(+), 115 deletions(-)
delete mode 100644 sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
create mode 100644 translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
diff --git a/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
deleted file mode 100644
index 23ae40eb72..0000000000
--- a/sources/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
+++ /dev/null
@@ -1,115 +0,0 @@
-[#]: subject: "Learn w Command in Linux & BSD with Examples"
-[#]: via: "https://www.debugpoint.com/w-command-linux-examples/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Learn w Command in Linux & BSD with Examples
-======
-
-**Here’s a beginner’s guide on understanding the w command in Linux & BSD with several examples.**
-
-![][1]
-
-_This article is part of the [Linux command][2] learning series._
-
-### w command
-
-The `w` command is a utility in Linux that displays information about the users currently logged into the system and their processes. It shows who is logged on and what activities they are doing. That means it can show what processes they are running in their system.
-
-### Syntax
-
-Here is the basic syntax of the `w` command:
-
-```
-w [options] [username]
-```
-
-The `w` command takes an optional list of options, followed by an optional username. If a username is specified, `w` will only show information about processes owned by that user.
-
-### Examples of the w command and its usage
-
-Here are some examples of using the `w` command.
-
-When you run it with only w, it shows the following output.
-
-```
-$ w
- 21:45:07 up 1 day, 12:48, 1 user, load average: 1.05, 0.85, 0.56
-USER TTY LOGIN@ IDLE JCPU PCPU WHAT
-debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binary
-```
-
-![a basic output of w command in Linux][3]
-
-Explanation: The USER column gives you the username, followed by the terminal number, login date-time, IDLE time, CPU usage, and the process being executed by the user.
-
-- `USER` – Logged on user name in your Linux or BSD system.
-- `TTY` – Terminal identifier number for the current session.
-- `FROM` – Hostname or IP address of the user.
-- `LOGIN@` – User logged in time. It sometimes shows dates based on your system settings.
-- `IDLE` – Idle time elapsed since the user interacted with the terminal.
-- `JCPU` – CPU time used by all the user processes for that session.
-- `PCPU` – Time used by the process for the user, which is mentioned in the WHAT field.
-- `WHAT` – Current process with arguments.
-
-Here’s another example of the w command with two users logged in a virtual machine environment. As you can see, two user names are shown with separate processes with process parameters currently running.
-
-![w command output for a demo multi-user environment][4]
-
-Let’s take a look at some options for this command.
-
-To show stop showing header, use the`-h` option. It’s identical to the `--no-header` switch.
-
-```
-$ w -h
-```
-
-The -f option toggles the visibility of FROM field in your output.
-
-```
-$ w -f
-```
-
-Use the `-s` option to print a short version of the output excluding JCPU, PCPU and LOGIN@ information.
-
-```
-$ w -s
-```
-
-To show a list of all processes owned by a specific user (for example, `debugpoint`):
-
-```
-$ w debugpoint
-```
-
-### Closing Notes
-
-I hope this article helps you to understand w command and its basics. You can also read the [w man pages][5] to learn more. Let me know if you have any questions.
-
-**This article is part of the [Linux command][2] learning series**.
-
-[_Using Mastodon? Follow us at floss.social/@debugpoint_][6]
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/w-command-linux-examples/
-
-作者:[Arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.debugpoint.com/author/admin1/
-[b]: https://github.com/lkxed
-[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/whead.jpg
-[2]: https://www.debugpoint.com/category/linux-commands
-[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/a-basic-outout-of-w-command-in-Linux.jpg
-[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/w-command-output-for-a-demo-multi-user-environment.jpg
-[5]: https://linux.die.net/man/1/w
-[6]: https://floss.social/@debugpoint
diff --git a/translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
new file mode 100644
index 0000000000..598dbbcf7b
--- /dev/null
+++ b/translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
@@ -0,0 +1,112 @@
+[#]: subject: "Learn w Command in Linux & BSD with Examples"
+[#]: via: "https://www.debugpoint.com/w-command-linux-examples/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+带示例学习 Linux 和 BSD 中的 w 命令
+======
+
+**下面是一份关于理解 Linux 和 BSD 中的 w 命令的初学者指南,并附有几个例子。**
+
+![][1]
+
+_这篇文章是 [Linux 命令][2]学习系列的一部分。_
+
+### w 命令
+
+`w` 命令是 Linux 中的一个工具,它显示当前登录到系统中的用户及其进程的信息。它显示谁已登录,以及他们正在做什么活动。这意味着它可以显示他们在系统中运行什么进程。
+
+### 语法
+
+下面是 `w` 命令的基本语法:
+
+```
+w [options] [username]
+```
+
+`w` 命令接受一个可选的选项列表,然后是一个可选的用户名。如果指定了用户名,`w` 将只显示该用户拥有的进程信息。
+
+### w 命令的例子及其用法
+
+下面是一些使用 `w` 命令的例子。
+
+当你只用 w 运行它时,它显示以下输出。
+
+```
+$ w
+ 21:45:07 up 1 day, 12:48, 1 user, load average: 1.05, 0.85, 0.56
+USER TTY LOGIN@ IDLE JCPU PCPU WHAT
+debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binary
+```
+
+![Linux 中 w 命令的基本输出][3]
+
+解释:USER 列给出了用户名,然后是终端号、登录日期时间、IDLE 时间、CPU 使用率,以及用户正在执行的进程。
+
+- `USER` - 在你的 Linux 或 BSD 系统中登录的用户名称。
+- `TTY` - 当前会话的终端标识符号。
+- `FROM` - 用户的主机名或 IP 地址。
+- `LOGIN@` - 用户登录的时间。它有时会根据你的系统设置显示日期。
+- `IDLE` - 用户与终端交互后的空闲时间。
+- `JCPU` - 该会话的所有用户进程使用的 CPU 时间。
+- `PCPU` - 该用户进程使用的时间,在 WHAT 字段中提到。
+- `WHAT` - 当前带参数的进程。
+
+下面是 w 命令的另一个例子,有两个用户在虚拟机环境中登录。正如你所看到的,显示了两个用户名与当前运行的带有进程参数的独立进程。
+
+![演示多用户环境的 w 命令输出][4]
+
+让我们看一下这个命令的一些选项。
+
+要停止显示标题,使用 `-h` 选项。它与 `--no-header` 开关相同。
+
+```
+$ w -h
+```
+
+-f 选项可以在输出中切换 FROM 字段的可见性。
+
+```
+$ w -f
+```
+
+使用 `-s` 选项打印一个简短的输出,不包括 JCPU、PCPU 和 LOGIN@ 信息。
+
+```
+$ w -s
+```
+
+要显示一个特定用户(例如,`debugpoint`)拥有的所有进程的列表:
+
+```
+$ w debugpoint
+```
+
+### 结束语
+
+我希望这篇文章能帮助你了解 w 命令及其基本原理。你也可以阅读 [w 手册页][5]来了解更多。如果你有任何问题,请告诉我。
+
+**本文是 [Linux 命令][2]学习系列的一部分**。
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/w-command-linux-examples/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/whead.jpg
+[2]: https://www.debugpoint.com/category/linux-commands
+[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/a-basic-outout-of-w-command-in-Linux.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/w-command-output-for-a-demo-multi-user-environment.jpg
+[5]: https://linux.die.net/man/1/w
From 2a752454dec7f24c2df7e42c757939508802c996 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Wed, 11 Jan 2023 08:34:03 +0800
Subject: [PATCH 234/266] translating
---
...️ Learn the Ada programming language by writing a simple game.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
index bbfa8c28fc..e721a78485 100644
--- a/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
+++ b/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/23/1/learn-ada-simple-game"
[#]: author: "Moshe Zadka https://opensource.com/users/moshez"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 8e0c7207ac29ca6e416c6b71900f0f40c2e60d30 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 11 Jan 2023 10:54:52 +0800
Subject: [PATCH 235/266] ALL
@wxy
https://linux.cn/article-15433-1.html
---
...er's MasterPlus Software to Go Open Source!.md | 78 ++++++++++++++++++
...er's MasterPlus Software to Go Open Source!.md | 80 -------------------
2 files changed, 78 insertions(+), 80 deletions(-)
create mode 100644 published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md
delete mode 100644 sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md
diff --git a/published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md b/published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md
new file mode 100644
index 0000000000..000cffc3b4
--- /dev/null
+++ b/published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md
@@ -0,0 +1,78 @@
+[#]: subject: "Wow! CoolerMaster's MasterPlus Software to Go Open Source!"
+[#]: via: "https://news.itsfoss.com/coolermaster-open-source-software/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15433-1.html"
+
+酷冷至尊(CoolerMaster)的 MasterPlus 软件即将开源
+======
+
+> MasterPlus 将被彻底改造并推出开源版本?听起来不错!
+
+![][1]
+
+大多数游戏/外设软件套装要么是专有的,要么是没有对 Linux 的官方支持。
+
+因此,我们必须不断寻找开源工具来配置我们的硬件以获得原生功能。
+
+像 [Piper][2]、[OpenRGB][3]、[Solaar][4] 等在这些情况下都很有用。
+
+但是,有时候,即使是这些也是不够的。
+
+幸运的是,[酷冷至尊(CoolerMaster)][5] 已经决定发布其 [MasterPlus][6] 软件的开源版本,旨在为其散热器和第三方的散热器提供服务。
+
+**虽然这并不能保证它可以用在 Linux 系统上,但我们绝对可以期待它。**
+
+此举也应该鼓励雷蛇和罗技这样公司考虑制作精简过的开源工具。
+
+让我们看看酷冷至尊打算怎么做。
+
+### MasterPlus 开源版本:我们目前所知的情况
+
+![酷冷至尊 Masterplus 改版][7]
+
+**酷冷至尊在最近的 [CES 2023][8] 活动中透露了他们计划发布新的 MasterPlus 开源版本**。感谢来自 [Boring Text Reviews][9] 的 Albert 让我们注意到了这一点。
+
+**预期会有什么?** 对 MasterPlus 软件进行了全面的重新设计,有一个 API 插件系统,允许非酷冷至尊散热器与之整合。
+
+他们已经澄清,酷冷至尊的独有功能不能配合其他散热器一起工作。因此,诸如检测 AIO 散热器的泄漏或计算 PSU 的效率等,都不能对第三方产品进行跟踪。
+
+相反,该应用程序将只支持读取基本的性能信息,如温度和风扇速度,并能够配置 ARGB 设备。
+
+如果你问我,**这总比没有好。** 而且,如果你的系统碰巧使用了酷冷至尊的组件,这对你来说是一个令人兴奋的消息!
+
+酷冷至尊还展示了 API 系统的潜在应用,让它与一个照片应用程序挂钩,用它来控制集成在电脑机箱侧面的辅助显示器。
+
+此外,他们还介绍了其软件的全面云整合。但遗憾的是,这部分不会开源。
+
+**什么时候?** 我们还没有 MasterPlus 开源的具体发布日期。
+
+但是,如果让我猜,2023 年的某个时候是最好的选择。
+
+💬 _即使该工具没有被确认可以在 Linux 上工作,对开源工具来说也是一个好的开始,不是吗?你怎么看?_
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/coolermaster-open-source-software/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/coolermaster-masterplus-goes-opensource.png
+[2]: https://github.com/libratbag/piper
+[3]: https://openrgb.org
+[4]: https://github.com/pwr-Solaar/Solaar
+[5]: https://www.coolermaster.com
+[6]: https://masterplus.coolermaster.com
+[7]: https://news.itsfoss.com/content/images/2023/01/CoolerMaster_MasterPlus_Revamp-1.png
+[8]: https://www.ces.tech
+[9]: https://boringtextreviews.com/exclusive-say-goodbye-to-bloated-closed-source-software-coolermaster-to-release-new-open-source-version-of-its-software-with-api-integration-and-it-can-work-with-other-coolers-too
diff --git a/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md b/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md
deleted file mode 100644
index ca57c55a4f..0000000000
--- a/sources/news/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md
+++ /dev/null
@@ -1,80 +0,0 @@
-[#]: subject: "Wow! CoolerMaster's MasterPlus Software to Go Open Source!"
-[#]: via: "https://news.itsfoss.com/coolermaster-open-source-software/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Wow! CoolerMaster's MasterPlus Software to Go Open Source!
-======
-
-MasterPlus to get a complete overhaul and an open-source version? Sounds good!
-
-![Wow! CoolerMaster's MasterPlus Software to Go Open Source!][1]
-
-Most gaming/peripheral software suits are either proprietary or not officially available for Linux.
-
-As a result, we must constantly look for open-source tools to configure our hardware to get native functionality.
-
-The likes of [Piper][2], [OpenRGB][3], [Solaar][4], etc. come in handy in these situations.
-
-But, sometimes, even these are not enough.
-
-Luckily, [CoolerMaster][5] has decided to release an open-source version of its [MasterPlus][6] software that aims to work with its coolers and non-CoolerMaster coolers.
-
-**While this does not guarantee its availability for Linux systems, we can definitely hope for it.**
-
-This move should also encourage other companies like Razer and Logitech to consider making open-source tools that do away with bloat found in them.
-
-Let's see what CoolerMaster plans to do.
-
-### MasterPlus Open-Source Version: What We Know So Far
-
-![coolermaster masterplus revamp][7]
-
-**CoolerMaster revealed their plans to release a new MasterPlus open-source version** in the recent [CES 2023][8] event. Kudos to **Albert** from [Boring Text Reviews][9] for bringing this to our attention.
-
-**What to expect?:** A complete redesign of the MasterPlus software, with an API plug-in system that allows non-CoolerMaster coolers to integrate with it.
-
-They have clarified that exclusive CoolerMaster features won't work with other coolers. So, things such as detecting a leak in an AIO cooler or calculating the PSU's efficiency can't be tracked for third-party products.
-
-Instead, the application will only support reading basic performance info such as temperature and fan speed with the ability to configure ARGB devices.
-
-If you ask me, **this is better than nothing.** And, if you happen to use CoolerMaster components for your system, it is an exciting news for you!
-
-CoolerMaster also showcased a potential application of the API system by letting it hook into a photo application and using it to control a secondary display integrated into a computer case's side.
-
-Furthermore, they also introduced full cloud integration for their software. But sadly, this will not be made open-source.
-
-**When to expect?:**
-
-We do not have a concrete release date for the open sourcing of MasterPlus.
-
-But, if I were to guess, sometime in 2023 would be the best bet.
-
-💬 _Even if the tool is not confirmed to work for Linux users, on open-source tool is a good start, isn't it? What do you think?_
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/coolermaster-open-source-software/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/coolermaster-masterplus-goes-opensource.png
-[2]: https://github.com/libratbag/piper
-[3]: https://openrgb.org
-[4]: https://github.com/pwr-Solaar/Solaar
-[5]: https://www.coolermaster.com
-[6]: https://masterplus.coolermaster.com
-[7]: https://news.itsfoss.com/content/images/2023/01/CoolerMaster_MasterPlus_Revamp-1.png
-[8]: https://www.ces.tech
-[9]: https://boringtextreviews.com/exclusive-say-goodbye-to-bloated-closed-source-software-coolermaster-to-release-new-open-source-version-of-its-software-with-api-integration-and-it-can-work-with-other-coolers-too
From 328b0ddcc3426dda3777d79dbf26e9f6be8d385e Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 11 Jan 2023 11:37:46 +0800
Subject: [PATCH 236/266] ATR
@wxy
---
...0110.0 ⭐️⭐️ A guide to strings in MySQL.md | 228 -----------------
...0110.0 ⭐️⭐️ A guide to strings in MySQL.md | 230 ++++++++++++++++++
2 files changed, 230 insertions(+), 228 deletions(-)
delete mode 100644 sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
create mode 100644 translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
diff --git a/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
deleted file mode 100644
index a0047585ee..0000000000
--- a/sources/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
+++ /dev/null
@@ -1,228 +0,0 @@
-[#]: subject: "A guide to strings in MySQL"
-[#]: via: "https://opensource.com/article/23/1/strings-mysql"
-[#]: author: "Hunter Coleman https://opensource.com/users/hunterc"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-A guide to strings in MySQL
-======
-
-Strings are one of the most common data types you will use in MySQL. Many users insert and read strings in their databases without thinking too much about them. This article aims to give you a bit of a deep dive into how MySQL stores and displays your string variables so that you can have better control over your data.
-
-You can break strings into two categories: binary and nonbinary. You probably think about nonbinary strings most of the time. Nonbinary strings have character sets and collations. Binary strings, on the other hand, store things such as MP3 files or images. Even if you store a word in a binary string, such as **song**, it is not stored in the same way as in a nonbinary string.
-
-I will focus on nonbinary strings. All nonbinary strings in MySQL are associated with a character set and a collation. A string's character set controls what characters can be stored in the string, and its collation controls how the strings are ordered when you display them.
-
-### Character sets
-
-To view the character sets on your system, run the following command:
-
-```
-SHOW CHARACTER SET;
-```
-
-This command will output four columns of data, including the character set:
-
-- Name
-- Brief description
-- Default collation
-- Maximum size of each character in the character set
-
-MySQL used to default to the **latin1** character set, but since version 8.0, the default has been **utf8mb4**. The default collation is now **utf8mb4_0900_ai_ci**. The **ai** indicates that this collation is accent insensitive (**á = a**), and the **ci** specifies that it is case insensitive (**a = A**).
-
-Different character sets store their characters in various-sized chunks of memory. For example, as you can see from the above command, characters stored in **utf8mb4** are stored in memory from one to four bytes in size. If you want to see if a string has multibyte characters, you can use the **CHAR_LENGTH()** and **LENGTH()** functions. **CHAR_LENGTH()** displays how many characters a string contains, whereas **LENGTH()** shows how many bytes a string has, which may or may not be the same as a string's length in characters, depending on the character set. Here is an example:
-
-```
-SET @a = CONVERT('data' USING latin1);
-
-SELECT LENGTH(@a), CHAR_LENGTH(@a);
-
-+------------+-----------------+
-| LENGTH(@a) | CHAR_LENGTH(@a) |
-+------------+-----------------+
-| 4 | 4 |
-+------------+-----------------+
-```
-
-This example shows that the **latin1** character set stores characters in single-byte units. Other character sets, such as **utf16**, allow multibyte characters:
-
-```
-SET @b = CONVERT('data' USING utf16);
-
-SELECT LENGTH(@b), CHAR_LENGTH(@b);
-
-+------------+------------------+
-| LENGTH(@b) | CHAR_LENGTH(@b) |
-+------------+------------------+
-| 8 | 4 |
-+------------+------------------+
-```
-
-### Collation
-
-A string's collation will determine how the values are displayed when you run a SQL statement with an **ORDER BY** clause. Your choice of collations is determined by what character set you select. When you ran the command `SHOW CHARACTER SET` above, you saw the default collations for each character set. You can easily see all the collations available for a particular character set. For example, if you want to see which collations are allowed by the **utf8mb4** character set, run:
-
-```
-SHOW COLLATION LIKE 'utf8mb4%';
-```
-
-A collation can be case-insensitive, case-sensitive, or binary. Let's build a simple table, insert a few values into it, and then view the data using different collations to see how the output differs:
-
-```
-CREATE TABLE sample (s CHAR(5));
-
-INSERT INTO sample (s) VALUES
- ('AAAAA'), ('ccccc'), ('bbbbb'), ('BBBBB'), ('aaaaa'), ('CCCCC');
-
-SELECT * FROM sample;
-
-+-----------+
-| s |
-+-----------+
-| AAAAA |
-| ccccc |
-| bbbbb |
-| BBBBB |
-| aaaaa |
-| CCCCC |
-+-----------+
-```
-
-With case-insensitive collations, your data is returned in alphabetical order, but there is no guarantee that capitalized words will come before lowercase words, as seen below:
-
-```
-SELECT * FROM sample ORDER BY s COLLATE utf8mb4_turkish_ci;
-
-+-----------+
-| s |
-+-----------+
-| AAAAA |
-| aaaaa |
-| bbbbb |
-| BBBBB |
-| ccccc |
-| CCCCC |
-+-----------+
-```
-
-On the other hand, when MySQL runs a case-sensitive search, lowercase will come before uppercase for each letter:
-
-```
-SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_as_cs;
-
-+-----------+
-| s |
-+-----------+
-| aaaaa |
-| AAAAA |
-| bbbbb |
-| BBBBB |
-| ccccc |
-| CCCCC |
-+-----------+
-```
-
-And binary collations will return all capitalized words before lowercase words:
-
-```
-SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_bin;
-
-+-----------+
-| s |
-+-----------+
-| AAAAA |
-| ccccc |
-| bbbbb |
-| BBBBB |
-| aaaaa |
-| CCCCC |
-+-----------+
-```
-
-If you want to know which character set and collation a string uses, you can use the aptly named **charset** and **collation** functions. A server running MySQL version 8.0 or higher will default to using the **utf8mb4** character set and **utf8mb4_0900_ai-ci** collation:
-
-```
-SELECT charset('data');
-
-+-------------------+
-| charset('data') |
-+-------------------+
-| utf8mb4 |
-+-------------------+
-
- SELECT collation('data');
-
-+--------------------+
-| collation('data') |
-+--------------------+
-| utf8mb4_0900_ai_ci |
-+--------------------+
-```
-
-You can use the `SET NAMES` command to change the character set or collation used.
-
-To change from the **utf8mb4** character set to **utf16**, run this command:
-
-```
-SET NAMES 'utf16';
-```
-
-If you would also like to choose a collation other than the default, you can add a **COLLATE** clause to the `SET NAMES` command.
-
-For example, say your database stores words in the Spanish language. The default collation for MySQL (**utf8mb4_0900_ai_ci**) sees ch and ll as two different characters and will sort them as such. But in Spanish, ch and ll are individual letters, so if you want them sorted in the proper order (following c and l, respectively), you need to use a different collation. One option is to use the **utf8mb4_spanish2_ci** collation.
-
-```
-SET NAMES 'utf8mb4' COLLATE 'utf8mb4_spanish2-ci';
-```
-
-### Storing strings
-
-MySQL allows you to choose between several data types for your string values. (Even more so than other popular databases such as PostgreSQL and MongoDB.)
-
-Here is a list of MySQL's binary string data types, their nonbinary equivalents, and their maximum length:
-
-- **binary:** char (255)
-- **varbinary:** varchar (65,535)
-- **tinyblob:** tinytext (255)
-- **blob:** text (65,535)
-- **mediumblob:** mediumtext (16,777,215)
-- **longblob:** longtext (4,294,967,295)
-
-One important thing to remember is that unlike the varbinary, varchar, text, and blob types, which are stored in variable length fields (that is, using only as much space as needed), MySQL stores binary and char types in fixed length fields. So a value such as **char(20)** or **binary(20)** will always take up 20 bytes, even if you store less than 20 characters in them. MySQL pads the values with the **ASCII NUL** value (**0x00**) for binary types and spaces for char types.
-
-Another thing to consider when choosing data types is whether you want spaces after the string to be preserved or stripped. When displaying data, MySQL strips whitespace from data stored with the char data type, but not varchar.
-
-```
-CREATE TABLE sample2 (s1 CHAR(10), s2 VARCHAR(10));
-
-INSERT INTO sample2 (s1, s2) VALUES ('cat ', 'cat ');
-
-SELECT s1, s2, CHAR_LENGTH(s1), CHAR_LENGTH(s2) FROM sample2;
-
-+---------+---------+-----------------------------------+
-| s1 | s2 | CHAR_LENGTH(s1) | CHAR_LENGTH(s2) |
-+---------+---------+-----------------------------------+
-| cat | cat | 3 | 10 |
-+---------+---------+-----------------------------------+
-```
-
-### Wrap up
-
-Strings are one of the most common data types used in databases, and MySQL remains one of the most popular database systems in use today. I hope that you have learned something new from this article and will be able to use your new knowledge to improve your database skills.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/23/1/strings-mysql
-
-作者:[Hunter Coleman][a]
-选题:[lkxed][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/hunterc
-[b]: https://github.com/lkxed
diff --git a/translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
new file mode 100644
index 0000000000..56af862ef8
--- /dev/null
+++ b/translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
@@ -0,0 +1,230 @@
+[#]: subject: "A guide to strings in MySQL"
+[#]: via: "https://opensource.com/article/23/1/strings-mysql"
+[#]: author: "Hunter Coleman https://opensource.com/users/hunterc"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: " "
+[#]: url: " "
+
+MySQL 字符串指南
+======
+
+> 了解 MySQL 如何存储和显示你的字符串变量,以便你能更好地控制你的数据。
+
+字符串是你在 MySQL 中使用的最常见的数据类型之一。许多用户在他们的数据库中插入和读取字符串,而没有认真地了解过它们。本文旨在让你深入了解 MySQL 如何存储和显示你的字符串变量,以便你能更好地控制你的数据。
+
+你可以把字符串分成两类:二进制和非二进制。你可能在大多数时候想到的是非二进制字符串。非二进制字符串有字符集和排序的不同。另一方面,二进制字符串存储诸如 MP3 文件或图像等东西。即使你在二进制字符串中存储了一个词,比如“歌曲”,它的存储方式也与非二进制字符串不同。
+
+我将重点讨论非二进制字符串。MySQL 中的所有非二进制字符串都与字符集和排序相关。字符串的字符集控制哪些字符可以存储在字符串中,而它的排序方式控制当你显示字符串时如何排序。
+
+### 字符集
+
+要查看你系统中的字符集,请运行以下命令:
+
+```
+SHOW CHARACTER SET;
+```
+
+这个命令将输出四列数据,包括字符集:
+
+- 名称
+- 简要描述
+- 默认的排序方式
+- 字符集中每个字符的最大尺寸
+
+MySQL 过去默认为 `latin1` 字符集,但自 8.0 版以来,默认为 `utf8mb4`。现在的默认排序方式是 `utf8mb4_0900_ai_ci`。`ai` 表示该排序对音调不敏感( `á` = `a`),而 `ci` 则指定它对大小写不敏感(`a` = `A`)。
+
+不同的字符集将其字符存储在内存中不同大小的块中。例如,从上面的命令可以看出,存储在 `utf8mb4` 的字符被存储在 1 到 4 个字节大小的内存中。如果你想看看一个字符串是否包含多字节的字符,你可以使用 `CHAR_LENGTH()` 和 `LENGTH()` 函数。`CHAR_LENGTH()` 显示一个字符串包含多少个字符,而 `LENGTH()` 显示一个字符串有多少个字节,根据字符集的不同,它可能与一个字符串的字符长度相同,也可能不相同。下面是一个例子:
+
+```
+SET @a = CONVERT('data' USING latin1);
+
+SELECT LENGTH(@a), CHAR_LENGTH(@a);
+
++------------+-----------------+
+| LENGTH(@a) | CHAR_LENGTH(@a) |
++------------+-----------------+
+| 4 | 4 |
++------------+-----------------+
+```
+
+这个例子表明,`latin1` 字符集以单字节为单位存储字符。其他字符集,如 `utf16`,允许多字节的字符:
+
+```
+SET @b = CONVERT('data' USING utf16);
+
+SELECT LENGTH(@b), CHAR_LENGTH(@b);
+
++------------+------------------+
+| LENGTH(@b) | CHAR_LENGTH(@b) |
++------------+------------------+
+| 8 | 4 |
++------------+------------------+
+```
+
+### 排序
+
+当你运行带有 `ORDER BY` 子句的 SQL 语句时,字符串排序方式将决定值的显示方式。你对排序方式的选择是由你选择的字符集决定的。当你运行上面的 `SHOW CHARACTER SET` 命令时,你看到了每个字符集的默认排序方式。你可以很容易地看到某个特定字符集的所有排序方式。例如,如果你想查看 `utf8mb4` 字符集允许哪些排序,请运行:
+
+```
+SHOW COLLATION LIKE 'utf8mb4%';
+```
+
+排序方式可以是不区分大小写的,也可以是区分大小写的,或者是二进制的。让我们建立一个简单的表,向其中插入一些值,然后用不同的排序方式查看数据,看看输出结果有什么不同:
+
+```
+CREATE TABLE sample (s CHAR(5));
+
+INSERT INTO sample (s) VALUES
+ ('AAAAA'), ('ccccc'), ('bbbbb'), ('BBBBB'), ('aaaaa'), ('CCCCC');
+
+SELECT * FROM sample;
+
++-----------+
+| s |
++-----------+
+| AAAAA |
+| ccccc |
+| bbbbb |
+| BBBBB |
+| aaaaa |
+| CCCCC |
++-----------+
+```
+
+在不区分大小写的情况下,你的数据会按字母顺序返回,但不能保证大写的单词会排在小写的单词之前,如下图所示:
+
+```
+SELECT * FROM sample ORDER BY s COLLATE utf8mb4_turkish_ci;
+
++-----------+
+| s |
++-----------+
+| AAAAA |
+| aaaaa |
+| bbbbb |
+| BBBBB |
+| ccccc |
+| CCCCC |
++-----------+
+```
+
+另一方面,当 MySQL 运行大小写敏感的搜索时,每个字母的小写将排在大写之前:
+
+```
+SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_as_cs;
+
++-----------+
+| s |
++-----------+
+| aaaaa |
+| AAAAA |
+| bbbbb |
+| BBBBB |
+| ccccc |
+| CCCCC |
++-----------+
+```
+
+而按二进制排序方式将返回所有大写的值,然后再返回小写的值:
+
+```
+SELECT * FROM sample ORDER BY s COLLATE utf8mb4_0900_bin;
+
++-----------+
+| s |
++-----------+
+| AAAAA |
+| ccccc |
+| bbbbb |
+| BBBBB |
+| aaaaa |
+| CCCCC |
++-----------+
+```
+
+如果你想知道一个字符串使用哪种字符集和排序,你可以使用被恰当命名的 `charset` 和 `collation` 函数。运行 MySQL 8.0 或更高版本的服务器将默认使用 `utf8mb4` 字符集和 `utf8mb4_0900_ai_ci` 排序:
+
+```
+SELECT charset('data');
+
++-------------------+
+| charset('data') |
++-------------------+
+| utf8mb4 |
++-------------------+
+
+SELECT collation('data');
+
++--------------------+
+| collation('data') |
++--------------------+
+| utf8mb4_0900_ai_ci |
++--------------------+
+```
+
+你可以使用 `SET NAMES` 命令来改变所使用的字符集或排序方式。
+
+要从 `utf8mb4` 字符集改为 `utf16`,运行这个命令:
+
+```
+SET NAMES 'utf16';
+```
+
+如果你想选择默认以外的排序方式,你可以在 `SET NAMES` 命令中添加一个 `COLLATE` 子句。
+
+例如,假设你的数据库存储西班牙语的单词。MySQL 的默认排序(`utf8mb4_0900_ai_ci`)将 `ch` 和 `ll` 视为两个不同的字符,并将它们排序。但在西班牙语中,`ch` 和 `ll` 是单独的字母,所以如果你想让它们按正确的顺序排序(分别排在 `c` 和 `l` 之后),你需要使用不同的排序。一个选择是使用 `utf8mb4_spanish2_ci` 排序方式:
+
+```
+SET NAMES 'utf8mb4' COLLATE 'utf8mb4_spanish2_ci';
+```
+
+### 储存字符串
+
+MySQL 允许你为你的字符串值选择不同的数据类型。(甚至比其他流行的数据库,如 PostgreSQL 和 MongoDB 更多。)
+
+下面是 MySQL 的二进制字符串数据类型的列表、它们的非二进制对应物,以及它们的最大长度:
+
+- `binary`:`char`(255)
+- `varbinary`:`varchar`(65,535)
+- `tinyblob`:`tinytext`(255)
+- `blob`:`text`(65,535)
+- `mediumblob`:`mediumtext`(16,777,215)
+- `longblob`:`longtext`(4,294,967,295)
+
+要记住的一件重要事情是,与被存储在可变长度的字段中的 `varbinary`、`varchar`、`text` 和 `blob` 类型不同(也就是说,只使用需要的空间),MySQL 将二进制(`binary`)和字符(`char`)类型存储在固定长度的字段。因此,像 `char(20)` 或 `binary(20)` 这样的值将总是占用 20 个字节,即使你在其中存储了少于 20 个字符。对于二进制类型,MySQL用 ASCII NUL 值(`0x00`)填充这些值,对于 字符类型,用空格填充。
+
+在选择数据类型时要考虑的另一件事是,你是否希望在字符串后面的空格被保留或剥离。在显示数据时,MySQL 会从以字符数据类型存储的数据中剥离空格,但不会剥离 `varchar` 的空格。
+
+```
+CREATE TABLE sample2 (s1 CHAR(10), s2 VARCHAR(10));
+
+INSERT INTO sample2 (s1, s2) VALUES ('cat ', 'cat ');
+
+SELECT s1, s2, CHAR_LENGTH(s1), CHAR_LENGTH(s2) FROM sample2;
+
++---------+---------+-----------------------------------+
+| s1 | s2 | CHAR_LENGTH(s1) | CHAR_LENGTH(s2) |
++---------+---------+-----------------------------------+
+| cat | cat | 3 | 10 |
++---------+---------+-----------------------------------+
+```
+
+### 总结
+
+字符串是数据库中最常用的数据类型之一,而 MySQL 仍然是当今最流行的数据库系统之一。我希望你能从这篇文章中学到一些新的东西,并能用你的新知识来提高你的数据库技能。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/strings-mysql
+
+作者:[Hunter Coleman][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/hunterc
+[b]: https://github.com/lkxed
From 0d9ae8cb642c65e866708bfd5f6fffc47d3950b4 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Wed, 11 Jan 2023 16:15:13 +0800
Subject: [PATCH 237/266] P
@wxy
https://linux.cn/article-15434-1.html
---
.../20230110.0 ⭐️⭐️ A guide to strings in MySQL.md | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
rename {translated/tech => published}/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md (98%)
diff --git a/translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
similarity index 98%
rename from translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
rename to published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
index 56af862ef8..73372bd403 100644
--- a/translated/tech/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
+++ b/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md
@@ -4,12 +4,14 @@
[#]: collector: "lkxed"
[#]: translator: "wxy"
[#]: reviewer: "wxy"
-[#]: publisher: " "
-[#]: url: " "
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15434-1.html"
MySQL 字符串指南
======
+![][0]
+
> 了解 MySQL 如何存储和显示你的字符串变量,以便你能更好地控制你的数据。
字符串是你在 MySQL 中使用的最常见的数据类型之一。许多用户在他们的数据库中插入和读取字符串,而没有认真地了解过它们。本文旨在让你深入了解 MySQL 如何存储和显示你的字符串变量,以便你能更好地控制你的数据。
@@ -228,3 +230,4 @@ via: https://opensource.com/article/23/1/strings-mysql
[a]: https://opensource.com/users/hunterc
[b]: https://github.com/lkxed
+[0]: https://img.linux.net.cn/data/attachment/album/202301/11/161410lh9944zpgjgmgs8t.jpg
\ No newline at end of file
From 19fa79d2e9c6b330637ff38c990e6522e17c01c6 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Thu, 12 Jan 2023 08:53:15 +0800
Subject: [PATCH 238/266] translated
---
...reis Command in Linux and BSD with Examples.md | 152 ------------------
...reis Command in Linux and BSD with Examples.md | 149 +++++++++++++++++
2 files changed, 149 insertions(+), 152 deletions(-)
delete mode 100644 sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
create mode 100644 translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
diff --git a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
deleted file mode 100644
index 3028fc4ed6..0000000000
--- a/sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
+++ /dev/null
@@ -1,152 +0,0 @@
-[#]: subject: "Whereis Command in Linux and BSD with Examples"
-[#]: via: "https://www.debugpoint.com/whereis-command-linux/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Whereis Command in Linux and BSD with Examples
-======
-
-**Here’s a beginner’s guide on understanding whereis command in Linux & BSD with several examples.**
-
-![][1]
-
-_This article is part of the [Linux command][2] learning series._
-
-### whereis command
-
-The `whereis` command is a command line program that helps you to find out the path or location of any binary executable, source file or manual page.
-
-Before we show you how to use `whereis` command, let’s look at the syntax.
-
-### Syntax
-
-Here’s the syntax for whereis command:
-
-```
-whereis [OPTIONS] FILE_NAME
-```
-
-The argument of whereis command is the program name or file name you want to search. The argument is mandatory.
-
-By default, it searches for the program in the path defined in environment variables such as HOME, USER, SHELL, etc.
-
-Let’s take a look at some examples.
-
-### Examples of whereis command in Linux and BSD
-
-A simple example of whereis command is below where I am trying to search firefox. In the output below, you can see the list of paths containing firefox files or executables displayed.
-
-```
-$ whereis firefox
-
-firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz
-```
-
-![Simple example of whereis command in Linux][3]
-
-The command with option -l displays the list of paths where it searches. For example:
-
-```
-$ whereis -l
-
-bin: /usr/bin
-bin: /usr/sbin
-bin: /usr/lib
-bin: /usr/lib64
-bin: /etc
-bin: /usr/games
-bin: /usr/local/bin
-bin: /usr/local/sbin
-bin: /usr/local/etc
-bin: /usr/local/lib
-bin: /usr/local/games
-```
-
-If the whereis command doesn’t find anything, it only shows the argument’s name. For example, if I search nano in Linux where is it not installed, it outputs the following:
-
-```
-$ whereis nano
-```
-
-```
-nano:
-```
-
-You can always add multiple arguments if you want to search for more. For example below command searches for both bash and nano, and this is the output:
-
-```
-$ whereis bash nano
-
-bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
-nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
-```
-
-You can also search for specific file types, such as binaries, using -b option. The following command only tells you the binary paths of nano.
-
-```
-$ whereis -b nano
-
-nano: /usr/bin/nano /usr/share/nano
-```
-
-Similarly, the -s option searches for source files, and the -m option searches for manual pages.
-
-```
-$ whereis -m nano
-
-nano: /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
-```
-
-You can also combine the above options for a more extensive search. For example, the following command searches for nano and firefox binary, manual pages and for bash, only manual pages.
-
-```
-$ whereis -bm nano firefox -m bash
-
-nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
-firefox-m:
-bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
-```
-
-Here’s a summary of the options:
-
-| Option | Description |
-| :- | :- |
-| **-b** | Search only for binaries. |
-| **-m** | Search only for manual sections. |
-| **-s** | Search only for sources. |
-| **-u** | Search for unusual entries. A file is said to be unusual if it does not have one entry of each requested type. Thus ‘whereis -m -u *’ asks for those files in the current directory which have no documentation. |
-| **-B** | Change or otherwise limit the places where whereis searches for binaries. |
-| **-M** | Change or otherwise limit the places where whereis searches for manual sections. |
-| **-S** | Change or otherwise limit the places where whereis searches for sources. |
-| **-f** | Terminate the last directory list and signals the start of file names, and must be used when any of the -B, -M, or -S options are used. |
-
-### Closing Notes
-
-I hope this article helps you to understand whereis command and its basics. You can also read the[whereis man pages][4] to learn more. Let me know if you have any questions.
-
-**This article is part of the [Linux command][2] learning series**.
-
-[_Using Mastodon? Follow us at floss.social/@debugpoint_][5]
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/whereis-command-linux/
-
-作者:[Arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.debugpoint.com/author/admin1/
-[b]: https://github.com/lkxed
-[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/whereis-head.jpg
-[2]: https://www.debugpoint.com/category/linux-commands
-[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Simple-example-of-whereis-command-in-Linux.jpg
-[4]: https://linux.die.net/man/1/whereis
-[5]: https://floss.social/@debugpoint
diff --git a/translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
new file mode 100644
index 0000000000..f2f5e936d2
--- /dev/null
+++ b/translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
@@ -0,0 +1,149 @@
+[#]: subject: "Whereis Command in Linux and BSD with Examples"
+[#]: via: "https://www.debugpoint.com/whereis-command-linux/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Linux 和 BSD 中的 Whereis 命令及示例
+======
+
+**这是一份关于如何理解 Linux 和 BSD 中 whereis 命令的初学者指南,其中有几个例子。**
+
+![][1]
+
+_这篇文章是 [Linux 命令][2]学习系列的一部分。_
+
+### whereis 命令
+
+`whereis` 命令是一个命令行程序,可以帮助你找出任何二进制可执行文件、源文件或手册页的路径或位置。
+
+在告诉你如何使用 `whereis` 命令之前,让我们先看看其语法。
+
+### 语法
+
+以下是 whereis 命令的语法:
+
+```
+whereis [OPTIONS] FILE_NAME
+```
+
+whereis 命令的参数是你要搜索的程序名或文件名。该参数是强制性的。
+
+默认情况下,它在环境变量(如 HOME、USER、SHELL 等)中定义的路径中搜索程序。
+
+让我们看下一些例子。
+
+### Linux 和 BSD 中 whereis 命令的例子
+
+下面是 whereis 命令的一个简单例子,我试图搜索 firefox。在下面的输出中,你可以看到包含 firefox 文件或可执行文件的路径列表。
+
+```
+$ whereis firefox
+
+firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/firefox.1.gz
+```
+
+![Linux 中 whereis 命令的简单例子][3]
+
+带有选项 -l 的命令会显示其搜索的路径列表。比如:
+
+```
+$ whereis -l
+
+bin: /usr/bin
+bin: /usr/sbin
+bin: /usr/lib
+bin: /usr/lib64
+bin: /etc
+bin: /usr/games
+bin: /usr/local/bin
+bin: /usr/local/sbin
+bin: /usr/local/etc
+bin: /usr/local/lib
+bin: /usr/local/games
+```
+
+如果 whereis 命令没有找到任何东西,它只显示参数的名称。例如,如果我在 Linux 中搜索 nano,它没有安装,它的输出如下:
+
+```
+$ whereis nano
+```
+
+```
+nano:
+```
+
+如果你想搜索更多的参数,你可以随时添加多个参数。例如,下面的命令同时搜索 bash 和 nano,输出结果是这样的:
+
+```
+$ whereis bash nano
+
+bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
+nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
+```
+
+你也可以使用 -b 选项搜索特定的文件类型,比如二进制文件。下面的命令只告诉你 nano 的二进制路径。
+
+```
+$ whereis -b nano
+
+nano: /usr/bin/nano /usr/share/nano
+```
+
+同样,-s 选项可以搜索源文件,而 -m 选项可以搜索手册页。
+
+```
+$ whereis -m nano
+
+nano: /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
+```
+
+你也可以结合上面的选项来进行更广泛的搜索。例如,下面的命令可以搜索 nano 和 firefox 的二进制、手册页,而对于 bash,只搜索手册页。
+
+```
+$ whereis -bm nano firefox -m bash
+
+nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
+firefox-m:
+bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
+```
+
+下面是选项的摘要:
+
+| 选项 | 描述 |
+| :- | :- |
+| **-b** | 只搜索二进制文件。|
+| **-m** | 只搜索手册部分。|
+| **-s** | 只搜索源码。|
+| **-u** | 搜索不寻常的条目。如果一个文件没有所要求的每种类型的条目,就被称为不寻常。因此,“whereis -m -u *” 会查询当前目录中没有文档的那些文件。|
+| **-B** | 改变或限制 whereis 搜索二进制文件的地方。|
+| **-M** | 更改或限制 whereis 搜索手册的位置。|
+| **-S** | 更改或以其他方式限制 whereis 搜索源码的位置。|
+| **-f** | 终止最后一个目录列表并指示文件名的开始,并且必须在使用任何 -B、-M 或 -S 选项时使用。|
+
+### 结束语
+
+我希望这篇文章能够帮助你理解 whereis 命令及其基本原理。你也可以阅读 [whereis 手册页][4]来了解更多。如果你有任何问题,请告诉我。
+
+**本文是 [Linux 命令][2]学习系列的一部分**。
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/whereis-command-linux/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2023/01/whereis-head.jpg
+[2]: https://www.debugpoint.com/category/linux-commands
+[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Simple-example-of-whereis-command-in-Linux.jpg
+[4]: https://linux.die.net/man/1/whereis
\ No newline at end of file
From 9eec2a4d69fd5ef523c3bacb7e9a9211564dddcb Mon Sep 17 00:00:00 2001
From: geekpi
Date: Thu, 12 Jan 2023 09:00:11 +0800
Subject: [PATCH 239/266] translating
---
... lnav Advanced Log File Viewer for Linux Desktops and Servers.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md
index ab3e8307ac..d8db876fa6 100644
--- a/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md
+++ b/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md
@@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 3ec29fa04d4ed2759ab27a2b84e3fcea7791347d Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Thu, 12 Jan 2023 10:11:06 +0800
Subject: [PATCH 240/266] RP
@geekpi
https://linux.cn/article-15437-1.html
---
...earn w Command in Linux & BSD with Examples.md | 35 +++++++++----------
1 file changed, 17 insertions(+), 18 deletions(-)
rename {translated/tech => published}/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md (66%)
diff --git a/translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
similarity index 66%
rename from translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
rename to published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
index 598dbbcf7b..65d0c7dced 100644
--- a/translated/tech/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
+++ b/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md
@@ -3,18 +3,18 @@
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15437-1.html"
-带示例学习 Linux 和 BSD 中的 w 命令
+w 命令的解释与示例
======
-**下面是一份关于理解 Linux 和 BSD 中的 w 命令的初学者指南,并附有几个例子。**
+> 下面是一份关于理解 Linux 和 BSD 中的 w 命令的初学者指南,并附有几个例子。
-![][1]
+![][0]
-_这篇文章是 [Linux 命令][2]学习系列的一部分。_
+这篇文章是 [Linux 命令][2]学习系列的一部分。
### w 命令
@@ -34,18 +34,18 @@ w [options] [username]
下面是一些使用 `w` 命令的例子。
-当你只用 w 运行它时,它显示以下输出。
+当你只用 `w` 运行它时,它显示以下输出:
```
$ w
21:45:07 up 1 day, 12:48, 1 user, load average: 1.05, 0.85, 0.56
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
-debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binary
+debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binary
```
![Linux 中 w 命令的基本输出][3]
-解释:USER 列给出了用户名,然后是终端号、登录日期时间、IDLE 时间、CPU 使用率,以及用户正在执行的进程。
+解释:`USER` 列给出了用户名,然后是终端号、登录日期时间、空闲时间、CPU 使用率,以及用户正在执行的进程。
- `USER` - 在你的 Linux 或 BSD 系统中登录的用户名称。
- `TTY` - 当前会话的终端标识符号。
@@ -53,10 +53,10 @@ debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binar
- `LOGIN@` - 用户登录的时间。它有时会根据你的系统设置显示日期。
- `IDLE` - 用户与终端交互后的空闲时间。
- `JCPU` - 该会话的所有用户进程使用的 CPU 时间。
-- `PCPU` - 该用户进程使用的时间,在 WHAT 字段中提到。
+- `PCPU` - 该用户的进程(在 `WHAT` 字段中提到)使用的时间。
- `WHAT` - 当前带参数的进程。
-下面是 w 命令的另一个例子,有两个用户在虚拟机环境中登录。正如你所看到的,显示了两个用户名与当前运行的带有进程参数的独立进程。
+下面是 `w` 命令的另一个例子,有两个用户在虚拟机环境中登录。正如你所看到的,显示了两个用户名与当前运行的带有进程参数的独立进程。
![演示多用户环境的 w 命令输出][4]
@@ -68,13 +68,13 @@ debugpoi tty2 Thu08 36:48m 0.03s 0.03s /usr/libexec/gnome-session-binar
$ w -h
```
--f 选项可以在输出中切换 FROM 字段的可见性。
+`-f` 选项可以在输出中切换 `FROM` 字段的可见性。
```
$ w -f
```
-使用 `-s` 选项打印一个简短的输出,不包括 JCPU、PCPU 和 LOGIN@ 信息。
+使用 `-s` 选项打印一个简短的输出,不包括 `JCPU`、`PCPU` 和 `LOGIN@` 信息。
```
$ w -s
@@ -88,9 +88,7 @@ $ w debugpoint
### 结束语
-我希望这篇文章能帮助你了解 w 命令及其基本原理。你也可以阅读 [w 手册页][5]来了解更多。如果你有任何问题,请告诉我。
-
-**本文是 [Linux 命令][2]学习系列的一部分**。
+我希望这篇文章能帮助你了解 `w` 命令及其基本原理。你也可以阅读 [w 手册页][5] 来了解更多。如果你有任何问题,请告诉我。
--------------------------------------------------------------------------------
@@ -99,7 +97,7 @@ via: https://www.debugpoint.com/w-command-linux-examples/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -110,3 +108,4 @@ via: https://www.debugpoint.com/w-command-linux-examples/
[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/a-basic-outout-of-w-command-in-Linux.jpg
[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/w-command-output-for-a-demo-multi-user-environment.jpg
[5]: https://linux.die.net/man/1/w
+[0]: https://img.linux.net.cn/data/attachment/album/202301/12/100901f1rnn4zu2u12ligr.jpg
\ No newline at end of file
From e9ac59738f351558b2724b3e51b0ff479938e68a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 12 Jan 2023 18:18:13 +0800
Subject: [PATCH 241/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020230111.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Li?=
=?UTF-8?q?nux=20is=20All=20Set=20to=20Disable=20Microsoft's=20RNDIS=20Dri?=
=?UTF-8?q?vers.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...is All Set to Disable Microsoft's RNDIS Drivers.md | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md
diff --git a/sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md b/sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md
new file mode 100644
index 0000000000..da2e06cc21
--- /dev/null
+++ b/sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md
@@ -0,0 +1,77 @@
+[#]: subject: "Linux is All Set to Disable Microsoft's RNDIS Drivers"
+[#]: via: "https://news.itsfoss.com/linux-disable-microsoft-rndis/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Linux is All Set to Disable Microsoft's RNDIS Drivers
+======
+
+The Linux Kernel will no longer support RNDIS drivers. A good move? What does this mean for you? Find out here.
+
+![Linux is All Set to Disable Microsoft's RNDIS Drivers][1]
+
+Microsoft's RNDIS protocol, short for Remote Network Driver Interface Specification, is a proprietary USB protocol for virtual Ethernet functionality on computers.
+
+The most common use case of this would be using your phone's mobile network to connect to the internet on your computer via USB, also known as [Tethering][2].
+
+Even though it mainly works on Windows, it has been part of the Linux kernel for a while now.
+
+But that is set to change soon.
+
+### Say Goodbye to RNDIS Protocol?
+
+![][3]
+
+**What is happening?:** On Monday, [Greg Kroah-Hartman][4] created the [usb.git rndis-removal][5] branch, where he mentions disabling the implementation of all RNDIS protocol drivers on Linux.
+
+With the commit, he mentions:
+
+> The Microsoft RNDIS protocol is, as designed, insecure and vulnerable onany system that uses it with untrusted hosts or devices. Because theprotocol is impossible to make secure, just disable all rndis drivers toprevent anyone from using them again.Windows only needed this for XP and newer systems, Windows systems older than that can use the normal USB class protocols instead, which do not have these problems.Android has had this disabled for many years so there should not be anyreal systems that still need this.
+
+As initially reported by [Phoronix][6], once this protocol is marked 'BROKEN' in the Kconfig option, it will stay there for a while and ultimately be removed from the kernel.
+
+But **why?**
+
+The implementation of RNDIS is known to be a mess on platforms apart from Windows and poses quite a few security risks. In addition, RNDIS is not being used as widely as before, and the security risks it presents might be one of the main reasons for this decision.
+
+**Does this have an impact on current users? Should you be worried?**
+
+If we look at a [Reddit thread][7] discussing this upcoming change, we would see that many users remain curious **if this would break USB tethering for everyone.**
+
+Users seem confused about this move, considering many Android phones still use RNDIS instead of CDC NCM (a newer protocol) 😕 Not just users; a [Kernel Networking Developer at Google][8] also flagged this issue, but we do not see a response to that yet.
+
+**But not everyone uses mainline Linux Kernel? Should you stick to an LTS version of the kernel if you do not want to be impacted by this change?**
+
+Furthermore, users wanted more clarity on how this does not impact everyone.
+
+But, as of now, **Greg** may not have mentioned a lot of details to convince some of the concerned users.
+
+🤔 Of course, we aren't Linux Kernel maintainers. So, it is best to wait until this commit gets through, and I hope that the Linux Kernel maintainers shed more light on it than we already know.
+
+💭 _What are your thoughts on this planned change for the Linux Kernel? Share your thoughts in the comments down below._
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/linux-disable-microsoft-rndis/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/linux-to-disable-ms-network-drivers.png
+[2]: https://en.wikipedia.org/wiki/Tethering
+[3]: https://news.itsfoss.com/content/images/2023/01/kernel-patch-rndis.jpg
+[4]: https://twitter.com/gregkh
+[5]: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/commit/?h=rndis-removal&id=5eb127bb9741c1480aff95ffa4e1bd4cd9b5b16d
+[6]: https://www.phoronix.com/news/Linux-Disabling-RNDIS-Drivers
+[7]: https://www.reddit.com/r/linux/comments/108avzx/linux_preparing_to_disable_drivers_for_microsofts/
+[8]: https://lkml.org/lkml/2022/11/23/1502
From 222eaba76c2901f264a51d38dad66519e6958458 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Thu, 12 Jan 2023 18:24:49 +0800
Subject: [PATCH 242/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230110.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Ho?=
=?UTF-8?q?w=20to=20use=20methods=20in=20Java.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...30110.3 ⭐️⭐️ How to use methods in Java.md | 187 ++++++++++++++++++
1 file changed, 187 insertions(+)
create mode 100644 sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md
diff --git a/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md b/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md
new file mode 100644
index 0000000000..2f59cf6dcc
--- /dev/null
+++ b/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md
@@ -0,0 +1,187 @@
+[#]: subject: "How to use methods in Java"
+[#]: via: "https://opensource.com/article/23/1/java-methods"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to use methods in Java
+======
+
+A method in Java (called a "function" in many other programming languages) is a portion of code that's been grouped together and labeled for reuse. Methods are useful because they allow you to perform the same action or series of actions without rewriting the same code, which not only means less work for you, it means less code to maintain and debug when something goes wrong.
+
+A method exists within a class, so the standard Java boilerplate code applies:
+
+```
+package com.opensource.example;
+
+public class Example {
+ // code here
+}
+```
+
+A package definition isn't strictly necessary in a simple one-file application like this, but it's a good habit to get into, and most IDEs enforce it.
+
+By default, Java looks for a `main` method to run in a class. Methods can be made public or private, and static or non-static, but the main method must be public and static for the Java compiler to recognize and utilize it. When a method is public, it's able to be executed from outside the class. To call the `Example` class upon start of the program, its `main` method must be accessible, so set it to `public`.
+
+Here's a simple demonstration of two methods: one `main` method that gets executed by default when the `Example` class is invoked, and one `report` method that accepts input from `main` and performs a simple action.
+
+To mimic arbitrary data input, I use an if-then statement that chooses between two strings, based on when you happen to start the application. In other words, the `main` method first sets up some data (in real life, this data could be from user input, or from some other method elsewhere in the application), and then "calls" the `report` method, providing the processed data as input:
+
+```
+package com.opensource.example;
+
+public class Example {
+ public static void main(String[] args) {
+ // generate some data
+ long myTime = System.currentTimeMillis();
+ String weather;
+
+ if ( myTime%2 == 0 ) {
+ weather = "party";
+ } else {
+ weather = "apocalypse";
+ }
+
+ // call the other method
+ report(weather);
+ }
+
+ private static void report(String day) {
+ System.out.printf("Welcome to the zombie %s\n", day);
+ }
+}
+```
+
+Run the code:
+
+```
+$ java ./Example.java
+Welcome to the zombie apocalypse
+$ java ./Example.java
+Welcome to the zombie party
+```
+
+Notice that there are two different results from the same `report` method. In this simple demonstration, of course, there's no need for a second method. The same result could have been generated from the if-then statement that mimics the data generation. But when a method performs a complex task, like resizing an image into a thumbnail and then generating a widget on screen using that resized image, then the "expense" of an additional component makes a lot of sense.
+
+### When to use a Java method
+
+It can be difficult to know when to use a method and when to just send data into a [Java Stream][1] or loop. If you're faced with that decision, the answer is usually to use a method. Here's why:
+
+- Methods are cheap. They don't add processing overhead to your code.
+- Methods reduce the line count of your code.
+- Methods are specific. It's usually easier to find a method called `resizeImage` than it is to find code that's hidden in a loop somewhere in the function that loads images from the drive.
+- Methods are reusable. When you first write a method, you may _think_ it's only useful for one task within your application. As your application grows, however, you may find yourself using a method you thought you were "done" with.
+
+### Functional vs. object-oriented programming
+
+Functional programming utilizes methods as the primary construct for performing tasks. You create a method that accepts one kind of data, processes that data, and outputs new data. String lots of methods together, and you have a dynamic and capable application. Programming languages like C and [Lua][2] are examples of this style of coding.
+
+The other way to think of accomplishing tasks with code is the object-oriented model, which Java uses. In object-oriented programming, methods are components of a template. Instead of sending data from method to method, you create objects with the option to alter them through the use of their methods.
+
+Here's the same simple zombie apocalypse demo program from an object-oriented perspective. In the functional approach, I used one method to generate data and another to perform an action with that data. The object-oriented equivalent is to have a class that represents a work unit. This example application presents a message-of-the-day to the user, announcing that the day brings either a zombie party or a zombie apocalypse. It makes sense to program a "day" object, and then to query that day to learn about its characteristics. As an excuse to demonstrate different aspects of object-oriented construction, the new sample application will also count how many zombies have shown up to the party (or apocalypse).
+
+Java uses one file for each class, so the first file to create is `Day.java`, which serves as the Day object:
+
+```
+package com.opensource.example;
+
+import java.util.Random;
+
+// Class
+public class Day {
+ public static String weather;
+ public int count;
+
+// Constructor
+ public Day() {
+ long myTime = System.currentTimeMillis();
+
+ if ( myTime%2 == 0 ) {
+ weather = "paradise";
+ } else {
+ weather = "apocalypse";
+ }
+ }
+
+// Methods
+ public String report() {
+ return weather;
+ }
+
+ public int counter() {
+ Random rand = new Random();
+ count = count + rand.nextInt(100);
+
+ return(count);
+ }
+}
+```
+
+In the `Class` section, two fields are created: `weather` and `count`. Weather is static. Over the course of a day (in this imaginary situation), weather doesn't change. It's either a party or an apocalypse, and it lasts all day. The number of zombies, however, increases over the course of a day.
+
+In the `Constructor` section, the day's weather is determined. It's done as a [constructor][3] because it's meant to only happen once, when the class is initially invoked.
+
+In the `Methods` section, the `report` method only returns the weather report as determined and set by the constructor. The `counter` method, however, generates a random number and adds it to the current zombie count.
+
+This class, in other words, does three very different things:
+
+- Represents a "day" as defined by the application.
+- Sets an unchanging weather report for the day.
+- Sets an ever-increasing zombie count for the day.
+
+To put all of this to use, create a second file:
+
+```
+package com.opensource.example;
+
+public class Example {
+ public static void main(String[] args) {
+ Day myDay = new Day();
+ String foo = myDay.report();
+ String bar = myDay.report();
+
+ System.out.printf("Welcome to a zombie %s\n", foo);
+ System.out.printf("Welcome to a zombie %s\n", bar);
+ System.out.printf("There are %d zombies out today.\n", myDay.counter());
+ System.out.printf("UPDATE: %d zombies. ", myDay.counter());
+ System.out.printf("UPDATE: %d zombies. ", myDay.counter());
+ }
+}
+```
+
+Because there are now two files, it's easiest to use a Java IDE to run the code, but if you don't want to use an IDE, you can create your own [JAR file][4]. Run the code to see the results:
+
+```
+Welcome to a zombie apocalypse
+Welcome to a zombie apocalypse
+There are 35 zombies out today.
+UPDATE: 67 zombies. UPDATE: 149 zombies.
+```
+
+The "weather" stays the same regardless of how many times the `report` method is called, but the number of zombies on the loose increases the more you call the `counter` method.
+
+### Java methods
+
+Methods (or functions) are important constructs in programming. In Java, you can use them either as part of a single class for functional-style coding, or you can use them across classes for object-oriented code. Both styles of coding are different perspectives on solving the same problem, so there's no right or wrong decision. Through trial and error, and after a little experience, you learn which one suits a particular problem best.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/java-methods
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/20/1/javastream
+[2]: https://opensource.com/article/22/11/lua-worth-learning
+[3]: https://opensource.com/article/19/6/what-java-constructor
+[4]: https://opensource.com/article/21/8/fastjar
+
From 5afa018e99f2dcd22906d67684ee06888c3a945e Mon Sep 17 00:00:00 2001
From: geekpi
Date: Fri, 13 Jan 2023 08:33:16 +0800
Subject: [PATCH 243/266] translating
---
...a programming language by writing a simple game.md | 179 ------------------
...a programming language by writing a simple game.md | 179 ++++++++++++++++++
2 files changed, 179 insertions(+), 179 deletions(-)
delete mode 100644 sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
create mode 100644 translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
diff --git a/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
deleted file mode 100644
index e721a78485..0000000000
--- a/sources/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
+++ /dev/null
@@ -1,179 +0,0 @@
-[#]: subject: "Learn the Ada programming language by writing a simple game"
-[#]: via: "https://opensource.com/article/23/1/learn-ada-simple-game"
-[#]: author: "Moshe Zadka https://opensource.com/users/moshez"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Learn the Ada programming language by writing a simple game
-======
-
-When you want to [learn a new programming language][1], it's good to focus on the things programming languages have in common:
-
-- Variables
-- Expressions
-- Statements
-
-These concepts are the basis of most programming languages. Once you understand them, you can start figuring out the rest. Because programming languages usually share similarities, once you know one language, you can learn the basics of another by understanding its differences.
-
-A good way to learn new languages is practicing with a standard program. This allows you to focus on the language, not the program's logic. I'm doing that in this article series using a "guess the number" program, in which the computer picks a number between one and 100 and asks you to guess it. The program loops until you guess the number correctly.
-
-This program exercises several concepts in programming languages:
-
-- Variables
-- Input
-- Output
-- Conditional evaluation
-- Loops
-
-It's a great practical experiment to learn a new programming language.
-
-### Install Ada
-
-The [Ada programming language][2] is a unique and highly structured language with a dedicated developer base. The toolchain for Ada is the GNU Ada Development Environment, better known as GNAT.
-
-You can install GNAT on Linux using your distribution's package manager. On Fedora, CentOS, or similar:
-
-```
-$ sudo dnf install gcc-gnat
-```
-
-On Debian, Linux Mint, and derivatives:
-
-```
-$ sudo apt install gnat
-```
-
-On macOS and Windows, you can download an installer from the [Adacore website][3] (choose your platform from the drop-down menu).
-
-### Guess the number in Ada
-
-Create a file called `game.adb`.
-
-The two built-in Ada libraries this program uses are `Text_IO` and `Numerics.Discrete_Random`:
-
-```
-with Ada.Text_IO;
-use Ada.Text_IO;
-with Ada.Numerics.Discrete_Random;
-```
-
-#### Procedure head
-
-The name of the procedure must match the name of the file. The first part is defining the variables.
-
-Note that the `discrete_random` is specialized to a specific range. In this case, the range of numbers allowed:
-
-```
-procedure Game is
- type randRange is range 1..100;
- package Rand_Int is new ada.numerics.discrete_random(randRange);
- use Rand_Int;
- gen : Generator;
- num : randRange;
- incorrect: Boolean := True;
- guess: randRange;
-```
-
-#### Procedure logic
-
-The logic starts by `reset(gen)`. This initializes the random number generator, ensuring the number, initialized with `random(gen)`, will be different each time you run the program.
-
-The next step is to run the loop:
-
-- Output the instructions for a guess
-- Read the line
-- Convert it to `randRange`
-- Check it against the number
-
-If the number matches, incorrect is set to **False**, causing the next iteration of the loop to exit.
-
-Finally, the program prints a confirmation of the guess correctness before exiting:
-
-```
-begin
- reset(gen);
- num := random(gen);
- while incorrect loop
- Put_Line ("Guess a number between 1 and 100");
- declare
- guess_str : String := Get_Line (Current_Input);
- begin
- guess := randRange'Value (guess_str);
- end;
- if guess < num then
- Put_line("Too low");
- elsif guess > num then
- Put_line("Too high");
- else
- incorrect := False;
- end if;
- end loop;
- Put_line("That's right");
-end Game;
-```
-
-### Build the program
-
-The easiest way to compile an Ada program is to use `gnatmake`:
-
-```
-$ gnatmake game.adb
-aarch64-linux-gnu-gcc-10 -c game.adb
-aarch64-linux-gnu-gnatbind-10 -x game.ali
-aarch64-linux-gnu-gnatlink-10 game.ali
-```
-
-This generates a binary called `game`.
-
-### Run the program
-
-Each run of the program will be a little different. This is one example:
-
-```
-$ ./game
-Guess a number between 1 and 100
-50
-Too low
-Guess a number between 1 and 100
-75
-Too low
-Guess a number between 1 and 100
-82
-Too low
-Guess a number between 1 and 100
-90
-Too high
-Guess a number between 1 and 100
-87
-Too low
-Guess a number between 1 and 100
-88
-That's right
-```
-
-### Learn Ada
-
-This "guess the number" game is a great introductory program for learning a new programming language because it exercises several common programming concepts in a pretty straightforward way. By implementing this simple game in different programming languages, you can demonstrate some core concepts of the languages and compare their details.
-
-Do you have a favorite programming language? How would you write the "guess the number" game in it? Follow this article series to see examples of other programming languages that might interest you!
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/23/1/learn-ada-simple-game
-
-作者:[Moshe Zadka][a]
-选题:[lkxed][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/moshez
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/article/20/10/learn-any-programming-language
-[2]: https://opensource.com/article/21/10/learn-ada-2021
-[3]: https://www.adacore.com/download/more
-
diff --git a/translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
new file mode 100644
index 0000000000..e215dfe423
--- /dev/null
+++ b/translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
@@ -0,0 +1,179 @@
+[#]: subject: "Learn the Ada programming language by writing a simple game"
+[#]: via: "https://opensource.com/article/23/1/learn-ada-simple-game"
+[#]: author: "Moshe Zadka https://opensource.com/users/moshez"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+通过编写一个简单的游戏来学习 Ada 编程语言
+======
+
+当你想[学习一种新的编程语言][1]时,把注意力放在编程语言的共同点上是很好的。
+
+- 变量
+- 表达式
+- 语句
+
+这些概念是大多数编程语言的基础。一旦你理解了它们,你就可以开始琢磨其他的东西了。因为编程语言通常有相似之处,一旦你知道一种语言,你就可以通过了解其差异来学习另一种语言的基础知识。
+
+学习新语言的一个好方法是用一个标准程序进行练习。这使你能够专注于语言,而不是程序的逻辑。在这个系列文章中,我使用了一个“猜数字”的程序,在这个程序中,计算机在 1 到 100 之间挑选一个数字,并要求你猜出来。程序循环进行,直到你猜对数字为止。
+
+这个程序锻炼了编程语言中的几个概念:
+
+- 变量
+- 输入
+- 输出
+- 条件判断
+- 循环
+
+这是一个学习新的编程语言的很好的实践实验。
+
+### 安装 Ada
+
+[Ada 编程语言][2]是一种独特的、高度结构化的语言,有专门的开发者基础。Ada 的工具链是 GNU Ada 发环境,更多的是被称为 GNAT。
+
+你可以使用你的发行版的包管理器在 Linux 上安装 GNAT。在 Fedora、CentOS 或类似系统上:
+
+```
+$ sudo dnf install gcc-gnat
+```
+
+在 Debian, Linux Mint 及衍生版上:
+
+```
+$ sudo apt install gnat
+```
+
+在 macOS 和 Windows 上,你可以从 [Adacore 网站][3]下载一个安装程序(从下拉菜单中选择你的平台)。
+
+### 在 Ada 中猜数字
+
+创建一个名为 `game.adb` 的文件。
+
+这个程序使用的两个内置 Ada 库:`Text_IO` 和 `Numerics.Discrete_Random`:
+
+```
+with Ada.Text_IO;
+use Ada.Text_IO;
+with Ada.Numerics.Discrete_Random;
+```
+
+#### 过程头
+
+过程(procedure)的名称必须与文件的名称一致。第一部分是定义变量。
+
+注意,`discrete_random` 是专门针对特定范围的。在这里,允许数字范围:
+
+```
+procedure Game is
+ type randRange is range 1..100;
+ package Rand_Int is new ada.numerics.discrete_random(randRange);
+ use Rand_Int;
+ gen : Generator;
+ num : randRange;
+ incorrect: Boolean := True;
+ guess: randRange;
+```
+
+#### 过程逻辑
+
+该逻辑由 `reset(gen)` 开始。这将初始化随机数发生器,确保每次运行程序时,用 `random(gen)` 初始化的数字将是不同的。
+
+下一步是运行循环:
+
+- 输出猜测的指令
+- 读取该行
+- 将其转换为 `randRange`。
+- 将其与数字进行核对
+
+如果数字匹配,incorrect 被设置为 **False**,导致循环的下一次迭代退出。
+
+最后,程序在退出前会打印出对猜测正确性的确认:
+
+```
+begin
+ reset(gen);
+ num := random(gen);
+ while incorrect loop
+ Put_Line ("Guess a number between 1 and 100");
+ declare
+ guess_str : String := Get_Line (Current_Input);
+ begin
+ guess := randRange'Value (guess_str);
+ end;
+ if guess < num then
+ Put_line("Too low");
+ elsif guess > num then
+ Put_line("Too high");
+ else
+ incorrect := False;
+ end if;
+ end loop;
+ Put_line("That's right");
+end Game;
+```
+
+### 编译程序
+
+编译 Ada 程序的最简单方法是使用 `gnatmake`:
+
+```
+$ gnatmake game.adb
+aarch64-linux-gnu-gcc-10 -c game.adb
+aarch64-linux-gnu-gnatbind-10 -x game.ali
+aarch64-linux-gnu-gnatlink-10 game.ali
+```
+
+这将生成一个名为 `game` 的二进制文件。
+
+### 运行程序
+
+程序的每次运行都会有一些不同。这是一个例子:
+
+```
+$ ./game
+Guess a number between 1 and 100
+50
+Too low
+Guess a number between 1 and 100
+75
+Too low
+Guess a number between 1 and 100
+82
+Too low
+Guess a number between 1 and 100
+90
+Too high
+Guess a number between 1 and 100
+87
+Too low
+Guess a number between 1 and 100
+88
+That's right
+```
+
+### 学习 Ada
+
+这个“猜数字”游戏是学习新的编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念。通过在不同的编程语言中实现这个简单的游戏,你可以展示这些语言的一些核心概念,并比较它们的细节。
+
+你有喜欢的编程语言吗?你会如何用它来写“猜数字”的游戏?请关注本系列文章,看看你可能感兴趣的其他编程语言的例子吧!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/learn-ada-simple-game
+
+作者:[Moshe Zadka][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/moshez
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/20/10/learn-any-programming-language
+[2]: https://opensource.com/article/21/10/learn-ada-2021
+[3]: https://www.adacore.com/download/more
+
From b8e06a875b4c17b39af592d6dd553eabe3372439 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Fri, 13 Jan 2023 08:35:31 +0800
Subject: [PATCH 244/266] translating
---
... Colorblind Filters GNOME Extension to help Colorblind Users.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md
index cd48adc303..6d4c4fe848 100644
--- a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md
+++ b/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md
@@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/colorblind-filters-gnome-extension/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From aedc9a8353c18229b3b3a04ba6254591996f5b93 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Fri, 13 Jan 2023 09:39:29 +0800
Subject: [PATCH 245/266] ATRP
@wxy
https://linux.cn/article-15439-1.html
---
...io 29 Release Has Little in Store For Linux.md | 92 +++++++++++++++++++
...io 29 Release Has Little in Store For Linux.md | 92 -------------------
2 files changed, 92 insertions(+), 92 deletions(-)
create mode 100644 published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md
delete mode 100644 sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md
diff --git a/published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md b/published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md
new file mode 100644
index 0000000000..ace2e685f9
--- /dev/null
+++ b/published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md
@@ -0,0 +1,92 @@
+[#]: subject: "OBS Studio 29 Release Has Little in Store For Linux"
+[#]: via: "https://news.itsfoss.com/obs-studio-29-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15439-1.html"
+
+OBS Studio 29 发布,但对 Linux 用户来说变化不大
+======
+
+> OBS Studio 29 是一个令人兴奋的版本,在所有平台上都有关键的改进。
+
+![][1]
+
+[OBS Studio][2] 是最受欢迎的开源屏幕录制和流媒体软件之一。
+
+许多 Linux 用户和内容创作者都在使用它,它有一套相当不错的工具和功能,可以让你录制和串流内容。
+
+它的上一个主要版本发布于 2022 年 9 月,它带来了对苹果芯片的原生支持、更新了用户界面、改进了颜色支持等等。
+
+它的下一个版本,即 v29,似乎有点意思,但对 Linux 用户来说变化不大 😞
+
+### OBS Studio 29 的新变化
+
+![OBS Studio 29][3]
+
+这个版本有大量的改进和修复;其中一些亮点包括:
+
+- 对 Linux 的媒体键支持
+- 新的音频过滤器
+- 改进的英伟达视频和音频过滤器
+- 更好的编码器支持
+- 各种修复和改进
+
+**媒体键支持:** 你终于可以用键盘上的媒体键来控制 Linux 上的 OBS 的播放或音量了。
+
+**新的音频过滤器:** OBS Studio 29 具有两个新的音频滤波器,一个向上压缩滤波器和一个 3 波段均衡器滤波器。
+
+**改进的英伟达视频和音频过滤器:** 对这些过滤器进行了各种改进。
+
+增加了一个新的屏蔽刷新滑块,同时支持时间处理,这应该是为了提供更好的屏蔽质量。
+
+**更好的编码器支持:**,OBS Studio 29 对几个编码器的支持得到了改善,例如:
+
+- Windows 上的用于 AMD [RX7000 系列][4] 的 AV1 编码器。
+- Windows 上的用于英特尔 [Arc GPU][5] 的 AV1 编码器。
+- Windows 上的英特尔 HEVC 编码器。
+- macOS 上的原生 HEVC 和 ProRes 编码器。
+
+> 📋 注意,这些编码器只支持 Windows 或 macOS。可悲的是,他们少了对 Linux 的支持。我们希望在 OBS Studio 的未来版本中加入这些功能。
+
+**各种修复和改进:** 除了上面列出的那些,OBS Studio 29 还有很多其他的变化,例如:
+
+- Websockets 5.1.0
+- 回放缓冲区的内存限制现在被限制在已安装的系统内存的 75%,而不是固定在 8GB。
+- 支持对 SRT 和 RIST 输出的加密和认证。
+- 能够检查和/或静音个别的浏览器底座。
+- 在视频捕获的情况下,支持更高的刷新率。
+
+关于更多的技术细节,你可以查看 [官方发布说明][6]。
+
+### 下载 OBS Studio 29
+
+要获得最新的 OBS Studio 29,你可以使用 [Flatpak][7],这是推荐的方法。
+
+你也可以看看其官方下载页面中提到的其他安装方法。
+
+> **[OBS Studio 29][8]**
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/obs-studio-29-release/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/obs-studio-29-release.png
+[2]: https://obsproject.com
+[3]: https://news.itsfoss.com/content/images/2023/01/OBS_Studio_29.png
+[4]: https://en.wikipedia.org/wiki/Radeon_RX_7000_series
+[5]: https://www.intel.in/content/www/in/en/products/details/discrete-gpus/arc.html
+[6]: https://github.com/obsproject/obs-studio/releases/tag/29.0.0
+[7]: https://flathub.org/apps/details/com.obsproject.Studio
+[8]: https://obsproject.com/download
diff --git a/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md b/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md
deleted file mode 100644
index a6d65103b1..0000000000
--- a/sources/news/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md
+++ /dev/null
@@ -1,92 +0,0 @@
-[#]: subject: "OBS Studio 29 Release Has Little in Store For Linux"
-[#]: via: "https://news.itsfoss.com/obs-studio-29-release/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-OBS Studio 29 Release Has Little in Store For Linux
-======
-
-OBS Studio 29 is an exciting release with key improvements across all platforms.
-
-![OBS Studio 29 Release Has Little in Store For Linux][1]
-
-[OBS Studio][2] is one of the most popular open-source screen recording and streaming software.
-
-Used by many Linux users and content creators, it has a pretty neat set of tools and features that lets you record and stream content.
-
-Its last major release was back in September 2022, which brought in native support for Apple Silicon, updated UI, improved color support, and more.
-
-Its next release, v29, seems to be a bit interesting, but not so much for Linux users 😞
-
-### OBS Studio 29: What's New?
-
-![obs studio 29][3]
-
-This release has plenty of improvements and fixes; some of the highlights include the following:
-
-- **Media key support for Linux**
-- **New Audio Filters**
-- **Improved NVIDIA Video and Audio Filters**
-- **Better Encoder Support**
-- **Various Fixes and Improvements**
-
-**Media key support:** You can finally use the media keys on your keyboard to control the playback or the volume with OBS on Linux.
-
-**New Audio Filters:** OBS Studio 29 features two new audio filters, an upward compressor filter, and a 3-band equalizer filter.
-
-**Improved NVIDIA Video and Audio Filters:** Various improvements have been made to these filters.
-
-A new Mask Refresh slider has been added, alongside support for temporal processing, that is supposed to provide better quality masking.
-
-**Better Encoder Support:** Well, OBS Studio 29 received improved support for several encoders, such as:
-
-- AMD AV1 Encoder for[RX7000 series][4] of GPUs on Windows.
-- Intel AV1 Encoder for [Arc GPUs][5] on Windows.
-- Intel HEVC Encoder on Windows.
-- Native HEVC and ProRes encoders for macOS.
-
-> 📋 Note that support for these encoders is only for either Windows or macOS.Sadly, they miss out on support for Linux. We hope these are added in a future release of OBS Studio.
-
-**Various Fixes and Improvements:** Apart from the ones listed above, OBS Studio 29 features plenty of other changes, such as:
-
-- Websockets 5.1.0
-- The replay buffer's memory limit is now limited to 75% of installed system RAM, instead of being fixed to 8 GB.
-- Support for encryption and authentication for SRT and RIST outputs.
-- Ability to inspect and/or mute individual browser docks.
-- Support for higher refresh rates in case of video captures.
-
-For more technical details, you can go through the [official release notes][6].
-
-### Download OBS Studio 29
-
-To get the latest OBS Studio 29, you can get the [Flatpak][7], the recommended method.
-
-You can also explore other installation methods mentioned in its official download page.
-
-[OBS Studio 29][8]
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/obs-studio-29-release/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/obs-studio-29-release.png
-[2]: https://obsproject.com
-[3]: https://news.itsfoss.com/content/images/2023/01/OBS_Studio_29.png
-[4]: https://en.wikipedia.org/wiki/Radeon_RX_7000_series
-[5]: https://www.intel.in/content/www/in/en/products/details/discrete-gpus/arc.html
-[6]: https://github.com/obsproject/obs-studio/releases/tag/29.0.0
-[7]: https://flathub.org/apps/details/com.obsproject.Studio
-[8]: https://obsproject.com/download
From 31e7dda2eba2699d9c4b8f8c47e6060ce9021bad Mon Sep 17 00:00:00 2001
From: Cubik
Date: Thu, 12 Jan 2023 23:58:44 -0500
Subject: [PATCH 246/266] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E7=94=B3=E8=AF=B7][?=
=?UTF-8?q?tech]:=2020221222.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=2011?=
=?UTF-8?q?=20New=20Distros=20to=20look=20forward=20to=20in=202023.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md
index 1999c6f859..ed8b300ca3 100644
--- a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md
+++ b/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md
@@ -2,7 +2,7 @@
[#]: via: "https://news.itsfoss.com/new-distros-2023/"
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "Cubik65536"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
@@ -216,7 +216,7 @@ via: https://news.itsfoss.com/new-distros-2023/
作者:[Sourav Rudra][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
+译者:[Cubik65536](https://github.com/Cubik65536)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From 2e25f8a33579d94037d27fcdb47dee5247760940 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Fri, 13 Jan 2023 17:40:30 +0800
Subject: [PATCH 247/266] RP
@geekpi
https://linux.cn/article-15440-1.html
---
...a programming language by writing a simple game.md | 30 +++++++++++--------
1 file changed, 17 insertions(+), 13 deletions(-)
rename {translated/tech => published}/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md (79%)
diff --git a/translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
similarity index 79%
rename from translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
rename to published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
index e215dfe423..b502bf537f 100644
--- a/translated/tech/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
+++ b/published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md
@@ -3,14 +3,18 @@
[#]: author: "Moshe Zadka https://opensource.com/users/moshez"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15440-1.html"
-通过编写一个简单的游戏来学习 Ada 编程语言
+通过编写“猜数字”游戏来学习 Ada 编程语言
======
-当你想[学习一种新的编程语言][1]时,把注意力放在编程语言的共同点上是很好的。
+![][0]
+
+> 这个 "猜数字 "游戏是学习新编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念。
+
+当你想 [学习一种新的编程语言][1] 时,把注意力放在编程语言的共同点上是很好的:
- 变量
- 表达式
@@ -32,7 +36,7 @@
### 安装 Ada
-[Ada 编程语言][2]是一种独特的、高度结构化的语言,有专门的开发者基础。Ada 的工具链是 GNU Ada 发环境,更多的是被称为 GNAT。
+[Ada 编程语言][2] 是一种独特的、高度结构化的语言,有专门一群开发者使用它。Ada 的工具链是 GNU Ada 开发环境,多被称为 GNAT。
你可以使用你的发行版的包管理器在 Linux 上安装 GNAT。在 Fedora、CentOS 或类似系统上:
@@ -40,13 +44,13 @@
$ sudo dnf install gcc-gnat
```
-在 Debian, Linux Mint 及衍生版上:
+在 Debian、Linux Mint 及衍生版上:
```
$ sudo apt install gnat
```
-在 macOS 和 Windows 上,你可以从 [Adacore 网站][3]下载一个安装程序(从下拉菜单中选择你的平台)。
+在 macOS 和 Windows 上,你可以从 [Adacore 网站][3] 下载一个安装程序(从下拉菜单中选择你的平台)。
### 在 Ada 中猜数字
@@ -62,7 +66,7 @@ with Ada.Numerics.Discrete_Random;
#### 过程头
-过程(procedure)的名称必须与文件的名称一致。第一部分是定义变量。
+过程procedure 的名称必须与文件的名称一致。第一部分是定义变量。
注意,`discrete_random` 是专门针对特定范围的。在这里,允许数字范围:
@@ -79,7 +83,7 @@ procedure Game is
#### 过程逻辑
-该逻辑由 `reset(gen)` 开始。这将初始化随机数发生器,确保每次运行程序时,用 `random(gen)` 初始化的数字将是不同的。
+该逻辑从 `reset(gen)` 开始。这将初始化随机数发生器,确保每次运行程序时,用 `random(gen)` 初始化的数字将是不同的。
下一步是运行循环:
@@ -88,7 +92,7 @@ procedure Game is
- 将其转换为 `randRange`。
- 将其与数字进行核对
-如果数字匹配,incorrect 被设置为 **False**,导致循环的下一次迭代退出。
+如果数字匹配,`incorrect` 被设置为 `False`,导致循环的下一次迭代退出。
最后,程序在退出前会打印出对猜测正确性的确认:
@@ -167,7 +171,7 @@ via: https://opensource.com/article/23/1/learn-ada-simple-game
作者:[Moshe Zadka][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -176,4 +180,4 @@ via: https://opensource.com/article/23/1/learn-ada-simple-game
[1]: https://opensource.com/article/20/10/learn-any-programming-language
[2]: https://opensource.com/article/21/10/learn-ada-2021
[3]: https://www.adacore.com/download/more
-
+[0]: https://img.linux.net.cn/data/attachment/album/202301/13/173929sbddkk6fbd67uu5v.jpg
\ No newline at end of file
From 2dbc5e82d8ea3e7665b6dd88524acf676459ad6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 14 Jan 2023 11:16:14 +0800
Subject: [PATCH 248/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230111.1=20=E2=AD=90=EF=B8=8F=20Wordbook=20Offline?=
=?UTF-8?q?=20English=20Dictionary=20App=20for=20GNOME.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...ok Offline English Dictionary App for GNOME.md | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md
diff --git a/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md
new file mode 100644
index 0000000000..b4bdf7d8ec
--- /dev/null
+++ b/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md
@@ -0,0 +1,73 @@
+[#]: subject: "Wordbook: Offline English Dictionary App for GNOME"
+[#]: via: "https://www.debugpoint.com/wordbook-offline-dictionary/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Wordbook: Offline English Dictionary App for GNOME
+======
+
+**Meet Wordbook – an offline dictionary application for the GNOME desktop.**
+
+We mostly search Google, DDG or any search engine online for word information such as meaning, synonyms, antonyms etc.
+
+Since almost everyone today has an internet-connected mobile phone, it’s probably easier to search on Google.
+
+But for offline usage, you may try [Wordbook][1] when no internet connection is available.
+
+### Wordbook: Offline dictionary app
+
+The app is very basic in nature. But does its job with its capacity. Wordbook currently supports an English-to-English dictionary. At its core, it uses the [Open English WordNet database][2] for definitions. The Open English Wordnet is an open-source fork of the [Princeton Wordnet project][3].
+
+The Wordbook app can also pronounce words using [eSpeak][4] – a free and open-source speech synthesizer.
+
+![Wordbook - English to English Dictionary App][5]
+
+However, during the first run, it requires one-time internet access to download offline data. And that’s about it. Other notable feature includes live search, double-click search and custom definitions with HTML markup.
+
+Wordbook is a [GNOME app][6], built using the modern GTK4 and libadwaita. Hence integrates well with the GNOME desktop with light and dark themes. You can also use Wordbook’s random word feature to learn new words to increase your vocabulary.
+
+### Installation
+
+You can easily install it as a Flatpak app from Flathub. Set up your system for Flatpak & Flathub and then install it using the below command from the terminal:
+
+```
+flatpak install com.github.fushinari.Wordbook
+```
+
+After installation, you can find it on the application menu.
+
+### Close notes
+
+I hope you use this tiny app for your school or business work. The offline nature is handy if you are writing essays and longer paragraphs.
+
+Do you know any other offline dictionary for Linux? Let us know in the comment box.
+
+[Next:Install Ubuntu on Windows Using VirtualBox [Complete Guide]][7]
+
+[_Using Mastodon? Follow us at floss.social/@debugpoint_][8]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/wordbook-offline-dictionary/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://github.com/fushinari/Wordbook
+[2]: https://github.com/globalwordnet/english-wordnet
+[3]: https://wordnet.princeton.edu/
+[4]: https://espeak.sourceforge.net/
+[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Wordbook-English-to-English-Dictionary-App.jpg
+[6]: https://www.debugpoint.com/tag/gnome-app
+[7]: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/
+[8]: https://floss.social/@debugpoint
From e19fb1c00840e27cbc788862e6d0c96425a3cd06 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 14 Jan 2023 11:17:32 +0800
Subject: [PATCH 249/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020230112.1=20=E2=AD=90=EF=B8=8F=20Ubuntu=2023.04=20Lun?=
=?UTF-8?q?ar=20Lobster=20Wallpaper=20Competition=20is=20Now=20Open.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...r Lobster Wallpaper Competition is Now Open.md | 59 +++++++++++++++++++
1 file changed, 59 insertions(+)
create mode 100644 sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md
diff --git a/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md b/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md
new file mode 100644
index 0000000000..209048a38b
--- /dev/null
+++ b/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md
@@ -0,0 +1,59 @@
+[#]: subject: "Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open"
+[#]: via: "https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open
+======
+
+![][1]
+
+**Like digital drawing or photography? This wallpaper competition may feature your photos in the official Ubuntu 23.04 release.**
+
+### Wallpaper Competition for Ubuntu 23.04
+
+Ubuntu 23.04 “Lunar Lobster” release is due in April 2023. Following the schedule, the official wallpaper competition is now open before the upcoming BETA release.
+
+As per the official guidelines, you must own the rights to the images that you are posting, and they must be original. No AI-generated images should be considered, arguably.
+
+Furthermore, your submitted image should have at least 3840x2160px dimensions and should not exceed 10MB of file size. The file formats SVG and WebP are preferred. However, standard formats such as PNG and JPG are also accepted.
+
+In addition, your images should not have any watermark, logo or text such as “Lunar Lobster” or “Ubuntu”. You can read the detailed guideline [here][2].
+
+Finally, your wallpaper may feature the official mascot – “Lunar” and “Lobster”.
+
+The submission closes on February 6, 2023, and final winners will be announced on February 18, 2023, after community voting.
+
+![One of the early submission for Ubuntu 23.04 official wallpaper][3]
+
+### How to submit it?
+
+Head over to the official discourse forum post and submit your entries. Make sure to mention your name and Twitter handle to get credit from the Ubuntu team if selected.
+
+[Submit wallpapers][4]
+
+Put on your creative hat and submit all those cool wallpapers!
+
+_Image credits: respective author_
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/
+
+作者:[arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2023/01/wall2304head.jpg
+[2]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/README.md
+[3]: https://debugpointnews.com/wp-content/uploads/2023/01/One-of-the-early-submission-for-Ubuntu-23.04-official-wallpaper.jpg
+[4]: https://discourse.ubuntu.com/t/lunar-lobster-23-04-wallpaper-competition/33132
From 6b58a0793408376ca698b101497ac517cb847644 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 14 Jan 2023 11:19:19 +0800
Subject: [PATCH 250/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020230112.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Di?=
=?UTF-8?q?scourse=203.0=20is=20an=20Amazing=20Release=20With=20Much-Neede?=
=?UTF-8?q?d=20Feature=20Additions.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...zing Release With Much-Needed Feature Additions.md | 148 ++++++++++++++++++
1 file changed, 148 insertions(+)
create mode 100644 sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md
diff --git a/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md b/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md
new file mode 100644
index 0000000000..5de7f32df5
--- /dev/null
+++ b/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md
@@ -0,0 +1,148 @@
+[#]: subject: "Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions"
+[#]: via: "https://news.itsfoss.com/discourse-3-0-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions
+======
+
+Open-source forum software Discourse has a new major upgrade! Check out what's new.
+
+![Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions][1]
+
+Discourse is an open-source forum platform known for its vast features and third-party integrations.
+
+It is also one of the [best open-source forum software][2] you can deploy on your Linux servers to build a community.
+
+The **[It's FOSS Community][3]** forum is **also****powered by Discourse**. If you have any questions or want to join in discussing Linux/Open-Source stuff with like-minded people, feel free to sign up on our community forum.
+
+Now, moving on to Discourse's latest release.
+
+**Discourse 3.0 is finally here**.
+
+This comes almost **five years** after the release of [Discourse 2.0.][4]
+
+This release is packed with plenty of new features and improvements; let me take you through them.
+
+### 🆕 Discourse 3.0: What's New?
+
+![discourse 3.0][5]
+
+Discourse 3.0 has a lot to offer; some of the notable highlights include:
+
+- **New Setup Wizard**
+- **User Status**
+- **Notifications Menu**
+- **New Sidebar**
+- **Real-Time Chat**
+- **User Tips**
+
+#### New Setup Wizard
+
+![discourse setup wizard][6]
+
+Discourse now features a new setup wizard that lets you quickly configure some of the most important options.
+
+So, options like setting a community to **Private, Invite Only, Require Approval,** and more are shown during the initial stages of the set-up of your forum.
+
+#### User Status
+
+![discourse 3.0 user status][7]
+
+Similar to what most community platforms are doing nowadays, Discourse now has support for setting user status.
+
+Users can set a custom emoji and text to be displayed near their avatar across the platform, be it posts, chat, or in the user card.
+
+#### Notifications Menu
+
+![discourse notifications][8]
+
+Finally, this has become a reality.
+
+Discourse now has a dedicated notifications menu, making it easier to track your activity on the forums.
+
+#### New Sidebar
+
+![discourse 3 sidebar][9]
+
+This is yet **another user experience improvement** that you might like.
+
+You can now add chat channels, tags, and categories to the new sidebar for easy access to the things you want to keep track of.
+
+Admins of forums can also set a default sidebar config for visitors and new members; this way, everyone can get a great outlook of what a forum offers.
+
+#### Real-Time Chat
+
+![discourse 3.0 realtime chat][10]
+
+Discourse now has support for real-time chats; channel admins can choose to create a space for informal discussion, showcase, or even memes if it works for them.
+
+Discourse's **Product Manager**, _Rishabh Nambiar,_mentions:
+
+> Our goal is to empower communities with an integrated experience as conversations shift between faster-paced chat and slower-paced discussions.When ideas are sparked that belong in a more discoverable place, chat messages can be quoted in topics where the discussion can continue over time and allow people in different times and places to join in later.
+
+#### User Tips
+
+![discourse 3.0 user tips][11]
+
+This feature can be helpful to new users who are unfamiliar with Discourse.
+
+Users will be provided with tips related to the features of Discourse when they use a particular feature for the first time.
+
+#### 🛠️ Other Changes & Improvements
+
+The above-mentioned are not the only changes coming to Discourse with this release; here are some other highlights:
+
+- **The hashtag system has been revamped.**
+- **The search UI has been improved.**
+- **Open-source tooling has been updated.**
+- **Improved error pages.**
+- **New splash screen.**
+- **Improved page loading spinner.**
+- **Faster image preloads.**
+
+If you want a deep dive into the technical details of this release, go through the [release notes][12].
+
+### 📥 Get Discourse 3.0
+
+If you are on [Discourse's hosting plan][13], you must have already received the 3.0 update, and all you have to do is enable the new features via your admin settings.
+
+**Suggested Read 📖**
+
+And, if you are self-hosted, you must manually update your instance by clicking on the '**Update**' button on your admin dashboard.
+
+For new users, explore more about Discourse on their official site.
+
+[Discourse][14]
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/discourse-3-0-release/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/discourse-3-0-release.png
+[2]: https://itsfoss.com/open-source-forum-software/
+[3]: https://itsfoss.community
+[4]: https://blog.discourse.org/2018/05/discourse-2-0-released/
+[5]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0.jpg
+[6]: https://news.itsfoss.com/content/images/2023/01/discourse-member-exp-1.png
+[7]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Status.jpg
+[8]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Notifications-1.jpg
+[9]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Sidebar-1.jpg
+[10]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Chat.jpg
+[11]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Tips.jpg
+[12]: https://meta.discourse.org/t/discourse-version-3-0/
+[13]: https://www.discourse.org/pricing
+[14]: https://www.discourse.org
From 64fa5e7135c6a2e70e34f8ed54ce57cf4785f8b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 14 Jan 2023 11:19:51 +0800
Subject: [PATCH 251/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230112.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20In?=
=?UTF-8?q?stall=20Ubuntu=20on=20Windows=20Using=20VirtualBox=20[Complete?=
=?UTF-8?q?=20Guide].md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...tu on Windows Using VirtualBox [Complete Guide].md | 241 ++++++++++++++++++
1 file changed, 241 insertions(+)
create mode 100644 sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md
diff --git a/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md
new file mode 100644
index 0000000000..abe5942ad6
--- /dev/null
+++ b/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md
@@ -0,0 +1,241 @@
+[#]: subject: "Install Ubuntu on Windows Using VirtualBox [Complete Guide]"
+[#]: via: "https://www.debugpoint.com/install-ubuntu-windows-virtualbox/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Install Ubuntu on Windows Using VirtualBox [Complete Guide]
+======
+
+**This tutorial will guide you through the easiest steps to install an Ubuntu desktop on Windows using Oracle VirtualBox.**
+
+[VirtualBox][1] is a popular virtualization software by Oracle which is available for Linux, mac and Windows systems. It is flexible and brings many features to take advantage of your virtualization. It’s the best and easy way to experience Ubuntu in Windows without installing it. However, I strongly recommend installing Ubuntu physically as a dual-boot to enjoy its advantage.
+
+The steps outlined below assume that you are installing Ubuntu for the first time in Windows. Hence the steps are a little descriptive and a bit lengthy. Furthermore, the following steps should work for Windows 10 and Windows 11 as host machines.
+
+### Contents
+
+- [Pre-requisite][2]
+- [Download Ubuntu ISO and VirtualBox set-up files][3]
+- [Install VirtualBox on Windows (Host)][4]
+- [Install Ubuntu (Guest) on VirtualBox][5]
+- [Guest addition installation and tips][6]
+
+### What you’ll need
+
+- A PC with internet access
+- Ubuntu Linux ISO image file for installation
+- Windows system with VirtualBox installed
+
+### Install Ubuntu on Windows Using VirtualBox
+
+#### Download and install the necessary items
+
+- Download the Ubuntu Linux desktop ISO image file from the following link.
+
+[Download Ubuntu Desktop][7]
+
+- Also, download the Oracle VirtualBox installer from the official website below.
+
+[Download VirtualBox][8]
+
+![Download location for VirtualBox for Windows][9]
+
+#### How to install and configure VirtualBox
+
+VirtualBox in Windows requires Microsoft Visual C++ 2019 Redistributable package. And you have to install it first. Download the package (under X64 architecture) from the below link:
+
+[Download][10]
+
+![Download the dependency for VirtualBox][11]
+
+![Install the dependency for VirtualBox][12]
+
+- After the above installation is complete, download the latest Python package from the below link. Python bindings are also a dependency for VirtualBox installation on Windows.
+
+[Download Python for Windows][13]
+
+- Then, launch the VirtualBox installation and follow the onscreen instructions to install it.
+- After installation, restart your Windows system again.
+
+#### Set up a virtual machine for Ubuntu
+
+- Launch VirtualBox from the start menu.
+
+![Select VirtualBox from start menu][14]
+
+- On the VirtualBox window toolbar, click **New**.
+- On the **Create VirtualBox** window, give the name of your virtual machine. It can be any name which identifies this version of Ubuntu.
+- Keep the **Folder Name** unchanged. This is the path where the virtual machine file will be created.
+- In the ISO Image field, browse the Ubuntu ISO file you downloaded.
+- And select the Unattended installation. If you un-select this, a [default user id (vboxuser) and password][15] will be created in your virtual machine. Let’s not follow it for now.
+
+![Click on New][16]
+
+![Select the ISO file][17]
+
+- Click on Hardware and select the RAM you want for your virtual box. A thumb rule is that your VM’s RAM size should be less than your physical RAM in the host system. I would recommend using 2 GB to 4 GB for a virtual machine for an 8 GB RAM system. For 4 GB RAM, use the slider (or type in) to make it 4096 MB (i.e. 4*1024).
+- Choose processor as 2 or 4.
+- Click on the Hard Disk section, and keep the file location unchanged.
+- Give a minimum of 20GB to 25GB for Ubuntu installation.
+- The hard disk file type value keeps as VDI (VirtualBox Disk Image)
+- Do not select the pre-allocate full size.
+- And finally, click on Finish.
+
+![Select Hardware][18]
+
+![Select Hard Disk][19]
+
+- You should see a new entry at the left panel of VirtualBox with an Ubuntu 22.04 entry (the name which you gave above).
+- Select the entry and click on Start to boot into the virtual machine
+
+![Boot Ubuntu in VirtualBox][20]
+
+#### Install Ubuntu using VirtualBox
+
+- After a successful boot, you should see the following screen, which shows various options for installing Ubuntu. Select **Try or install Ubuntu**.
+- In the Welcome screen, click on **Try Ubuntu**. And after a few moments, you should see the following Ubuntu LIVE desktop. If you want to change the resolution, right-click on the desktop and select Display settings. And change the resolution to 1400×900.
+- On the desktop, double-click on “**Install Ubuntu**…”.
+
+![Select Try Ubuntu][21]
+
+![Ubuntu LIVE desktop][22]
+
+- In the next set of screens, select Language and Keyboard Layout as your needs.
+- The Install screen provides you with the type of installation you need. Select Normal Installation, and select both options under Other options.
+- Since you are installing in the virtual disk space, i.e. which is just a file, you can safely choose the “Erase disk and install Ubuntu” option.
+- Hit Install Now and Continue.
+
+![Select Language][23]
+
+![Select Keybaord Layout][24]
+
+![Select install options][25]
+
+![Installation Type][26]
+
+![Write changes to disk][27]
+
+- Then select region, add name, user and password. This will be your user id and password to log on to Ubuntu after installation.
+- Hit continue to start the installation. Wait until it finishes.
+
+![User account creation][28]
+
+![Ubuntu Installation is complete][29]
+
+Click on Restart Now after the installation is complete. Wait for a few seconds and you should see a login screen. Use the user id and password to log in. And you should see Ubuntu desktop is running inside VirtualBox as VM in Windows.
+
+![Log on to Ubuntu][30]
+
+![Ubuntu running in Windows using Virtualbox][31]
+
+### Post-install configuration and tips (optional)
+
+#### Install Guest Additions
+
+After the successful installation, you should install the **VirtualBox guest additions** for Windows Host and Ubuntu Guest. The guest addition is a set of packages you need to install inside the guest VM (i.e. Ubuntu) to enable **shared folders, bi-directional copy/paste, automatic resolution change,** and many such features.
+
+To install it, boot into Ubuntu. From the VirtualBox menu, select `Devices > Insert Guest Additions CD Image`. The necessary packages will be mounted inside Ubuntu.
+
+![Select Guest addition from the menu][32]
+
+Open the file manager and open the mounted folder as shown below. And then right-click > select `open in terminal`.
+
+Then run the following command:
+
+```
+sudo ./VBoxLinuxAdditions.run
+```
+
+![Open the mounted disc and select option with terminal][33]
+
+![VirtualBox guest addition install for Windows host][34]
+
+After the above command is complete, restart Ubuntu VM.
+
+#### Enable Copy and paste between Windows and Ubuntu
+
+- To enable the copy and paste between Windows and Ubuntu systems, select `Devices > Shared Clipboard > Bi-directional` from the menu.
+
+![Enable clipboard sharing][35]
+
+#### Shutting down Ubuntu VM
+
+- Ideally, you should shut down a VM from its own power off menu. However, you can also shut down from the main VirtualBox window. Right-click on the VM name and select `Close > Poweroff`.
+
+![Poweroff Virtual machine][36]
+
+#### How to delete Ubuntu and remove all data
+
+- If you want to delete the Virtual machine entirely (.e.g. Ubuntu) and its data, select `Remove` and `delete all files`.
+
+![Select remove to delete a VM][37]
+
+![Select the delete options][38]
+
+### Close notes
+
+In this tutorial, you learned the easiest way to install Ubuntu on Windows (10 or 11) using VirtualBox. Also, you learned several post-install basic steps to configure the Ubuntu VM. You can use the above steps for any other Linux distributions in VirtualBox.
+
+Feel free to comment below if you have any problems or questions.
+
+[Next:How to Install Python on Windows [Beginner’s Guide]][39]
+
+[_Using Mastodon? Follow us at floss.social/@debugpoint_][40]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/tag/virtualbox
+[2]: https://www.debugpoint.com#presteps
+[3]: https://www.debugpoint.com#download-items
+[4]: https://www.debugpoint.com#install-virtualbox
+[5]: https://www.debugpoint.com#install-ubuntu
+[6]: https://www.debugpoint.com#post-install-steps
+[7]: https://ubuntu.com/download/desktop
+[8]: https://www.virtualbox.org/wiki/Downloads
+[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/Download-location-for-VirtualBox-for-Windows.jpg
+[10]: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
+[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Download-the-dependency-for-VirtualBox.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-the-dependency-for-VirtualBox.jpg
+[13]: https://www.python.org/downloads/windows/
+[14]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-VirtualBox-from-start-menu.jpg
+[15]: https://www.debugpoint.com/virtualbox-id-password/
+[16]: https://www.debugpoint.com/wp-content/uploads/2023/01/Click-on-New.jpg
+[17]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-the-ISO-file.jpg
+[18]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Hardware.jpg
+[19]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Hard-Disk.jpg
+[20]: https://www.debugpoint.com/wp-content/uploads/2023/01/Boot-Ubuntu-in-VirtualBox.jpg
+[21]: https://www.debugpoint.com/wp-content/uploads/2023/01/1-Select-Try-Ubuntu.jpg
+[22]: https://www.debugpoint.com/wp-content/uploads/2023/01/2-Ubuntu-LIVE-desktop-1.jpg
+[23]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Language.jpg
+[24]: https://www.debugpoint.com/wp-content/uploads/2023/01/4-Select-Keybaord-Layout.jpg
+[25]: https://www.debugpoint.com/wp-content/uploads/2023/01/5-Select-install-options.jpg
+[26]: https://www.debugpoint.com/wp-content/uploads/2023/01/6-Installation-Type.jpg
+[27]: https://www.debugpoint.com/wp-content/uploads/2023/01/7-Write-changes-to-disk.jpg
+[28]: https://www.debugpoint.com/wp-content/uploads/2023/01/8-User-account-creation.jpg
+[29]: https://www.debugpoint.com/wp-content/uploads/2023/01/10-Ubuntu-Installation-is-complete.jpg
+[30]: https://www.debugpoint.com/wp-content/uploads/2023/01/11-Log-on-to-Ubuntu.jpg
+[31]: https://www.debugpoint.com/wp-content/uploads/2023/01/12-Ubuntu-running-in-Windows-using-Virtualbox-2048x1280.jpg
+[32]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-Guest-addition-from-the-menu.jpg
+[33]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-the-mounted-disc-and-select-option-with-terminal.jpg
+[34]: https://www.debugpoint.com/wp-content/uploads/2023/01/VirtualBox-guest-addition-install-for-Windows-host.jpg
+[35]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-clipboard-sharing.jpg
+[36]: https://www.debugpoint.com/wp-content/uploads/2023/01/Poweroff-Virtual-machine.jpg
+[37]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-remove-to-delete-a-VM.jpg
+[38]: https://www.debugpoint.com/wp-content/uploads/2023/01/Select-the-delete-options.jpg
+[39]: https://www.debugpoint.com/install-python-windows/
+[40]: https://floss.social/@debugpoint
From 2c71feb257aa99f5bb622525ad6e640394e15ba2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 14 Jan 2023 11:21:09 +0800
Subject: [PATCH 252/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230113.0=20=E2=AD=90=EF=B8=8F=20How=20to=20Install?=
=?UTF-8?q?=20Python=20on=20Windows=20[Beginner=E2=80=99s=20Guide].md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...nstall Python on Windows [Beginner’s Guide].md | 147 ++++++++++++++++++
1 file changed, 147 insertions(+)
create mode 100644 sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md
diff --git a/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md b/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md
new file mode 100644
index 0000000000..18a3b824f8
--- /dev/null
+++ b/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md
@@ -0,0 +1,147 @@
+[#]: subject: "How to Install Python on Windows [Beginner’s Guide]"
+[#]: via: "https://www.debugpoint.com/install-python-windows/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Install Python on Windows [Beginner’s Guide]
+======
+
+**This simple guide demonstrates how to download and install Python on Windows.**
+
+This article is tested with the latest Python 3.11 stable version.
+
+Before you learn how to install Python on Windows, you might want to check how you can [install it easily][1] on Linux distributions such as Ubuntu. It’s better to try Python in Linux if you are planning to be a developer. That being said, you might want to check [how to install Linux (such as Ubuntu) alongside Windows][2].
+
+Python is a popular general-purpose programming language which becomes the developer’s choice in the past decade. And its popularity is increasing every day. it is widely used for web development, complex systems, data science, machine learning and all areas of science.
+
+There are two versions of Python that you may come across. Python2 is currently out of support. And the Python3 series is the ongoing support release.
+
+### Check whether Python is installed
+
+Before you install it on Windows, you should check whether it is already installed. In general, it should not be installed, unlike in Ubuntu (and other Linux distributions), where Python comes pre-installed.
+
+From the start menu, open “command prompt”.
+
+And type the following:
+
+```
+python --version
+```
+
+If Python is available, it will show you a message with the version details.
+
+### Download and Install Python
+
+Open the below official Python download page.
+
+[Download Python][3]
+
+![How to locate Python set up][4]
+
+At the top, you should see the current stable version. Click on the download link. If you are looking for any specific version, scroll down on this page and download the specific version under the label “Python releases by version number:”.
+
+After downloading, go to the Downloads folder and run the setup.
+
+Follow the on-screen instructions to install it.
+
+![Install Python step 1][5]
+
+![Install Python step 2][6]
+
+After installation is complete, verify the Python version.
+
+### Verify Python Version
+
+From the start menu, open “command prompt” and run the following command.
+
+```
+python --version
+```
+
+![Python version on Windows][7]
+
+You should see your system’s currently installed version of the Python package. Alternatively, you can also run below to get a Python interactive shell.
+
+```
+python
+```
+
+You can exit the shell using CTRL+Z and Enter.
+
+### Check PATH Variables
+
+You should check the system variable PATH with the Python executable location. This should be updated automatically using the installer.
+
+From the start menu, search “system variables” and open it.
+
+![Open Environment variable Settings][8]
+
+In the System Properties Dialog, click on `Advanced > Environment Variables`. Under the user variables section against the Path variable, check whether the Python installed location is present. Refer to the below image for a guideline.
+
+If you see all the path is present, you are all set to run your Python project.
+
+![Check Python Environment PATH Values in Windows][9]
+
+### Create and run your first Python program
+
+For an additional step, here’s how you can code & run your first Python program. You should ideally use any [recommended Python editor][10] to write your program.
+
+Here’s a simple program which outputs the text “debugpoint.com” in the console.
+
+```
+# Sample Python program
+print("debugpoint.com")
+```
+
+Save the file with any name. Here I have saved it as “hello.py” in E drive. The .py is the extension of Python source codes.
+
+To run this program, open a command prompt and execute below inside E drive.
+
+```
+python hello.py
+```
+
+**Output:**
+
+![Running a simple Python program in Windows][11]
+
+### Closing Notes
+
+I hope this simple beginner’s guide helps you to install Python in Windows, verify the installation and run your first program.
+
+Please let me know if you run into issues in the comment box below.
+
+[Next:Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt)][12]
+
+[_Using Mastodon? Follow us at floss.social/@debugpoint_][13]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/install-python-windows/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/install-python-3-11-ubuntu/
+[2]: https://www.debugpoint.com/complete-guide-how-dual-boot-ubuntu-windows/
+[3]: https://www.python.org/downloads/
+[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/How-to-locate-Python-set-up.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-Python-step-1.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Install-Python-step-2.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Python-version-on-Windows.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-Environment-variable-Settings.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/Check-Python-Environment-PATH-Values-in-Windows.jpg
+[10]: https://www.debugpoint.com/5-best-python-ide-code-editor/
+[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Running-a-simple-Python-program-in-Windows.jpg
+[12]: https://www.debugpoint.com/share-folder-virt-manager/
+[13]: https://floss.social/@debugpoint
From aab63ae6fbdeb47724d56ec487dc361bf257b453 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 14 Jan 2023 11:21:56 +0800
Subject: [PATCH 253/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?news]:=2020230113.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Ma?=
=?UTF-8?q?stodon's=20Growth=20Continues,=20Medium=20Joins=20in=20With=20i?=
=?UTF-8?q?ts=20New=20Community=20Platform.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...Medium Joins in With its New Community Platform.md | 102 ++++++++++++++++++
1 file changed, 102 insertions(+)
create mode 100644 sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
diff --git a/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md b/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
new file mode 100644
index 0000000000..25062e4310
--- /dev/null
+++ b/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
@@ -0,0 +1,102 @@
+[#]: subject: "Mastodon's Growth Continues, Medium Joins in With its New Community Platform"
+[#]: via: "https://news.itsfoss.com/medium-mastodon/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Mastodon's Growth Continues, Medium Joins in With its New Community Platform
+======
+
+Another win for Mastodon's adoption! Medium launches an instance for its users.
+
+![Mastodon's Growth Continues, Medium Joins in With its New Community Platform][1]
+
+Mastodon's growth in recent times has been massive; more and more people are switching to this Twitter alternative than ever before.
+
+If you are not familiar with Mastodon, it is one of the [best mainstream social media alternatives][2] out there, potentially as a replacement for Twitter, which is **completely open-source and decentralized**.
+
+With constant changes to Twitter and last year's takeover by Elon Musk, more users have taken a keen interest in Mastodon as a platform.
+
+Vivaldi [recently launched][3] its Mastodon-powered community, and [Mozilla Foundation][4] is also considering something similar.
+
+Now, [**Medium**][5] has taken a step forward by launching a Mastodon instance.
+
+**Suggested Read 📖**
+
+### Medium Starts a Mastodon-Powered Community
+
+In a [recent announcement][6], Medium launched its Mastodon instance at [me.dm][7], focusing on “_helping their authors, publications, and readers find a home in the Fediverse_”.
+
+The website (or Mastodon instance) aims to be a **dedicated space** for the **users of Medium.**
+
+![mastodon medium instance][8]
+
+In other words, itwill be an exclusive social network platform for Medium users.
+
+With the web platform, they are also venturing into short-form writing of 500 characters or less.
+
+The **CEO of Medium** mentions:
+
+> By contrast, Mastodon is primarily for short-form writing of 500 characters or less. Not to be overly punny: Today we are extending what we do into the short-form medium (lowercase m) with an instance on Mastodon, me.dm. Aside from being short-form, Mastodon also brings an important innovation around the concept of federation.
+
+So, it looks like Medium is testing the waters and trying something new.
+
+Probably a good thing for users who prefer bite-sized content instead of lengthy information.
+
+It can work out well for them if done correctly.
+
+**So, how can you join Medium's Mastodon platform?**
+
+> 💡 You see, initially, **only select authors and publications** will be given access to this Mastodon instance.Existing Medium users can try sending a [sign-up request][9], subject to their approval.
+
+So, if you send a signup request, you will have to wait for approval.
+
+They also **plan to invite writers and readers as an additional service****within their paid membership**.
+
+They are already working on a '**sign-up with Medium**' option for their Mastodon instance, which is supposed to make it easy to get started.
+
+On this, they mention that:
+
+> With so many Mastodon instances to choose from, we plan for me.dm to have a few important benefits out of the gate: reliable infrastructure and moderation, a short domain name to make sharing your username easier, better onboarding for new users, and an interesting local feed.
+
+Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][10]Unlocator![][11]
+
+### Decentralized and Open-Source Platforms Picking Up Pace
+
+Decentralized platforms are becoming more popular than one would have expected a decade ago.
+
+The big contributing factor is the number of volatile changes/decisions taken by big tech companies forcing users to constantly adjust how/why they interact on a social media platform.
+
+With an open-source and decentralized platform, users get transparency, more data control, and more freedom.
+
+We may not have expected Mastodon as a platform to gradually become an essential part of community building for various organizations. So, it will be exciting to see what else we have in store for the near future.
+
+💭 _Feel free to share your thoughts in the comments below._
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/medium-mastodon/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/medium-embraces-mastodon.png
+[2]: https://itsfoss.com/mainstream-social-media-alternaives/
+[3]: https://news.itsfoss.com/vivaldi-mastodon-integration/
+[4]: https://blog.mozilla.org/en/mozilla/mozilla-launch-fediverse-instance-social-media-alternative/
+[5]: https://medium.com
+[6]: https://blog.medium.com/medium-embraces-mastodon-19dcb873eb11
+[7]: https://me.dm/
+[8]: https://news.itsfoss.com/content/images/2023/01/medium-mastodon.jpg
+[9]: https://me.dm/auth/sign_up
+[10]: https://unlocator.com/favicon.ico
+[11]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg
From d023e85129d29e939754cac6924179e3eee41743 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 14 Jan 2023 11:22:39 +0800
Subject: [PATCH 254/266] =?UTF-8?q?Update=2020230113.1=20=E2=AD=90?=
=?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Mastodon's=20Growth=20Continues,?=
=?UTF-8?q?=20Medium=20Joins=20in=20With=20its=20New=20Community=20Platfor?=
=?UTF-8?q?m.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...Growth Continues, Medium Joins in With its New Community Platform.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md b/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
index 25062e4310..9aa57be8a4 100644
--- a/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
+++ b/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
@@ -24,8 +24,6 @@ Vivaldi [recently launched][3] its Mastodon-powered community, and [Mozilla Foun
Now, [**Medium**][5] has taken a step forward by launching a Mastodon instance.
-**Suggested Read 📖**
-
### Medium Starts a Mastodon-Powered Community
In a [recent announcement][6], Medium launched its Mastodon instance at [me.dm][7], focusing on “_helping their authors, publications, and readers find a home in the Fediverse_”.
From 154105b0b28985b0499bdd983a35ba15d78d0fd8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sat, 14 Jan 2023 11:23:38 +0800
Subject: [PATCH 255/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230113.2=20=E2=AD=90=EF=B8=8F=20Share=20Folder=20Bet?=
=?UTF-8?q?ween=20Guest=20and=20Host=20in=20virt-manager=20(KVMQemulibvirt?=
=?UTF-8?q?).md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...t and Host in virt-manager (KVMQemulibvirt).md | 110 ++++++++++++++++++
1 file changed, 110 insertions(+)
create mode 100644 sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md
diff --git a/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md
new file mode 100644
index 0000000000..64e6ac7831
--- /dev/null
+++ b/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md
@@ -0,0 +1,110 @@
+[#]: subject: "Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt)"
+[#]: via: "https://www.debugpoint.com/share-folder-virt-manager/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Share Folder Between Guest and Host in virt-manager (KVM/Qemu/libvirt)
+======
+
+**In this guide, you will learn how to share a folder between host and guest in virt-manager using KVM, QEMU and libvirt.**
+
+The [virt-manager][1] application or package uses the [libvirt][2] library to provide virtual machine management services. It has a desktop interface that helps to create, delete, and manage multiple virtual machines.
+
+The virt-manager desktop interface and its components provide flexible virtual machine management services for various personal and business use cases. it is a free and open-source application primarily used for KVM virtual machines. However, it can also support other hypervisors such as Xen and LXC.
+
+In the earlier article, I explained [how to create a virtual machine using virt-manager][3]. This article covers how you can seamlessly access files and folders between guest and host virtual machines.
+
+### A note about virtiofs
+
+The sharing files and folders are powered by the libvirt shared file system called virtiofs. It provides all the features and parameters to access the directory tree on the host machine. Since most of the virt-manager virtual machine configurations are translated to XML, the share files/folders can also be specified by the XML file.
+
+### Share folder in virt-manager
+
+- First, make sure your guest virtual machine is powered off. From the virt-manager GUI, select the virtual machine and click on Open to pull up the console settings.
+
+![Open the settings][4]
+
+- Click on the icon which says show virtual hardware details in the toolbar. And then click on **Memory** on the left panel.
+- Select the option “**Enable shared memory**“. Click Apply.
+
+![Enable the shared memory option][5]
+
+- And then click “Add hardware” at the bottom.
+
+![Click on add hardware][6]
+
+- Select **File system** from the left panel in the add new hardware window.
+- Then select **Driver=virtiofs** in the details tab. Click on `browse > browse local` and **select the host path** you want to access inside the guest VM.
+- In the target path, mention any name you want. It’s just a file tag which will be used during mount.
+- So, if I want to access the Pictures/Screenshots folder (`/home/debugpoint/Pictures/Screenshots`), sample settings could be the following:
+
+![Add a new file system hardware][7]
+
+The XML settings are below for the above configuration. You can find it in the XML tab.
+
+```
+
+
+
+
+
+
+
+
+```
+
+Click on Finish. In the main virt-manager window, right-click on the VM and click Run to start the virtual machine. Make sure to click on the “show the graphical console” (monitor icon in the toolbar – if the VM is not showing.
+
+In the guest machine, create a folder where you want to mount the host folder. For this example, I have used /mnt/pictures.
+
+```
+sudo mkdir /mnt/pictures
+```
+
+And finally, mount the host folder using the tag you created in the above step to this new folder. Use the following command to do that from the terminal. Ensure to change the tag and folder name in the below command as your system.
+
+```
+sudo mount -t virtiofs mount_tag_pictures /mnt/pictures
+```
+
+Now you can browse the folders and add/delete items seamlessly in virt-manager between host and guest.
+
+![Access host files from virt-manager guest][8]
+
+### Wrapping Up
+
+I hope this solution helps you to access host files and folders from the guest machine. Remember, your user Id, which is used to launch the virt-manager app, should have the same access to the host folder.
+
+If you run into any errors, the above guide helped you drop a note below.
+
+_[Reference][9]_
+
+[_Using Mastodon? Follow us at floss.social/@debugpoint_][10]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/share-folder-virt-manager/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://virt-manager.org/
+[2]: https://libvirt.org/manpages/libvirtd.html
+[3]: https://www.debugpoint.com/virt-manager/
+[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/Open-the-settings.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-the-shared-memory-option.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Click-on-add-hardware.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-new-file-system-hardware.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Access-host-files-from-virt-manager-guest.jpg
+[9]: https://libvirt.org/kbase/virtiofs.html
+[10]: https://floss.social/@debugpoint
From 7523da2825e664c593a28992421f077aa68b6ea6 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 14 Jan 2023 16:45:15 +0800
Subject: [PATCH 256/266] RP
@geekpi
https://linux.cn/article-15442-1.html
---
...0102.0 ⭐️ How to read and write files in Rust.md | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
rename {translated/tech => published}/20230102.0 ⭐️ How to read and write files in Rust.md (93%)
diff --git a/translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md b/published/20230102.0 ⭐️ How to read and write files in Rust.md
similarity index 93%
rename from translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md
rename to published/20230102.0 ⭐️ How to read and write files in Rust.md
index 4a0453ae31..096f1282e4 100644
--- a/translated/tech/20230102.0 ⭐️ How to read and write files in Rust.md
+++ b/published/20230102.0 ⭐️ How to read and write files in Rust.md
@@ -3,13 +3,17 @@
[#]: author: "Stephan Avenwedde https://opensource.com/users/hansic99"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15442-1.html"
如何在 Rust 中读取和写入文件
======
+> 跟随这个演示,学习如何在 Rust 中使用文件系统模块。
+
+![][0]
+
知道如何读写文件对各种用途都很有用。在 Rust 中,这项任务是通过标准库中的文件系统模块([std::fs][1])完成的。在这篇文章中,我将向你介绍如何使用这个模块。
为了演示这项任务,我准备了一些示例代码,也可以在 [GitHub][2] 上找到。
@@ -92,7 +96,7 @@ via: https://opensource.com/article/23/1/read-write-files-rust
作者:[Stephan Avenwedde][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@@ -109,3 +113,4 @@ via: https://opensource.com/article/23/1/read-write-files-rust
[9]: https://doc.rust-lang.org/std/fs/struct.OpenOptions.html#
[10]: https://doc.rust-lang.org/std/fs/fn.read.html
[11]: https://doc.rust-lang.org/std/io/trait.Read.html
+[0]: https://opensource.com/sites/default/files/lead-images/rust_programming_crab_sea.png
\ No newline at end of file
From b34270be7f6d082ed1c625c1a8c8b210af5da22a Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 14 Jan 2023 17:26:42 +0800
Subject: [PATCH 257/266] ATRP
@wxy
https://linux.cn/article-15443-1.html
---
...tions for Ubuntu and Other Linux [2022 Edition].md | 188 ++++++++++++++++++
...tions for Ubuntu and Other Linux [2022 Edition].md | 185 -----------------
2 files changed, 188 insertions(+), 185 deletions(-)
create mode 100644 published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md
delete mode 100644 sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md
diff --git a/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md b/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md
new file mode 100644
index 0000000000..e1d6d665d5
--- /dev/null
+++ b/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md
@@ -0,0 +1,188 @@
+[#]: subject: "Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition]"
+[#]: via: "https://www.debugpoint.com/live-streaming-applications-linux-2022/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15443-1.html"
+
+适用于 Linux 的五大流媒体直播应用
+======
+
+![][0]
+
+> 本文列出了 Linux 上的五大流媒体直播应用,包括了它们的功能、亮点、下载详情和对比。
+
+现在是为你的业务纳入在线视频内容的最佳时机。为什么?因为研究表明,全球在线视频市场正以每年约 20% 的速度增长。
+
+而且,由于开发者们提供的一些优秀软件,任何人都可以轻松地创建视频内容,并在 YouTube 和 Twitch 等几个流行的平台上传播。如果你仔细想想,你会发现如今你在网上观看的视频内容比基于文本的内容更多。
+
+因此,在这篇文章中,我们将列出一些适用于 Ubuntu 和其他 Linux 的免费软件,这些软件很容易用于为你和你的企业创建超级有趣的流媒体内容。
+
+### Linux 的五大流媒体直播应用
+
+#### OBS Studio
+
+本列表中的第一个免费应用程序是 OBS Studio(即 Open Broadcaster Software)。它是一个具有屏幕广播功能的流媒体直播应用程序,可用于 Linux、Windows 和 macOS。
+
+出于几个原因,OBS Studio 是这个名单上最好的一个。它内置了编码,支持 RTMP 广播、多源、网络摄像头、绿屏、捕捉卡和你的应用程序窗口。
+
+其用户界面相当简单明了,功能丰富。你可以从第三方开发的插件中获得帮助,以扩展其功能,例如,在直播时将 Twitter 上的实时推文混入你的流媒体。不过,OBS 不支持多比特率流媒体。
+
+![OBS Studio - 适用于Linux的直播应用程序][1]
+
+如何安装:
+
+OBS Studio 可以在所有 Linux 发行版的官方软件库中找到。详细的安装说明见下面的链接。
+
+> **[下载 OBS Studio][2]**
+
+更多信息:
+
+- [主页][3]
+- [文档][4]
+
+#### VokoscreenNG
+
+我们将在这个列表中介绍的第二个应用程序是 VokoscreenNG。它复刻了已停止的 Vokoscreen 项目。这个新的应用程序完全用 Qt 和 GStreamer 库编写。它可以记录你的屏幕,并接受多个音频源和视频源。VokoscreenNG 的工具箱也相当引人注目。它包括一个放大镜、计时器、系统托盘插件,可以简化你的工作流程。
+
+它可以免费用于 Linux 和 Windows。
+
+![vokoscreenNG - 适用于Linux的流媒体直播应用程序][5]
+
+如何安装:
+
+你可以从下面的链接下载用于 Linux 系统的压缩可执行文件。下载后,将其解压,然后执行二进制文件来启动该应用程序。
+
+记住,这个应用程序需要在你的 Linux 系统中安装 X11、PulseAudio 和 GStreamer 插件才能工作。如果你使用的是带有 Wayland 和 Pipewire 声音服务器的现代 Linux 系统(例如 Fedora),这个应用程序可能无法工作。
+
+> **[下载 VokoscreenNG][6]**
+
+更多信息:
+
+- [主页][7]
+
+#### Restreamer
+
+Restreamer 应用程序可以让你直接在你的网站上直播视频和截屏,而无需任何流媒体服务商。也可以用这个应用程序使用流行的流媒体解决方案,如 YouTube、Twitch等。
+
+这个应用程序功能丰富,有一个不错的功能列表。下面是对其功能的快速介绍:
+
+- 支持 H.264 流媒体
+- 内置 HTML5 视频播放
+- 可用于 Linux、macOS、Windows 和 Docker 镜像
+- 支持你自己的网站和 YouTube、Twitchm、Facebook、Vimeo、Wowza 等。
+- 支持多个视频源:[网络摄像机][8]、USB 摄像机或任何 H.2645 流媒体
+- 编码和音频源支持
+- 支持 JPEG 形式的定期快照
+- 通过 JSON HTTP API 访问流状态,以便进行额外的编程
+
+![Restreamer][9]
+
+如何安装:
+
+安装 Restreamer 有点麻烦,因为它是通过 Docker 镜像发布的。你可以在下面的链接中找到在 Linux、Windows 和 MacOS 安装的说明。
+
+> **[下载 Restreamer][10]**
+
+更多信息:
+
+- [主页][11]
+- [文档][12]
+- [源代码][13]
+
+#### ffscreencast
+
+ffscreencast 是一个使用 ffmpeg 库的命令行流媒体应用程序。它利用了 ffmpeg 的强大功能,并作为它的一个封装器。尽管它是以命令行的形式出现的,但你可以直接通过终端使用其强大的功能,如多源和录音设备。它也支持多种显示设置。你还可以在你的桌面截屏上叠加你的摄像机画面。
+
+如何安装:
+
+要安装这个应用程序,你需要克隆它的 Git 代码库,然后将其内容复制到 `/bin`目录,以便全局执行 `ffscreencast` 命令。
+
+```
+git clone https://github.com/cytopia/ffscreencast
+cd ffscreencastsudo
+cp bin/ffscreencast /usr/local/bin
+```
+
+你可以在终端用 `ffscreencast` 命令来运行这个应用程序。
+
+- [源代码和主页][15]
+
+#### Open Streaming Platforms
+
+本列表中的最后一个应用是 Open Streaming Platforms(OSP),这是一个开源的 RTMP 流媒体软件,可以作为 YouTube LIVE、Twitch.tv 等的自托管替代品。
+
+![Open Streaming Platforms][14]
+
+如果使用得当,这个应用程序功能丰富且强大。因为它有以下的基本功能:
+
+- 从 Open Broadcast Software(OBS)等输入源进行 RTMP 直播。
+- 每个用户有多个频道,允许一个用户同时广播多个流,而不需要多个账户。
+- 视频流记录和按需播放。
+- 手动上传来源于 OSP 之外的 MP4 视频。
+- 视频剪辑,为值得注意的时刻创建更短的视频。
+- 频道所有者的实时聊天管理(禁止/解禁)。
+- 管理员控制的自适应流媒体。
+- 受保护的频道,只允许你想要的观众访问。
+- 实时频道,当流媒体没有直播时,继续聊天和闲逛。
+- Webhooks:通过完全可定制的 HTTP 请求将 OSP 连接到其他服务,这可以传递信息。
+- 将你的流媒体或视频直接嵌入到另一个网页中,很容易。
+- 通过 Facebook 或 Twitter 快速分享频道或视频。
+- 能够将用户界面定制为你自己的个人外观的主题
+
+如何安装:
+
+要安装 Open Streaming Platform,请按照以下页面的详细说明进行。
+
+> **[下载 Open Streaming Platform][16]**
+
+更多信息:
+
+- [主页][17]
+- [源代码][18]
+- [文档][19]
+
+### 总结
+
+可用于 Linux 的自由开源的流媒体应用程序不多。然而,有几个商业性的流媒体应用程序,它们可能会给你更多的选择、质量和支持。但正如我所说,它们可能要花费你一些钱。所以,如果你是流媒体世界的新手,你可能想从上面列出的用于 Linux 系统的免费流媒体应用程序开始。我希望这篇文章能给你一些想法,让你根据自己的需要使用,并让你开始使用。
+
+请在下面的评论栏里告诉我你最喜欢的流媒体软件。
+
+加油。
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/live-streaming-applications-linux-2022/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2022/02/OBS-Studio.jpg
+[2]: https://obsproject.com/wiki/install-instructions#linux
+[3]: https://obsproject.com/
+[4]: https://obsproject.com/wiki/Home
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/02/vokoscreenNG.jpg
+[6]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen-download.html
+[7]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html
+[8]: https://www.debugpoint.com/2018/08/onvifviewer-internet-camera-viewer-for-linux/
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/02/Restreamer.jpg
+[10]: https://datarhei.github.io/restreamer/docs/installation-index.html
+[11]: https://datarhei.github.io/restreamer/
+[12]: https://datarhei.github.io/restreamer/docs/index.html
+[13]: https://github.com/datarhei/restreamer
+[14]: https://www.debugpoint.com/wp-content/uploads/2022/02/Open-Streaming-Platform-2048x1026.jpg
+[15]: https://github.com/cytopia/ffscreencast
+[16]: https://wiki.openstreamingplatform.com/Install/Standard
+[17]: https://openstreamingplatform.com/
+[18]: https://gitlab.com/Deamos/flask-nginx-rtmp-manager
+[19]: https://wiki.openstreamingplatform.com/
+[20]: https://www.debugpoint.com/how-to-create-ubuntu-linux-os-bootable-usb-in-windows/
+[0]: https://img.linux.net.cn/data/attachment/album/202301/14/172408h1rpephh9hutsrkd.jpg
\ No newline at end of file
diff --git a/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md b/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md
deleted file mode 100644
index 93ee5ab1e4..0000000000
--- a/sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md
+++ /dev/null
@@ -1,185 +0,0 @@
-[#]: subject: "Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition]"
-[#]: via: "https://www.debugpoint.com/live-streaming-applications-linux-2022/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition]
-======
-
-**This post lists the top five live streaming applications for Ubuntu Linux with features, highlights, download details, and comparison.**
-
-It is the best time to incorporate online video content for your business. Why? Because research suggests that the global online video market is growing at a rate of ~20% per year.
-
-And thanks to some excellent software from developers, it has become easy for anyone to create video content and stream them over several popular platforms such as YouTube and Twitch. If you think about it, you see you are consuming more video content today while online than text-based content.
-
-So, in this post, we will list out some of the free software for Ubuntu and other Linux primarily that are easy to use for creating super interesting live streaming content for you and your businesses.
-
-### Top 5 Live Streaming Applications for Linux in 2022
-
-#### OBS Studio
-
-The first free application in this list is OBS Studio (also known as Open Broadcaster Software). It is a live streaming application with screencasting capabilities available for Linux, Windows and macOS.
-
-OBS Studio is the best one on this list because several reasons. The encoding is built-in, and it supports RTMP broadcasting, multiple sources, webcams, green-screen, capture cards and your application windows.
-
-The user interface is reasonably straightforward and feature-rich. You can get help from third-party developed plugins to extend their functionalities, such as – mixing live tweets from Twitter on your streaming media while live streaming. However, OBS does not support multi-bitrate streaming.
-
-![OBS Studio - Live Streaming Applications for Linux][1]
-
-**How to Install**
-
-OBS Studio is available in all Linux Distribution’s official repositories. Detailed instruction for installations is present in the below link.
-
-[Download OBS Studio][2]
-
-More Information
-
-- [Home Page][3]
-- [Documentation][4]
-
-#### VokoscreenNG
-
-The second application we would feature in this list is VokoscreenNG. It is a fork of the discontinued Vokoscreen project. The new application is entirely written in Qt with the GStreamer library. It can record your screen and accept multiple audio and video sources. VokoscreenNG’s toolbox is also quite impressive. It includes a magnifying glass, timer, system tray plugins that ease up your workflow.
-
-It is available for Linux and Windows for free.
-
-![vokoscreenNG - Live Streaming Applications for Linux][5]
-
-**How to Install**
-
-You can download the compressed executable from the below link for Linux systems. Once downloaded, extract them. Then execute the binary to launch the application.
-
-Remember, this application requires X11, PulseAudio and GStreamer plugins installed in your Linux system to work. If you use a modern Linux system with Wayland and Pipewire sound server (e.g. Fedora), this application may not work.
-
-[Download VokoscreenNG][6]
-
-**More Information**
-
-- [Home page][7]
-
-#### Restreamer
-
-The Restreamer application lets you live stream videos and screencasts directly to your website without any streaming provider. It is also possible to use popular streaming solutions, such as YouTube, Twitch, etc., with this application.
-
-This application is feature-rich and comes with a fair list of features. Here’s a quick peek at its features:
-
-- H.264 streaming support
-- Built-in HTML5 video play
-- Available for Linux, macOS, Windows and as Docker images
-- Supports your own website plus YouTube, Twitchm, Facebook, Vimeo, Wowza and more
-- Multiple video source support – [IP Camera][8], USB Cameram or any H.2645 streams
-- Encoding and Audio source support
-- Snapshots as form of JPEG support in regular interval
-- Access stream status via JSON HTTP API for additional programming
-
-![Restreamer][9]
-
-**How to Install**
-
-The installation of Restreamer is a little tricky because it’s distributed via Docker images. You can find the instructions to install Linux, Windows, and macOS on the below link.
-
-[Download Restreamer][10]
-
-**More Information**
-
-- [Home Page][11]
-- [Documentation][12]
-- [Source Code][13]
-
-#### ffscreencast
-
-The ffscreencast is a command-line streaming application that uses the ffmpeg library. It leverages the power of ffmpeg and acts as a wrapper for it. Although it is available as a command line, you can use its powerful features, such as multiple sources and recordings devices, directly via the terminal. It supports multiple display setups as well. You can also overlay your camera feed on top of your desktop screencast.
-
-![Open Streaming Platform - - Live Streaming Applications for Linux][14]
-
-**How to Install**
-
-To install this application, you need to clone the git repo and then copy the contents to /bin directory for the global execution of the `ffscreencast` command.
-
-```
-git clone https://github.com/cytopia/ffscreencastcd ffscreencastsudo cp bin/ffscreencast /usr/local/bin
-```
-
-You can run this application with `ffscreencast` command from the terminal.
-
-[Source code & Home page][15]
-
-#### Open Streaming platforms
-
-The final application in this list is Open Streaming Platform (OSP), an open-source RTMP streamer software that can act as a self-hosted alternative to YouTube LIVE, Twitch.tv, etc.
-
-This application is feature-rich and powerful when used correctly. Because of the below essential features:
-
-- RTMP Streaming from an input source like Open Broadcast Software (OBS).
-- Multiple Channels per User, allowing a single user to broadcast multiple streams simultaneously without needing multiple accounts.
-- Video Stream Recording and On-Demand Playback.
-- Manual Video Uploading of MP4s that are sourced outside of OSP
-- Video Clipping – Create Shorter Videos of Notable Moments
-- Real-Time Chat Moderation by Channel Owners (Banning/Unbanning)
-- Admin-Controlled Adaptive Streaming
-- Protected Channels – Allow Access only to the audience you want.
-- Live Channels – Keep chatting and hang out when a stream isn’t on
-- Webhooks – Connect OSP to other services via fully customizable HTTP requests, which will pass information
-- Embed your stream or video directly into another web page easily
-- Share channels or videos via Facebook or Twitter quickly
-- Ability to Customize the UI as a Theme for your own personal look
-
-**How to Install**
-
-To install the Open Streaming Platform, follow the below page for detailed instructions.
-
-[Download Open Streaming Platform][16]
-
-**More Information**
-
-- [Home Page][17]
-- [Source Code][18]
-- [Documentation][19]
-
-### Closing Notes
-
-There are very few free and open-source live streaming applications available for Linux. However, several commercial live streaming applications are available, which may give you more options, quality, and support. But as I said, they may cost you some bucks. So, if you are new to the streaming world, you may want to get started with the above-listed free live streaming applications in Ubuntu or other Linux systems. I hope this article gives you ideas about which to use based on your need and get you started.
-
-Let me know your favourite live streaming software in the comment box below.
-
-Cheers.
-
-[Next:How to Create Ubuntu, Linux OS Bootable USB in Windows][20]
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/live-streaming-applications-linux-2022/
-
-作者:[Arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.debugpoint.com/author/admin1/
-[b]: https://github.com/lkxed
-[1]: https://www.debugpoint.com/wp-content/uploads/2022/02/OBS-Studio.jpg
-[2]: https://obsproject.com/wiki/install-instructions#linux
-[3]: https://obsproject.com/
-[4]: https://obsproject.com/wiki/Home
-[5]: https://www.debugpoint.com/wp-content/uploads/2022/02/vokoscreenNG.jpg
-[6]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen-download.html
-[7]: https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html
-[8]: https://www.debugpoint.com/2018/08/onvifviewer-internet-camera-viewer-for-linux/
-[9]: https://www.debugpoint.com/wp-content/uploads/2022/02/Restreamer.jpg
-[10]: https://datarhei.github.io/restreamer/docs/installation-index.html
-[11]: https://datarhei.github.io/restreamer/
-[12]: https://datarhei.github.io/restreamer/docs/index.html
-[13]: https://github.com/datarhei/restreamer
-[14]: https://www.debugpoint.com/wp-content/uploads/2022/02/Open-Streaming-Platform-2048x1026.jpg
-[15]: https://github.com/cytopia/ffscreencast
-[16]: https://wiki.openstreamingplatform.com/Install/Standard
-[17]: https://openstreamingplatform.com/
-[18]: https://gitlab.com/Deamos/flask-nginx-rtmp-manager
-[19]: https://wiki.openstreamingplatform.com/
-[20]: https://www.debugpoint.com/how-to-create-ubuntu-linux-os-bootable-usb-in-windows/
From 7d33d74cbc9e7c413c8ccd85e0e6d061675497dc Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sat, 14 Jan 2023 17:35:05 +0800
Subject: [PATCH 258/266] R
---
...ming Applications for Ubuntu and Other Linux [2022 Edition].md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md b/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md
index e1d6d665d5..47892e9284 100644
--- a/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md
+++ b/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md
@@ -108,13 +108,13 @@ cp bin/ffscreencast /usr/local/bin
你可以在终端用 `ffscreencast` 命令来运行这个应用程序。
-- [源代码和主页][15]
+> **[源代码和主页][15]**
-#### Open Streaming Platforms
+#### Open Streaming Platform
-本列表中的最后一个应用是 Open Streaming Platforms(OSP),这是一个开源的 RTMP 流媒体软件,可以作为 YouTube LIVE、Twitch.tv 等的自托管替代品。
+本列表中的最后一个应用是 Open Streaming Platform(OSP),这是一个开源的 RTMP 流媒体软件,可以作为 YouTube LIVE、Twitch.tv 等的自托管替代品。
-![Open Streaming Platforms][14]
+![Open Streaming Platform][14]
如果使用得当,这个应用程序功能丰富且强大。因为它有以下的基本功能:
From fc9f60248667cd6e1cb175afffa9d7006437cee5 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 15 Jan 2023 10:55:18 +0800
Subject: [PATCH 259/266] ATRP
@wxy
https://linux.cn/article-15445-1.html
---
...Medium Joins in With its New Community Platform.md | 98 +++++++++++++++++
...Medium Joins in With its New Community Platform.md | 100 ------------------
2 files changed, 98 insertions(+), 100 deletions(-)
create mode 100644 published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
delete mode 100644 sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
diff --git a/published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md b/published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
new file mode 100644
index 0000000000..e3b3fc4b28
--- /dev/null
+++ b/published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
@@ -0,0 +1,98 @@
+[#]: subject: "Mastodon's Growth Continues, Medium Joins in With its New Community Platform"
+[#]: via: "https://news.itsfoss.com/medium-mastodon/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15445-1.html"
+
+Mastodon 继续增长,Medium 的新社区平台也加入了
+======
+
+> Mastodon 的又一次胜利!Medium 为其用户推出了一个 Mastodon 实例。
+
+![][1]
+
+Mastodon 在最近一段时间的增长是巨大的;越来越多的人正在转向这个 Twitter 的替代品。
+
+如果你不熟悉 Mastodon,它是目前 [最好的主流社交媒体替代品][2] 之一,有可能成为 Twitter 的替代品,它是 **完全开源和去中心化的**。
+
+随着 Twitter 的不断发生变化和去年埃隆·马斯克对它的收购,更多的用户开始对 Mastodon 这个平台产生了浓厚的兴趣。
+
+Vivaldi [最近推出了][3] 其由 Mastodon 驱动的社区,[Mozilla 基金会][4] 也在考虑类似的东西。
+
+现在,[Medium][5] 已经向前迈出了一步,推出了它们的 Mastodon 实例。
+
+### Medium 启动了一个由 Mastodon 驱动的社区
+
+在 [最近的公告][6] 中,Medium 在 [me.dm][7] 推出了其 Mastodon 实例,专注于 “帮助他们的作者、出版物和读者在 联盟宇宙Fediverse 中找到一个家”。
+
+该网站(即 Mastodon 实例)旨在成为 Medium 的用户的专属空间。
+
+![][8]
+
+换句话说,它将成为 Medium 用户的专属社交网络平台。
+
+有了这个网络平台,他们也可以开始进行 500 字以内的短文写作了。
+
+Medium 的 CEO 提到:
+
+> 相比之下,Mastodon 主要是为 500 字以内的短文写作服务的。用一个不太双关的说法:今天,我们正在借助 Mastodon 上的实例(me.dm)将我们用于发表长文的 Medium 扩展到短文 medium(小写 m)。除了更简短的形式外,Mastodon 还带来了围绕联盟概念的重要创新。
+
+因此,看起来 Medium 正在试水和尝试新的东西。
+
+对于那些喜欢一目了然的内容而不是冗长信息的用户来说,可能是一件好事。
+
+如果操作得当,这对他们来说会有很好的效果。
+
+**那么,你怎样才能加入 Medium 的 Mastodon 平台?
+
+> 💡 你看,最初,**只有选定的作者和出版物** 才能进入这个 Mastodon 实例。现有的 Medium 用户可以尝试发送一个 [注册请求][9],但要经过他们的批准。
+
+因此,如果你发送一个注册请求,你得等待批准。
+
+他们还计划作为付费会员的额外服务来邀请作家和读者。
+
+他们已经在为他们的 Mastodon 实例开发一个 “用 Medium 注册” 的选项,这应该是为了让你更容易开始使用。
+
+关于这一点,他们提到:
+
+> 有这么多的 Mastodon 实例可供选择,我们计划让 me.dm 一开始就有几个重要的好处:可靠的基础设施和审核,一个短域名让你更容易分享你的用户名,为新用户提供更好的入门培训,以及一个有趣的本地信息源。
+
+### 去中心化和开源平台的步伐加快了
+
+去中心化的平台正在变得比人们十年前预期的更加流行。
+
+最大的促成因素是大型科技公司越来越多的不稳定的变化和决定,迫使用户不断调整他们在社交媒体平台上的互动方式和理由。
+
+有了开源和去中心化的平台,用户得到了透明度,更多的数据控制,以及更多的自由。
+
+我们可能没有想到,Mastodon 作为一个平台,逐渐成为各种组织的社区建设的一个重要组成部分。因此,我们非常期待在不久的将来看到更多变化。
+
+💭 欢迎在下面的评论中分享你的想法。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/medium-mastodon/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/medium-embraces-mastodon.png
+[2]: https://itsfoss.com/mainstream-social-media-alternaives/
+[3]: https://news.itsfoss.com/vivaldi-mastodon-integration/
+[4]: https://blog.mozilla.org/en/mozilla/mozilla-launch-fediverse-instance-social-media-alternative/
+[5]: https://medium.com
+[6]: https://blog.medium.com/medium-embraces-mastodon-19dcb873eb11
+[7]: https://me.dm/
+[8]: https://news.itsfoss.com/content/images/2023/01/medium-mastodon.jpg
+[9]: https://me.dm/auth/sign_up
+[10]: https://unlocator.com/favicon.ico
+[11]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg
diff --git a/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md b/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
deleted file mode 100644
index 9aa57be8a4..0000000000
--- a/sources/news/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md
+++ /dev/null
@@ -1,100 +0,0 @@
-[#]: subject: "Mastodon's Growth Continues, Medium Joins in With its New Community Platform"
-[#]: via: "https://news.itsfoss.com/medium-mastodon/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Mastodon's Growth Continues, Medium Joins in With its New Community Platform
-======
-
-Another win for Mastodon's adoption! Medium launches an instance for its users.
-
-![Mastodon's Growth Continues, Medium Joins in With its New Community Platform][1]
-
-Mastodon's growth in recent times has been massive; more and more people are switching to this Twitter alternative than ever before.
-
-If you are not familiar with Mastodon, it is one of the [best mainstream social media alternatives][2] out there, potentially as a replacement for Twitter, which is **completely open-source and decentralized**.
-
-With constant changes to Twitter and last year's takeover by Elon Musk, more users have taken a keen interest in Mastodon as a platform.
-
-Vivaldi [recently launched][3] its Mastodon-powered community, and [Mozilla Foundation][4] is also considering something similar.
-
-Now, [**Medium**][5] has taken a step forward by launching a Mastodon instance.
-
-### Medium Starts a Mastodon-Powered Community
-
-In a [recent announcement][6], Medium launched its Mastodon instance at [me.dm][7], focusing on “_helping their authors, publications, and readers find a home in the Fediverse_”.
-
-The website (or Mastodon instance) aims to be a **dedicated space** for the **users of Medium.**
-
-![mastodon medium instance][8]
-
-In other words, itwill be an exclusive social network platform for Medium users.
-
-With the web platform, they are also venturing into short-form writing of 500 characters or less.
-
-The **CEO of Medium** mentions:
-
-> By contrast, Mastodon is primarily for short-form writing of 500 characters or less. Not to be overly punny: Today we are extending what we do into the short-form medium (lowercase m) with an instance on Mastodon, me.dm. Aside from being short-form, Mastodon also brings an important innovation around the concept of federation.
-
-So, it looks like Medium is testing the waters and trying something new.
-
-Probably a good thing for users who prefer bite-sized content instead of lengthy information.
-
-It can work out well for them if done correctly.
-
-**So, how can you join Medium's Mastodon platform?**
-
-> 💡 You see, initially, **only select authors and publications** will be given access to this Mastodon instance.Existing Medium users can try sending a [sign-up request][9], subject to their approval.
-
-So, if you send a signup request, you will have to wait for approval.
-
-They also **plan to invite writers and readers as an additional service****within their paid membership**.
-
-They are already working on a '**sign-up with Medium**' option for their Mastodon instance, which is supposed to make it easy to get started.
-
-On this, they mention that:
-
-> With so many Mastodon instances to choose from, we plan for me.dm to have a few important benefits out of the gate: reliable infrastructure and moderation, a short domain name to make sharing your username easier, better onboarding for new users, and an interesting local feed.
-
-Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][10]Unlocator![][11]
-
-### Decentralized and Open-Source Platforms Picking Up Pace
-
-Decentralized platforms are becoming more popular than one would have expected a decade ago.
-
-The big contributing factor is the number of volatile changes/decisions taken by big tech companies forcing users to constantly adjust how/why they interact on a social media platform.
-
-With an open-source and decentralized platform, users get transparency, more data control, and more freedom.
-
-We may not have expected Mastodon as a platform to gradually become an essential part of community building for various organizations. So, it will be exciting to see what else we have in store for the near future.
-
-💭 _Feel free to share your thoughts in the comments below._
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/medium-mastodon/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/medium-embraces-mastodon.png
-[2]: https://itsfoss.com/mainstream-social-media-alternaives/
-[3]: https://news.itsfoss.com/vivaldi-mastodon-integration/
-[4]: https://blog.mozilla.org/en/mozilla/mozilla-launch-fediverse-instance-social-media-alternative/
-[5]: https://medium.com
-[6]: https://blog.medium.com/medium-embraces-mastodon-19dcb873eb11
-[7]: https://me.dm/
-[8]: https://news.itsfoss.com/content/images/2023/01/medium-mastodon.jpg
-[9]: https://me.dm/auth/sign_up
-[10]: https://unlocator.com/favicon.ico
-[11]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg
From 7fa40953d45ab657b45ed924de6ce95c5ff46092 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?=
Date: Sun, 15 Jan 2023 13:19:56 +0800
Subject: [PATCH 260/266] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?=
=?UTF-8?q?tech]:=2020230114.0=20=E2=AD=90=EF=B8=8F=20A=204-minute=20guide?=
=?UTF-8?q?=20to=20Java=20loops.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...114.0 ⭐️ A 4-minute guide to Java loops.md | 151 ++++++++++++++++++
1 file changed, 151 insertions(+)
create mode 100644 sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md
diff --git a/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md b/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md
new file mode 100644
index 0000000000..7bed4b5c37
--- /dev/null
+++ b/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md
@@ -0,0 +1,151 @@
+[#]: subject: "A 4-minute guide to Java loops"
+[#]: via: "https://opensource.com/article/23/1/java-loops"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+A 4-minute guide to Java loops
+======
+
+A while loop performs a set of tasks for as long as some predefined condition is true. This is considered a control structure that directs the flow of a program. It's a way for you to tell your code what to do by defining a condition that it can test, and take action based on what it finds. The two kinds of while loops in Java are while and do while.
+
+### Java while loop
+
+A while loop is meant to iterate over data until some condition is satisfied. To create a while loop, you provide a condition that can be tested, followed by the code you want to run. Java has several built-in test functions, the simplest of which are mathematical operators (`<`, `>`, `==`, and so on):
+
+```
+package com.opensource.example;
+
+public class Example {
+ public static void main(String[] args) {
+
+ int count = 0;
+ while (count < 5) {
+ System.out.printf("%d ", count);
+ count++;
+ }
+ }
+}
+```
+
+In this simple example, the condition is that the variable `count` is less than 5. Because `count` is instantiated at 0, and then incremented by 1 in the code within the while loop, the program iterates a total of 5 times:
+
+```
+$ java ./while.java
+0 1 2 3 4
+```
+
+Before it can iterate a sixth time, the condition is no longer true, so the loop ends.
+
+The conditional statement for a while loop is vital. Getting it wrong could mean that your loop never executes. For instance, suppose you had set `count == 5` as the condition:
+
+```
+while (count == 5) {
+ System.out.printf("%d ", count);
+ count++;
+```
+
+When you run the code, it builds and runs successfully, but nothing happens:
+
+```
+$ java ./while.java
+$
+```
+
+The loop has been skipped because `count` was set to 0, and it's still 0 at the moment the while loop is first encountered. The loop never has a reason to start and `count` is never incremented.
+
+The reverse of this is when a condition starts as true and can never be false, this results in an infinite loop.
+
+### Java do while loop
+
+Similar to the while loop, a do while loop tests for the conditional at the end, not the beginning, of each iteration. With this, the code in your loop runs at least once because there's no gateway to entry, only a gateway to exit:
+
+```
+package com.opensource.example;
+
+public class Example {
+ public static void main(String[] args) {
+
+ int count = 9;
+ do {
+ System.out.printf("%d ", count);
+ count++;
+ } while(count == 5);
+ }
+}
+```
+
+In this sample code, `count` is set to 9. The condition for the loop to repeat is that `count` is equal to 5. But 9 isn't equal to 5. That check isn't performed until the end of the first iteration, though:
+
+```
+$ java ./do.java
+9
+```
+
+### Java infinite loops
+
+An infinite loop, as its name suggests, never ends. Sometimes they're created by mistake, but an infinite loop does have a valid use case. Sometimes you want a process to continue indefinitely (that's functionally infinite because you can't guarantee when you need it to stop), and so you might set your condition to something impossible to meet.
+
+Suppose you've written an application that counts the number of zombies remaining in your neighborhood during a zombie apocalypse. To simulate uncertainty over how many loops are required to get to 0 zombies, my demo code retrieves a timestamp from the operating system and sets the value of the counter (`c`) to some number derived from that timestamp. Because this is a simple example and you don't really want to get trapped in an infinite loop, this code counts down to zero and uses the `break` function to force the loop to end:
+
+```
+package com.opensource.example;
+
+public class Example {
+ public static void main(String[] args) {
+
+ long myTime = System.currentTimeMillis();
+
+ int c;
+
+ if ( myTime%2 == 0 ) {
+ c = 128;
+ } else {
+ c = 1024;
+ }
+
+ while(true) {
+ System.out.printf("%d Zombies\n", c);
+
+ // break for convenience
+ if ( c <= 0 ) { break; }
+ c--;
+ }
+ }
+}
+```
+
+You may have to run it a few times to trigger a different total number of zombies, but sometimes your program iterates 128 times and other times 1,024 times:
+
+```
+$ java ./zcount.java
+1024 Zombies
+1023 Zombies
+[...]
+0 Zombies
+```
+
+Can you tell why the loops end at 0 and not at -1?
+
+### Java loops
+
+Loops give you control over the flow of your program's execution. Iteration is common in programming, and whether you use a while loop, a do while loop, or an infinite loop, understanding how loops work is vital.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/23/1/java-loops
+
+作者:[Seth Kenlon][a]
+选题:[lkxed][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/seth
+[b]: https://github.com/lkxed
+
+
From 8955a1cc46237860ca22e25efc10d699dff1b7ee Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Sun, 15 Jan 2023 14:52:28 +0800
Subject: [PATCH 261/266] RP
@geekpi
https://linux.cn/article-15446-1.html
---
...reis Command in Linux and BSD with Examples.md | 54 +++++++++----------
1 file changed, 26 insertions(+), 28 deletions(-)
rename {translated/tech => published}/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md (53%)
diff --git a/translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
similarity index 53%
rename from translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
rename to published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
index f2f5e936d2..f4c1cb482d 100644
--- a/translated/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
+++ b/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md
@@ -3,18 +3,18 @@
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15446-1.html"
-Linux 和 BSD 中的 Whereis 命令及示例
+whereis 命令的解释与示例
======
-**这是一份关于如何理解 Linux 和 BSD 中 whereis 命令的初学者指南,其中有几个例子。**
+> 这是一份关于如何理解 Linux 和 BSD 中 `whereis` 命令的初学者指南,还包括几个例子。
![][1]
-_这篇文章是 [Linux 命令][2]学习系列的一部分。_
+这篇文章是 [Linux 命令][2] 学习系列的一部分。
### whereis 命令
@@ -30,15 +30,15 @@ _这篇文章是 [Linux 命令][2]学习系列的一部分。_
whereis [OPTIONS] FILE_NAME
```
-whereis 命令的参数是你要搜索的程序名或文件名。该参数是强制性的。
+`whereis` 命令的参数是你要搜索的程序名或文件名。该参数是必须的。
-默认情况下,它在环境变量(如 HOME、USER、SHELL 等)中定义的路径中搜索程序。
+默认情况下,它在环境变量(如 `HOME`、`USER`、`SHELL` 等)中定义的路径中搜索程序。
让我们看下一些例子。
### Linux 和 BSD 中 whereis 命令的例子
-下面是 whereis 命令的一个简单例子,我试图搜索 firefox。在下面的输出中,你可以看到包含 firefox 文件或可执行文件的路径列表。
+下面是 `whereis` 命令的一个简单例子,我试图搜索 `firefox`。在下面的输出中,你可以看到包含 `firefox` 文件或可执行文件的路径列表。
```
$ whereis firefox
@@ -48,7 +48,7 @@ firefox: /usr/bin/firefox /usr/lib64/firefox /etc/firefox /usr/share/man/man1/fi
![Linux 中 whereis 命令的简单例子][3]
-带有选项 -l 的命令会显示其搜索的路径列表。比如:
+带有选项 `-l` 的命令会显示其搜索的路径列表。比如:
```
$ whereis -l
@@ -66,7 +66,7 @@ bin: /usr/local/lib
bin: /usr/local/games
```
-如果 whereis 命令没有找到任何东西,它只显示参数的名称。例如,如果我在 Linux 中搜索 nano,它没有安装,它的输出如下:
+如果 `whereis` 命令没有找到任何东西,它只显示参数的名称。例如,如果我在 Linux 中搜索 `nano`,它没有安装,它的输出如下:
```
$ whereis nano
@@ -76,7 +76,7 @@ $ whereis nano
nano:
```
-如果你想搜索更多的参数,你可以随时添加多个参数。例如,下面的命令同时搜索 bash 和 nano,输出结果是这样的:
+如果你想搜索更多的参数,你可以随时添加多个参数。例如,下面的命令同时搜索 `bash` 和 `nano`,输出结果是这样的:
```
$ whereis bash nano
@@ -85,7 +85,7 @@ bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
```
-你也可以使用 -b 选项搜索特定的文件类型,比如二进制文件。下面的命令只告诉你 nano 的二进制路径。
+你也可以使用 `-b` 选项搜索特定的文件类型,比如二进制文件。下面的命令只告诉你 `nano` 的二进制路径。
```
$ whereis -b nano
@@ -93,7 +93,7 @@ $ whereis -b nano
nano: /usr/bin/nano /usr/share/nano
```
-同样,-s 选项可以搜索源文件,而 -m 选项可以搜索手册页。
+同样,`-s` 选项可以搜索源文件,而 `-m` 选项可以搜索手册页。
```
$ whereis -m nano
@@ -101,7 +101,7 @@ $ whereis -m nano
nano: /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
```
-你也可以结合上面的选项来进行更广泛的搜索。例如,下面的命令可以搜索 nano 和 firefox 的二进制、手册页,而对于 bash,只搜索手册页。
+你也可以结合上面的选项来进行更广泛的搜索。例如,下面的命令可以搜索 `nano` 和 `firefox` 的二进制、手册页;而对于 `bash`,只搜索手册页。
```
$ whereis -bm nano firefox -m bash
@@ -115,20 +115,18 @@ bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
| 选项 | 描述 |
| :- | :- |
-| **-b** | 只搜索二进制文件。|
-| **-m** | 只搜索手册部分。|
-| **-s** | 只搜索源码。|
-| **-u** | 搜索不寻常的条目。如果一个文件没有所要求的每种类型的条目,就被称为不寻常。因此,“whereis -m -u *” 会查询当前目录中没有文档的那些文件。|
-| **-B** | 改变或限制 whereis 搜索二进制文件的地方。|
-| **-M** | 更改或限制 whereis 搜索手册的位置。|
-| **-S** | 更改或以其他方式限制 whereis 搜索源码的位置。|
-| **-f** | 终止最后一个目录列表并指示文件名的开始,并且必须在使用任何 -B、-M 或 -S 选项时使用。|
+| `-b` | 只搜索二进制文件。|
+| `-m` | 只搜索手册页部分。|
+| `-s` | 只搜索源码。|
+| `-u` | 搜索不寻常的条目。如果一个文件没有所要求的每种类型的条目,就被称为不寻常。因此,`whereis -m -u *` 会查询当前目录中没有文档的那些文件。|
+| `-B` | 改变或限制 `whereis` 搜索二进制文件的地方。|
+| `-M` | 更改或限制 `whereis` 搜索手册的位置。|
+| `-S` | 更改或以其他方式限制 `whereis` 搜索源码的位置。|
+| `-f` | 终止上一个目录列表并指示文件名的开始,并且必须在使用任何 `-B`、`-M` 或 `-S` 选项时使用。|
-### 结束语
+### 总结
-我希望这篇文章能够帮助你理解 whereis 命令及其基本原理。你也可以阅读 [whereis 手册页][4]来了解更多。如果你有任何问题,请告诉我。
-
-**本文是 [Linux 命令][2]学习系列的一部分**。
+我希望这篇文章能够帮助你理解 `whereis` 命令及其基本原理。你也可以阅读 [whereis 手册页][4] 来了解更多。如果你有任何问题,请告诉我。
--------------------------------------------------------------------------------
@@ -137,7 +135,7 @@ via: https://www.debugpoint.com/whereis-command-linux/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
From c5416ba5fdce0193f8186ebac64247694ba0e26f Mon Sep 17 00:00:00 2001
From: geekpi
Date: Mon, 16 Jan 2023 08:43:00 +0800
Subject: [PATCH 262/266] translated
---
... File Viewer for Linux Desktops and Servers.md | 127 -----------------
... File Viewer for Linux Desktops and Servers.md | 131 ++++++++++++++++++
2 files changed, 131 insertions(+), 127 deletions(-)
delete mode 100644 sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md
create mode 100644 translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md
diff --git a/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md
deleted file mode 100644
index d8db876fa6..0000000000
--- a/sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md
+++ /dev/null
@@ -1,127 +0,0 @@
-[#]: subject: "lnav: Advanced Log File Viewer for Linux Desktops and Servers"
-[#]: via: "https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-lnav: Advanced Log File Viewer for Linux Desktops and Servers
-======
-
-**If you want to debug or troubleshoot any issues, you need an advanced log file viewer like lnav – which works wonders in the terminal for any Linux system.**
-
-### lnav: Log file viewer
-
-lnav can unzip all the compressed log files on the fly and merge them together for a nice display. The display is parsed and formatted based on the types of errors/warnings – this helps to quickly glance through the thousands of logs, especially in servers.
-
-While analysing the logs, timestamps are very important. So lnav merges multiple logs based on timestamps, which is very helpful for tracking down system issues.
-
-Most of the important log file format detection is built-in; see below:
-
-- Common Web Access Log format
-- CUPS page_log
-- Syslog
-- Glog
-- VMware ESXi/vCenter Logs
-- dpkg.log
-- uwsgi
-- “Generic” – Any message that starts with a timestamp
-- Strace
-- sudo
-- GZIP, BZIP
-
-That is not all; lnav is also capable of the below features, making it an important app for Linux systems.
-
-- Filter messages based on regular expression
-- A timeline view of errors
-- Pretty-Print view- helps to reformat
-- Query Log using SQL
-- A log is updated in real-time while being searched.
-- Syntax highlight via regular expression (say you want to find out an IP address in the entire log)
-- Tab completion of any word from the log which is displayed !!
-
-![lnav-running-in-ubutu][1]
-
-To view the screenshots of the above features and learn more, visit [this page.][2]
-
-### How to Install
-
-This program is available in official Ubuntu, Debian repo. Install it using the following command.
-
-```
-sudo apt install lnav
-```
-
-And for Fedora, RHEL users, use the below command:
-
-```
-sudo dnf install lnav
-```
-
-Also the developers provides an offline standalone executable which you don’t need to install. You can download the zip from the [GitHub release page][3] and execute as:
-
-```
-./lnav
-```
-
-**Note**: It’s also available for macOS which you can find in the above GitHub page.
-
-### lnav: How to use (Basics)
-
-The simple command syntax is:
-
-```
-lnav [options] [logfile1 logfile2 …]
-```
-
-If you run just lnav from the command, it shows all the logs from your system (/var/log/messages and /var/log/syslog)
-
-```
-lnav
-```
-
-To view any specific log file, provide it via the command line:
-
-```
-lnav /var/log/syslog
-```
-
-Add timestamp in your log output using -t parameter
-
-```
-lnav -t /var/log/syslog
-```
-
-Here are some of the key switches of lnav
-
-```
--d file Write debug messages to the given file.-a Load all of the most recent log file types.-r Load older rotated log files as well.-t Prepend timestamps to the lines of data being read inon the standard input.-w file Write the contents of the standard input to this file.-c cmd Execute a command after the files have been loaded.-f path Execute the commands in the given file.-n Run without the curses UI. (headless mode)
-```
-
-![lnav running in Ubuntu 22.04][4]
-
-For further reading and exploration, visit the [official documentation][5].
-
-[Next:How to Make LibreOffice Look Like Microsoft Office][6]
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/
-
-作者:[Arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.debugpoint.com/author/admin1/
-[b]: https://github.com/lkxed
-[1]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-Running-in-Ubutu.png
-[2]: http://lnav.org/features/
-[3]: https://github.com/tstack/lnav/releases/
-[4]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-running-in-Ubuntu-22.04.jpg
-[5]: https://docs.lnav.org/en/latest/intro.html
-[6]: https://www.debugpoint.com/libreoffice-like-microsoft-office/
diff --git a/translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md
new file mode 100644
index 0000000000..63c5016609
--- /dev/null
+++ b/translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md
@@ -0,0 +1,131 @@
+[#]: subject: "lnav: Advanced Log File Viewer for Linux Desktops and Servers"
+[#]: via: "https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+lnav: 用于 Linux 台式机和服务器的高级日志文件浏览器
+======
+
+**如果你想调试或排除任何问题,你需要一个像 lnav这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。**
+
+### lnav: 日志文件查看器
+
+lnav 可以即时解压缩所有的压缩日志文件,并将它们合并在一起进行漂亮的显示。显示是根据错误/警告的类型进行解析和格式化的,这有助于快速浏览成千上万的日志,特别是在服务器中。
+
+在分析日志的时候,时间戳是非常重要的。所以 lnav 根据时间戳合并多个日志,这对追踪系统问题很有帮助。
+
+大多数重要的日志文件格式检测都是内置的,如下:
+
+- 常见的网络访问日志格式
+- CUPS page_log
+- Syslog
+- Glog
+- VMware ESXi/vCenter 日志
+- dpkg.log
+- uwsgi
+- “通用”:任何以时间戳开头的信息
+- Strace
+- sudo
+- GZIP, BZIP
+
+这还不是全部,lnav 还能实现以下功能,使其成为 Linux 系统的重要应用。
+
+- 根据正则表达式过滤消息
+- 错误的时间轴视图
+- 漂亮的打印视图,这有助于重新格式化
+- 使用 SQL 查询日志
+- 在搜索时,日志会实时更新。
+- 通过正则表达式高亮显示语法(比如你想在整个日志中找出一个 IP 地址)
+- 显示的日志中任何单词的 Tab 补全!!
+
+![lnav 在 ubuntu 中运行][1]
+
+要查看上述功能的截图和了解更多信息,请访问[本页面][2] 。
+
+### 如何安装
+
+这个程序在 Ubuntu、Debian 的官方仓库中可以找到。使用以下命令安装它。
+
+```
+sudo apt install lnav
+```
+
+而对于 Fedora、RHEL 用户,使用下面的命令:
+
+```
+sudo dnf install lnav
+```
+
+另外,开发者还提供了一个离线的独立可执行文件,你不需要安装。你可以从 [GitHub 发布页][3]下载压缩包,然后按以下方式执行:
+
+```
+./lnav
+```
+
+**注意**:它也可用于 macOS,你可以在上述 GitHub 页面找到。
+
+### lnav: 如何使用(基础)
+
+简单的命令语法是:
+
+```
+lnav [options] [logfile1 logfile2 …]
+```
+
+如果你只运行 lnav 命令,它会显示你系统中的所有日志(/var/log/messages 和 /var/log/syslog)
+
+```
+lnav
+```
+
+要查看任何特定的日志文件,在命令行中输入:
+
+```
+lnav /var/log/syslog
+```
+
+使用 -t 参数在你的日志输出中添加时间戳:
+
+```
+lnav -t /var/log/syslog
+```
+
+以下是 lnav 的一些关键开关:
+
+```
+-d file 将调试信息写入给定的文件。
+-a 加载所有最新的日志文件类型。
+-r 也加载较早的旋转日志文件。
+-t 在标准输入中读入的数据行上预加时间戳。
+-w file 将标准输入的内容写入该文件。
+-c cmd 在文件加载后执行命令。
+-f path 执行给定文件中的命令。
+-n 不使用 curses UI 运行(无头模式)。
+```
+
+![lnav 在 Ubuntu 22.04 中运行][4]
+
+要进一步阅读和探索,请访问[官方文档][5]。
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-Running-in-Ubutu.png
+[2]: http://lnav.org/features/
+[3]: https://github.com/tstack/lnav/releases/
+[4]: https://www.debugpoint.com/wp-content/uploads/2016/11/lnav-running-in-Ubuntu-22.04.jpg
+[5]: https://docs.lnav.org/en/latest/intro.html
\ No newline at end of file
From 8833d17af14a83a86108526fa977a3a271027cb5 Mon Sep 17 00:00:00 2001
From: geekpi
Date: Mon, 16 Jan 2023 08:47:18 +0800
Subject: [PATCH 263/266] translating
---
...11.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md
index b4bdf7d8ec..da0f0fbe1f 100644
--- a/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md
+++ b/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md
@@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/wordbook-offline-dictionary/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
-[#]: translator: " "
+[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From 35a14c3b868c6417cf70e0d2e4270623a39ec9f2 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 16 Jan 2023 10:30:03 +0800
Subject: [PATCH 264/266] RP
@wxy
https://linux.cn/article-15448-1.html
---
...r Lobster Wallpaper Competition is Now Open.md | 59 +++++++++++++++++++
...r Lobster Wallpaper Competition is Now Open.md | 59 -------------------
2 files changed, 59 insertions(+), 59 deletions(-)
create mode 100644 published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md
delete mode 100644 sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md
diff --git a/published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md b/published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md
new file mode 100644
index 0000000000..d4ca8baa62
--- /dev/null
+++ b/published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md
@@ -0,0 +1,59 @@
+[#]: subject: "Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open"
+[#]: via: "https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15448-1.html"
+
+Ubuntu 23.04 “月球龙虾” 壁纸比赛开始了
+======
+
+![][1]
+
+> 喜欢数字绘画或摄影?这个壁纸比赛可以让你的照片出现在 Ubuntu 23.04 的官方版本中。
+
+### Ubuntu 23.04 的壁纸比赛
+
+Ubuntu 23.04 “月球龙虾Lunar Lobster” 版本将于 2023 年 4 月发布。按照时间表,在即将到来的 BETA 版本之前,官方壁纸比赛现在已经开始。
+
+按照官方的指导方针,你必须拥有你所发布的图片的权利,而且必须是原创。可以说,不应该考虑人工智能生成的图像。
+
+此外,你提交的图片应该至少有 3840x2160px 的尺寸,文件大小不应超过 10MB。文件格式以 SVG 和 WebP 为佳。然而,标准格式如 PNG 和 JPG 也可以接受。
+
+此外,你的图片不应该有任何水印、标志或文字,如 “Lunar Lobster” 或 “Ubuntu”。你可以在 [这里][2] 阅读详细的指导原则。
+
+最后,你的壁纸可以以官方吉祥物 —— “月球” 和 “龙虾” 为特色。
+
+提交截止日期为 2023 年 2 月 6 日,最终获胜者将在 2023 年 2 月 18 日社区投票后公布。
+
+![早期提交的 Ubuntu 23.04 官方壁纸之一][3]
+
+### 如何提交?
+
+前往官方 Discourse 论坛的帖子下提交你的作品。请务必提到你的名字和 Twitter,如果被选中的话,可以得到 Ubuntu 团队的致谢。
+
+> **[提交壁纸][4]**
+
+戴上你的创意帽子,提交所有那些很酷的壁纸吧!
+
+_图片来源:各自的作者_
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/
+
+作者:[arindam][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2023/01/wall2304head.jpg
+[2]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/README.md
+[3]: https://debugpointnews.com/wp-content/uploads/2023/01/One-of-the-early-submission-for-Ubuntu-23.04-official-wallpaper.jpg
+[4]: https://discourse.ubuntu.com/t/lunar-lobster-23-04-wallpaper-competition/33132
diff --git a/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md b/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md
deleted file mode 100644
index 209048a38b..0000000000
--- a/sources/news/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md
+++ /dev/null
@@ -1,59 +0,0 @@
-[#]: subject: "Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open"
-[#]: via: "https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/"
-[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open
-======
-
-![][1]
-
-**Like digital drawing or photography? This wallpaper competition may feature your photos in the official Ubuntu 23.04 release.**
-
-### Wallpaper Competition for Ubuntu 23.04
-
-Ubuntu 23.04 “Lunar Lobster” release is due in April 2023. Following the schedule, the official wallpaper competition is now open before the upcoming BETA release.
-
-As per the official guidelines, you must own the rights to the images that you are posting, and they must be original. No AI-generated images should be considered, arguably.
-
-Furthermore, your submitted image should have at least 3840x2160px dimensions and should not exceed 10MB of file size. The file formats SVG and WebP are preferred. However, standard formats such as PNG and JPG are also accepted.
-
-In addition, your images should not have any watermark, logo or text such as “Lunar Lobster” or “Ubuntu”. You can read the detailed guideline [here][2].
-
-Finally, your wallpaper may feature the official mascot – “Lunar” and “Lobster”.
-
-The submission closes on February 6, 2023, and final winners will be announced on February 18, 2023, after community voting.
-
-![One of the early submission for Ubuntu 23.04 official wallpaper][3]
-
-### How to submit it?
-
-Head over to the official discourse forum post and submit your entries. Make sure to mention your name and Twitter handle to get credit from the Ubuntu team if selected.
-
-[Submit wallpapers][4]
-
-Put on your creative hat and submit all those cool wallpapers!
-
-_Image credits: respective author_
-
---------------------------------------------------------------------------------
-
-via: https://debugpointnews.com/ubuntu-23-04-wallpaper-competition/
-
-作者:[arindam][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://debugpointnews.com/author/dpicubegmail-com/
-[b]: https://github.com/lkxed
-[1]: https://debugpointnews.com/wp-content/uploads/2023/01/wall2304head.jpg
-[2]: https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/README.md
-[3]: https://debugpointnews.com/wp-content/uploads/2023/01/One-of-the-early-submission-for-Ubuntu-23.04-official-wallpaper.jpg
-[4]: https://discourse.ubuntu.com/t/lunar-lobster-23-04-wallpaper-competition/33132
From 36e1040b4c433edd15fade7d55ae9c69ecea83e8 Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 16 Jan 2023 14:58:21 +0800
Subject: [PATCH 265/266] ATRP
@wxy
https://linux.cn/article-15449-1.html
---
...zing Release With Much-Needed Feature Additions.md | 144 +++++++++++++++++
...zing Release With Much-Needed Feature Additions.md | 148 ------------------
2 files changed, 144 insertions(+), 148 deletions(-)
create mode 100644 published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md
delete mode 100644 sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md
diff --git a/published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md b/published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md
new file mode 100644
index 0000000000..6bf9cc9436
--- /dev/null
+++ b/published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md
@@ -0,0 +1,144 @@
+[#]: subject: "Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions"
+[#]: via: "https://news.itsfoss.com/discourse-3-0-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15449-1.html"
+
+Discourse 3.0 发布,增加了很多需要的功能
+======
+
+> 开源论坛软件 Discourse 有了一个新的重大版本升级!让我们看看有什么新东西。
+
+![][1]
+
+Discourse 是一个开源的论坛平台,以其丰富的功能和第三方集成而闻名。
+
+它也是 [最好的开源论坛软件][2] 之一,你可以部署在你的 Linux 服务器上来建立一个社区。
+
+现在,我们来看看 Discourse 的最新版本。
+
+在 [Discourse 2.0][4] 发布已近五年之后,**Discourse 3.0 终于来了**。
+
+这个版本包含了大量的新功能和改进,让我带你看看:
+
+### 🆕 Discourse 3.0 的新变化
+
+![Discourse 3.0][5]
+
+Discourse 3.0 提供了很多东西,其中一些值得注意的亮点包括:
+
+- 新的设置向导
+- 用户状态
+- 通知菜单
+- 新的侧边栏
+- 实时聊天
+- 用户提示
+
+#### 新的设置向导
+
+![新的设置向导][6]
+
+Discourse 现在有一个新的设置向导,可以让你快速配置一些最重要的选项。
+
+因此,像将社区设置为私人、仅邀请、需要批准等选项在论坛设置的初始阶段就会显示出来。
+
+#### 用户状态
+
+![Discourse 用户状态][7]
+
+与现在大多数社区平台的做法类似,Discourse 现在也支持设置用户状态。
+
+用户可以设置一个自定义的表情符号和文字,在整个平台上显示在他们的头像附近,无论是帖子、聊天还是用户卡中。
+
+#### 通知菜单
+
+![Discourse 通知][8]
+
+这终于实现了。
+
+Discourse 现在有一个专门的通知菜单,让你更容易跟踪你在论坛上的活动。
+
+#### 新的侧边栏
+
+![Discourse 侧边栏][9]
+
+这是的另一项你可能会喜欢的用户体验改进。
+
+你现在可以在新的侧边栏上添加聊天频道、标签和类别,以方便访问你想追踪的东西。
+
+论坛的管理员也可以为游客和新成员设置一个默认的侧边栏配置;这样,每个人都可以对论坛提供的内容有一个很好的展望。
+
+#### 实时聊天
+
+![Discourse 实时聊天][10]
+
+Discourse 现在支持实时聊天;频道管理员可以选择创建一个非正式的讨论、展示,甚至是备忘录的空间,如果这对他们有用的话。
+
+Discourse 的产品经理 Rishabh Nambiar 提到:
+
+> 我们的目标是,当对话在快节奏的聊天和慢节奏的讨论之间转换时,赋予社区以综合的体验。
+>
+> 当想法被激发出来,在一个更容易被发现的地方,聊天信息可以被引用到话题中,讨论可以随着时间的推移而继续,并允许不同时间和地点的人以后加入进来。
+
+#### 用户提示
+
+![Discourse 用户提示][11]
+
+这个功能对不熟悉 Discourse 的新用户很有帮助。
+
+当用户第一次使用某个特定的功能时,他们会得到与 Discourse 的功能相关的提示。
+
+#### 🛠️ 其他变化和改进
+
+上面提到的并不是这次发布的 Discourse 的全部变化,下面是其他一些亮点:
+
+- 改造了标签系统。
+- 改进了搜索界面。
+- 更新了开源工具。
+- 改进了错误页面。
+- 新的闪屏。
+- 改进了页面加载动画。
+- 更快的图像预加载。
+
+如果你想深入了解这个版本的技术细节,请查阅 [发行说明][12]。
+
+### 📥 获取 Discourse 3.0
+
+如果你使用的是 [Discourse 的托管计划][13],你一定已经收到了 3.0 的更新,你所要做的就是通过你的管理设置启用新功能。
+
+如果你是自我托管,你必须通过点击管理仪表板上的“更新”按钮手动更新你的实例。
+
+对于新用户,请在他们的官方网站上探索更多关于 Discourse 的信息。
+
+> **[Discourse][14]**
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/discourse-3-0-release/
+
+作者:[Sourav Rudra][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/discourse-3-0-release.png
+[2]: https://itsfoss.com/open-source-forum-software/
+[3]: https://itsfoss.community
+[4]: https://blog.discourse.org/2018/05/discourse-2-0-released/
+[5]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0.jpg
+[6]: https://news.itsfoss.com/content/images/2023/01/discourse-member-exp-1.png
+[7]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Status.jpg
+[8]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Notifications-1.jpg
+[9]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Sidebar-1.jpg
+[10]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Chat.jpg
+[11]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Tips.jpg
+[12]: https://meta.discourse.org/t/discourse-version-3-0/
+[13]: https://www.discourse.org/pricing
+[14]: https://www.discourse.org
diff --git a/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md b/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md
deleted file mode 100644
index 5de7f32df5..0000000000
--- a/sources/news/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md
+++ /dev/null
@@ -1,148 +0,0 @@
-[#]: subject: "Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions"
-[#]: via: "https://news.itsfoss.com/discourse-3-0-release/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions
-======
-
-Open-source forum software Discourse has a new major upgrade! Check out what's new.
-
-![Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions][1]
-
-Discourse is an open-source forum platform known for its vast features and third-party integrations.
-
-It is also one of the [best open-source forum software][2] you can deploy on your Linux servers to build a community.
-
-The **[It's FOSS Community][3]** forum is **also****powered by Discourse**. If you have any questions or want to join in discussing Linux/Open-Source stuff with like-minded people, feel free to sign up on our community forum.
-
-Now, moving on to Discourse's latest release.
-
-**Discourse 3.0 is finally here**.
-
-This comes almost **five years** after the release of [Discourse 2.0.][4]
-
-This release is packed with plenty of new features and improvements; let me take you through them.
-
-### 🆕 Discourse 3.0: What's New?
-
-![discourse 3.0][5]
-
-Discourse 3.0 has a lot to offer; some of the notable highlights include:
-
-- **New Setup Wizard**
-- **User Status**
-- **Notifications Menu**
-- **New Sidebar**
-- **Real-Time Chat**
-- **User Tips**
-
-#### New Setup Wizard
-
-![discourse setup wizard][6]
-
-Discourse now features a new setup wizard that lets you quickly configure some of the most important options.
-
-So, options like setting a community to **Private, Invite Only, Require Approval,** and more are shown during the initial stages of the set-up of your forum.
-
-#### User Status
-
-![discourse 3.0 user status][7]
-
-Similar to what most community platforms are doing nowadays, Discourse now has support for setting user status.
-
-Users can set a custom emoji and text to be displayed near their avatar across the platform, be it posts, chat, or in the user card.
-
-#### Notifications Menu
-
-![discourse notifications][8]
-
-Finally, this has become a reality.
-
-Discourse now has a dedicated notifications menu, making it easier to track your activity on the forums.
-
-#### New Sidebar
-
-![discourse 3 sidebar][9]
-
-This is yet **another user experience improvement** that you might like.
-
-You can now add chat channels, tags, and categories to the new sidebar for easy access to the things you want to keep track of.
-
-Admins of forums can also set a default sidebar config for visitors and new members; this way, everyone can get a great outlook of what a forum offers.
-
-#### Real-Time Chat
-
-![discourse 3.0 realtime chat][10]
-
-Discourse now has support for real-time chats; channel admins can choose to create a space for informal discussion, showcase, or even memes if it works for them.
-
-Discourse's **Product Manager**, _Rishabh Nambiar,_mentions:
-
-> Our goal is to empower communities with an integrated experience as conversations shift between faster-paced chat and slower-paced discussions.When ideas are sparked that belong in a more discoverable place, chat messages can be quoted in topics where the discussion can continue over time and allow people in different times and places to join in later.
-
-#### User Tips
-
-![discourse 3.0 user tips][11]
-
-This feature can be helpful to new users who are unfamiliar with Discourse.
-
-Users will be provided with tips related to the features of Discourse when they use a particular feature for the first time.
-
-#### 🛠️ Other Changes & Improvements
-
-The above-mentioned are not the only changes coming to Discourse with this release; here are some other highlights:
-
-- **The hashtag system has been revamped.**
-- **The search UI has been improved.**
-- **Open-source tooling has been updated.**
-- **Improved error pages.**
-- **New splash screen.**
-- **Improved page loading spinner.**
-- **Faster image preloads.**
-
-If you want a deep dive into the technical details of this release, go through the [release notes][12].
-
-### 📥 Get Discourse 3.0
-
-If you are on [Discourse's hosting plan][13], you must have already received the 3.0 update, and all you have to do is enable the new features via your admin settings.
-
-**Suggested Read 📖**
-
-And, if you are self-hosted, you must manually update your instance by clicking on the '**Update**' button on your admin dashboard.
-
-For new users, explore more about Discourse on their official site.
-
-[Discourse][14]
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/discourse-3-0-release/
-
-作者:[Sourav Rudra][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/discourse-3-0-release.png
-[2]: https://itsfoss.com/open-source-forum-software/
-[3]: https://itsfoss.community
-[4]: https://blog.discourse.org/2018/05/discourse-2-0-released/
-[5]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0.jpg
-[6]: https://news.itsfoss.com/content/images/2023/01/discourse-member-exp-1.png
-[7]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Status.jpg
-[8]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Notifications-1.jpg
-[9]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Sidebar-1.jpg
-[10]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_Chat.jpg
-[11]: https://news.itsfoss.com/content/images/2023/01/Discourse_3.0_User_Tips.jpg
-[12]: https://meta.discourse.org/t/discourse-version-3-0/
-[13]: https://www.discourse.org/pricing
-[14]: https://www.discourse.org
From 1c5bbaf8837c405aacd7f25d31970d8bb5278cfb Mon Sep 17 00:00:00 2001
From: Xingyu Wang
Date: Mon, 16 Jan 2023 16:48:30 +0800
Subject: [PATCH 266/266] ATRP
@wxy
https://linux.cn/article-15450-1.html
---
...stic (Yet Underrated) Linux Desktop Environment.md | 190 ++++++++++++++++++
...stic (Yet Underrated) Linux Desktop Environment.md | 185 -----------------
2 files changed, 190 insertions(+), 185 deletions(-)
create mode 100644 published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md
delete mode 100644 sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md
diff --git a/published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md b/published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md
new file mode 100644
index 0000000000..efe41ce13d
--- /dev/null
+++ b/published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md
@@ -0,0 +1,190 @@
+[#]: subject: "7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment"
+[#]: via: "https://itsfoss.com/why-cinnamon/"
+[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15450-1.html"
+
+Cinnamon 是一个被低估的神奇 Linux 桌面环境
+======
+
+![][0]
+
+> Linux Mint 是我最喜欢的发行版之一,其旗舰版的默认 Cinnamon 桌面是我如此喜欢它的原因。
+
+Cinnamon 桌面提供的用户体验可能并不炫目花哨。但是,用户有充分的理由喜欢这个桌面环境,并可以轻松地用它来完成工作。
+
+在日复一日工作中,我们想要的是,一个能按预期工作且不造成妨碍的用户界面。
+
+我认为 Cinnamon 桌面做对了几件事,可以给你带来了令人兴奋的体验。让我在这里介绍其中一些。
+
+> 如果你还不知道,Cinnamon 桌面是由 Linux Mint 的创建者 Clement Lefebvre 于 2011 年创建的 GNOME 3 复刻版,并经过多年的改进。
+
+### 1、熟悉的用户界面
+
+![Linux Mint 21][1]
+
+构建 Cinnamon 的主要目的是为了保持 GNOME 2 的桌面风格。
+
+而这就是为什么与最流行的消费级桌面操作系统 Windows 相比,你会看到一个熟悉的桌面布局。
+
+当然,随着时间的推移,Windows 11 已经进化了它的通常布局。但是,访问开始菜单、任务栏、托盘中的系统图标和几个窗口装饰使其易于掌握。
+
+无论你是 Windows 用户还是 macOS 用户,Cinnamon 的桌面布局都不应该让你感到有什么挑战。
+
+![Linux Mint 欢迎屏幕][2]
+
+为了进一步帮助你,Linux Mint 的 “欢迎屏幕” 为你迅速提供了各种信息。
+
+### 2、轻量级
+
+为了获得舒适的 Cinnamon 桌面体验(通常使用 Linux Mint),有以下最低系统要求:
+
+- 4GB 内存
+- 100 GB 的磁盘空间
+- 1024×768 分辨率的屏幕
+
+在现代计算时代,这些规格应该适合几乎所有人。所以,你不必担心需要一个疯狂的内存或磁盘空间来运行由 Cinnamon 驱动的 Linux 发行版。
+
+当然,你可以尝试 [在 Ubuntu 上安装 Cinnamon 桌面][3]。
+
+但是,在本文中,我们认为 Linux Mint 是理想的使用案例。
+
+### 3、快速的性能而不牺牲用户体验
+
+当我们想到一个轻量级的桌面环境时,我们通常会想象一个注重性能的、平淡无奇的用户界面。
+
+![Linux Mint 首选项][4]
+
+在 Cinnamon 桌面上,情况并非如此。它确实包括了各种细微的动画和特色的图标/主题,即使不是最好的,其外观也相当现代。
+
+它以极简的方式让你看起来很赏心悦目。
+
+通常情况下,我很喜欢漂亮的用户界面,但我仍然可以接受 Linux Mint 的简单直接的用户体验,并在双显示器设置(1440p + 1080p)上运行它。
+
+它可能不是 Linux Mint Cinnamon 版最好的双显示器体验(对我来说,第二个屏幕上没有停靠区和面板),但需要改进地方不多。
+
+### 4、默认的自定义选项
+
+你可能已经知道,在提供开箱即用的定制能力方面,KDE 可能是最棒的。
+
+如果你对这种方式感到好奇,我们有超级有用的指南:
+
+- [KDE 定制指南][5]
+- [如何正确地给 KDE Plasma 定制主题(深度指南)][6]
+- [最佳的 KDE Plasma 华丽主题][7]
+
+但是,对于许多用户来说,这有些过于复杂了。
+
+我认为 Linux Mint 给出了适量的额外控制/定制,你也可以在它的欢迎屏幕上了解到这些。
+
+![Cinnamon 主题定制][8]
+
+一些你可以轻松定制的元素包括:
+
+- 桌面颜色(强调色)
+- 浅色/深色主题切换
+- 面板布局
+- 图标、按钮和鼠标指针
+
+你可以前往系统设置,并导航到 “主题”,找到必要的调整项。
+
+推荐阅读:
+
+> **[在 Linux 上定制 Cinnamon 桌面的 7 种方法][9]**
+
+### 5、为你的体验增色的官方附加组件
+
+![Cinnamon 桌面部件][10]
+
+Linux Mint 支持各种插件来增强你的体验。这些都是 [Cinnamon 调味品][11] 产品的一部分。它们包括:
+
+- 主题
+- 扩展程序
+- 小程序Applet
+- 桌面组件Desklet
+
+小程序和桌面组件是小型程序,你可以分别在面板(靠近系统托盘)和桌面上添加。
+
+![小程序][12]
+
+你可以管理系统默认的小程序,也可以从官方软件库下载更多的小程序。
+
+![小程序][13]
+
+同样,你可以从可用的默认程序中添加桌面组件,或者从软件库中获得新的。
+
+![桌面组件][14]
+
+大量有价值的实用程序可以用来监控系统资源、检查天气,以及更多。
+
+此外,你还可以访问社区构建的各种主题,可以很容易地给你一个你一直想要的外观。
+
+![Cinnamon 主题][15]
+
+通过补充上述所有的 “调味品”,你可以使用扩展来使面板透明,在桌面上添加水印,启用窗口平铺,并添加一些令人兴奋的窗口动画。
+
+![Linux Mint 扩展][16]
+
+### 6、兼容和无缝的用户体验
+
+为什么我再次强调用户体验?
+
+Cinnamon 桌面最棒的地方在于它以尊重和支持所有功能的方式发展。
+
+例如,如果你想安装一个你在 KDE Plasma 上喜欢使用的应用程序,它在这里也应该以同样的方式工作。Cinnamon 桌面没有什么特别之处,会破坏这种体验。
+
+![GNOME 账户应用][17]
+
+同样地,该桌面增加了一些试图与其他桌面环境的服务共存的功能。例如,支持使用 GNOME 在线账户的日历事件。
+
+### 7、面板定制
+
+![Linux Mint 面板][18]
+
+停靠区、任务栏或面板是用户界面的一个组成部分。
+
+是的,其他的桌面环境也允许你在某种程度上同样定制这些。但在 Cinnamon 中,你可以得到大量的控制权来调整它。
+
+我认为你可以得到一个用户想要的所有基本选项。
+
+### 总结
+
+GNOME 和 KDE Plasma 是流行的桌面环境。然而,Cinnamon 在提供最佳用户体验的基本部分上并不逊色。
+
+你对 Cinnamon 桌面环境有什么看法?你更喜欢用 Linux Mint 来尝试它吗?在下面的评论部分分享你的想法。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/why-cinnamon/
+
+作者:[Ankush Das][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/ankush/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-21-full.jpg
+[2]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-welcome.png
+[3]: https://itsfoss.com/install-cinnamon-on-ubuntu/
+[4]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-perf.png
+[5]: https://itsfoss.com/kde-customization/
+[6]: https://itsfoss.com/properly-theme-kde-plasma/
+[7]: https://itsfoss.com/best-kde-plasma-themes/
+[8]: https://itsfoss.com/content/images/wordpress/2022/11/cinnamon-theme-customize.png
+[9]: https://itsfoss.com/customize-cinnamon-desktop/
+[10]: https://itsfoss.com/content/images/wordpress/2022/11/cinnamon-desklet.png
+[11]: https://cinnamon-spices.linuxmint.com
+[12]: https://itsfoss.com/content/images/wordpress/2022/11/applet-cinnamon.png
+[13]: https://itsfoss.com/content/images/wordpress/2022/11/applets-cinnamon.png
+[14]: https://itsfoss.com/content/images/wordpress/2022/11/desklet-cinnamon.png
+[15]: https://itsfoss.com/content/images/wordpress/2022/11/cinnamon-theme.png
+[16]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-extensions.png
+[17]: https://itsfoss.com/content/images/wordpress/2022/11/gnome-accounts-cinnamon.png
+[18]: https://itsfoss.com/content/images/wordpress/2022/11/linux-mint-panel.png
+[0]: https://img.linux.net.cn/data/attachment/album/202301/16/164642rr27xxt3zo72t7vl.jpg
\ No newline at end of file
diff --git a/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md b/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md
deleted file mode 100644
index 9a06dfdbc8..0000000000
--- a/sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md
+++ /dev/null
@@ -1,185 +0,0 @@
-[#]: subject: "7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment"
-[#]: via: "https://itsfoss.com/why-cinnamon/"
-[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment
-======
-
-Linux Mint is one of my favorite distributions. The flagship (or default) Cinnamon desktop is why I like it so much.
-
-The user experience offered by Cinnamon desktop may not be mind-blowing or fancy. But, the desktop environment provides enough reasons for users to like it and easily work with it to get things done.
-
-At the end of the day, that’s what we want. A user interface that works as expected and does not get in the way.
-
-I think Cinnamon desktop does a few things right to give you an exciting experience. Let me mention some of those here.
-
-**If you did not know**, the Cinnamon desktop is a fork of the GNOME 3 created in **2011** by **Clement Lefebvre** (Linux Mint creator) with enhancements over the years.
-
-### 1. Familiar User Interface
-
-![linux mint 21 full][1]
-
-The primary objective of building Cinnamon was to keep the GNOME 2 desktop style alive.
-
-And that is why you get a familiar desktop layout compared to the most popular consumer desktop operating system, i.e., Windows.
-
-Of course, Windows 11 has evolved its usual layout with time. But, accessing a start menu, a taskbar, system icons in the tray, and a couple of window decorations make it easy to grasp.
-
-Whether you are a Windows user or a macOS user, the Cinnamon desktop layout should not feel challenging at all.
-
-![linux mint welcome][2]
-
-To help you further, the “**Welcome Screen**” in Linux Mint provides you with all the information quickly.
-
-### 2. Lightweight
-
-To get a comfortable experience with Cinnamon desktop (usually with Linux Mint), you have the following system requirements:
-
-- 4 GB RAM
-- 100 GB of disk space
-- 1024×768 resolution screen
-
-In the modern computing age, these specifications should suit almost everyone. So, you do not have to worry about needing an insane amount of memory or disk space to run a Linux distro powered by Cinnamon.
-
-Of course, you can try [installing Cinnamon desktop on Ubuntu][3].
-
-But, for this article, we consider Linux Mint as the ideal use case.
-
-### 3. Fast Performance Without Sacrificing User Experience
-
-When we think about a lightweight desktop environment—we usually imagine a bland user interface that focuses on performance.
-
-![linux mint perf][4]
-
-With Cinnamon desktop, that is not the case. It does include subtle animations and features icons/themes that make up for a modern look, if not the best.
-
-It looks pleasing to the eyes with a minimal approach.
-
-Typically, I am a sucker for pretty user interfaces, but I can still live with Linux Mint’s straightforward user experience running it on a dual-monitor setup (**1440p + 1080p**).
-
-It may not be the best dual-monitor experience with Linux Mint Cinnamon edition (no dock/panel on the second screen for me). So, there is little room for improvement.
-
-### 4. Default Customization Options
-
-You might already know that KDE is probably the king when it comes to giving the ability to customize out-of-the-box.
-
-We have super useful guides if you are curious about going that way:
-
-- [KDE Customization Guide][5]
-- [How to Properly Theme KDE Plasma [In-depth Guide]][6]
-- [Best Gorgeous KDE Plasma Themes][7]
-
-But, for many users, it is **overwhelming**.
-
-I think Linux Mint gives the right amount of extra controls/customizations, which you also learn on its **Welcome Screen**.
-
-![cinnamon theme customize][8]
-
-Some of the elements that you can easily customize include:
-
-- Desktop color (accent)
-- Light/Dark theme toggle
-- Panel layout
-- Icons, buttons, and mouse pointer.
-
-You can head to the system settings and navigate to “Themes” to find the essential tweaks.
-
-**Recommended Read:**[7 Ways to Customize Cinnamon Desktop on Linux][9]
-
-### 5. Official Add-ons to Spice Up Your Experience
-
-![cinnamon desklet][10]
-
-Linux Mint supports various add-ons to enhance your experience. These are all part of its [Cinnamon Spices][11] offering. They include:
-
-- Themes
-- Extensions
-- Applets
-- Desklets
-
-Applets and Desklets are tiny programs that you can add on top of the panel (near the system tray) and the desktop, respectively.
-
-![applet cinnamon][12]
-
-You can manage system default applets or download more from the official repositories:
-
-![applets cinnamon][13]
-
-Similarly, you can add a Desklet from the available defaults or get a new one from the repositories.
-
-![desklet cinnamon][14]
-
-Plenty of valuable utilities to monitor system resources, check the weather, and more.
-
-In addition, you get access to various themes built by the community that could easily give you a look you always wanted.
-
-![cinnamon theme][15]
-
-To complement all the above spices, you can use extensions to make the panel transparent, add a watermark to your desktop, enable windows tiling, and add some exciting window animations.
-
-![linux mint extensions][16]
-
-### 6. Compatible and Seamless User Experience
-
-Why do I highlight the user experience again?
-
-The best part about Cinnamon desktop is that it evolves in a way that respects and supports all functionalities.
-
-For instance, if you want to install an app you enjoyed using on KDE Plasma, it should work the same way here. There’s nothing special with Cinnamon desktop that would break the experience.
-
-![gnome accounts cinnamon][17]
-
-Similarly, the desktop adds features that try to co-exist with services from other desktop environments. For instance, calendar events support using GNOME Online Accounts.
-
-### 7. Panel Customization
-
-![linux mint panel][18]
-
-The dock, taskbar, or panel comprises an integral part of the user interface.
-
-Yes, other desktop environments allow you to customize the same to some extent. With Cinnamon, you get a good amount of control to tweak it.
-
-I think you get all the essential options a user would want.
-
-### Wrapping Up
-
-GNOME and KDE Plasma are popular desktop environments. However, Cinnamon is not far off on essential parts to provide an optimal user experience.
-
-_What do you think of the Cinnamon desktop environment? Do you prefer to try it with Linux Mint? Share your thoughts in the comments section below._
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/why-cinnamon/
-
-作者:[Ankush Das][a]
-选题:[lkxed][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/ankush/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-21-full.jpg
-[2]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-welcome.png
-[3]: https://itsfoss.com/install-cinnamon-on-ubuntu/
-[4]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-perf.png
-[5]: https://itsfoss.com/kde-customization/
-[6]: https://itsfoss.com/properly-theme-kde-plasma/
-[7]: https://itsfoss.com/best-kde-plasma-themes/
-[8]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-theme-customize.png
-[9]: https://itsfoss.com/customize-cinnamon-desktop/
-[10]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-desklet.png
-[11]: https://cinnamon-spices.linuxmint.com
-[12]: https://itsfoss.com/wp-content/uploads/2022/11/applet-cinnamon.png
-[13]: https://itsfoss.com/wp-content/uploads/2022/11/applets-cinnamon.png
-[14]: https://itsfoss.com/wp-content/uploads/2022/11/desklet-cinnamon.png
-[15]: https://itsfoss.com/wp-content/uploads/2022/11/cinnamon-theme.png
-[16]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-extensions.png
-[17]: https://itsfoss.com/wp-content/uploads/2022/11/gnome-accounts-cinnamon.png
-[18]: https://itsfoss.com/wp-content/uploads/2022/11/linux-mint-panel.png