From ab4f4b9f2892fda7d9f7773d6e37249a69d4b551 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Thu, 22 Dec 2022 17:15:53 +0800 Subject: [PATCH 001/357] 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 002/357] 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 003/357] 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 004/357] 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 005/357] =?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 006/357] =?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 007/357] =?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 008/357] =?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 009/357] =?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 010/357] =?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 011/357] =?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 012/357] =?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 013/357] =?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 014/357] =?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 015/357] =?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 016/357] =?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 017/357] =?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 018/357] =?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 019/357] =?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 020/357] =?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 021/357] 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 022/357] 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 023/357] 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 024/357] 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 025/357] 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 026/357] =?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 027/357] 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 028/357] =?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 029/357] 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 030/357] 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 031/357] 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 032/357] 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 033/357] 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 034/357] 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 035/357] 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 036/357] 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 037/357] 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 038/357] 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 039/357] 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 040/357] =?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 041/357] 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 042/357] 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 043/357] 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 044/357] =?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 045/357] =?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 046/357] =?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 047/357] 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 048/357] 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 049/357] 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 050/357] 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 051/357] 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 052/357] 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 053/357] 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 054/357] 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 055/357] 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 056/357] =?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 057/357] =?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 058/357] 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 059/357] 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 060/357] 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 061/357] 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 062/357] 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 063/357] 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 064/357] =?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 065/357] =?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 066/357] =?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 067/357] 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 068/357] 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 069/357] 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 070/357] =?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 071/357] 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 072/357] 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 073/357] 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 074/357] 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 075/357] 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 076/357] 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 077/357] 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 078/357] =?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 079/357] =?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 080/357] =?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 081/357] =?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 082/357] =?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 083/357] =?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 084/357] 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 085/357] 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 086/357] 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 087/357] 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 e9648a8b4ce905942f1be747da9ea0391426057c Mon Sep 17 00:00:00 2001 From: CanYellow Date: Wed, 4 Jan 2023 17:51:09 +0800 Subject: [PATCH 088/357] Update 20190331 Codecademy vs. The BBC Micro.md --- sources/talk/20190331 Codecademy vs. The BBC Micro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index bb5ee313c8..197795acea 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -2,7 +2,7 @@ [#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" [#]: author: "Two-Bit History https://twobithistory.org" [#]: collector: "lujun9972" -[#]: translator: "yesimmia" +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " 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 089/357] =?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 090/357] =?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 091/357] =?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 092/357] 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 093/357] 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 094/357] 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 095/357] =?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 096/357] =?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 097/357] =?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 098/357] 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 099/357] 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 100/357] 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 101/357] 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 102/357] 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 103/357] 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 104/357] 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 cd9b57c75afb8208ca1310432de8aafba29a1818 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sat, 7 Jan 2023 14:04:37 +0800 Subject: [PATCH 105/357] Update 20190331 Codecademy vs. The BBC Micro.md --- sources/talk/20190331 Codecademy vs. The BBC Micro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index bb5ee313c8..197795acea 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -2,7 +2,7 @@ [#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" [#]: author: "Two-Bit History https://twobithistory.org" [#]: collector: "lujun9972" -[#]: translator: "yesimmia" +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 17c948ba893a665eea6c5c9a0e36b6004d772142 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Sat, 7 Jan 2023 16:28:46 +0800 Subject: [PATCH 106/357] first commit --- .../20190331 Codecademy vs. The BBC Micro.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index 197795acea..48c58de54e 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -7,13 +7,26 @@ [#]: publisher: " " [#]: url: " " +[Codecademy][T1] 比之 [The BBC Micro][T2] +====== + +DN Codecademy vs. The BBC Micro ====== +20世纪70年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业霸主的神秘而笨重的机器。这是多么吸引人,少数狂热的爱好者注意到了并争相购买了属于自己的计算机。对更多的人而言,微形计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺一台家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,在他身后,他的显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它与之类似的广告表明世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 + +DN In the late 1970s, the computer, which for decades had been a mysterious, hulking machine that only did the bidding of corporate overlords, suddenly became something the average person could buy and take home. An enthusiastic minority saw how great this was and rushed to get a computer of their own. For many more people, the arrival of the microcomputer triggered helpless anxiety about the future. An ad from a magazine at the time promised that a home computer would “give your child an unfair advantage in school.” It showed a boy in a smart blazer and tie eagerly raising his hand to answer a question, while behind him his dim-witted classmates look on sullenly. The ad and others like it implied that the world was changing quickly and, if you did not immediately learn how to use one of these intimidating new devices, you and your family would be left behind. +在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20世纪70年代对英国来说都是平平无奇的十年。通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇1979年的政府报告焦虑没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[1][1]。英国似乎已经在计算机技术的角逐中落后了——所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 + +DN In the UK, this anxiety metastasized into concern at the highest levels of government about the competitiveness of the nation. The 1970s had been, on the whole, an underwhelming decade for Great Britain. Both inflation and unemployment had been high. Meanwhile, a series of strikes put London through blackout after blackout. A government report from 1979 fretted that a failure to keep up with trends in computing technology would “add another factor to our poor industrial performance.”[1][1] The country already seemed to be behind in the computing arena—all the great computer companies were American, while integrated circuits were being assembled in Japan and Taiwan. +作为一个大胆的举动,BBC(英国广播公司)——由政府建立的公共服务广播公司——决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划_][T3], + +TD In an audacious move, the BBC, a public service broadcaster funded by the government, decided that it would solve Britain’s national competitiveness problems by helping Britons everywhere overcome their aversion to computers. It launched the _Computer Literacy Project_, a multi-pronged educational effort that involved several TV series, a few books, a network of support groups, and a specially built microcomputer known as the BBC Micro. The project was so successful that, by 1983, an editor for BYTE Magazine wrote, “compared to the US, proportionally more of Britain’s population is interested in microcomputers.”[2][2] The editor marveled that there were more people at the Fifth Personal Computer World Show in the UK than had been to that year’s West Coast Computer Faire. Over a sixth of Great Britain watched an episode in the first series produced for the _Computer Literacy Project_ and 1.5 million BBC Micros were ultimately sold.[3][3] [An archive][4] containing every TV series produced and all the materials published for the _Computer Literacy Project_ was put on the web last year. I’ve had a huge amount of fun watching the TV series and trying to imagine what it would have been like to learn about computing in the early 1980s. But what’s turned out to be more interesting is how computing was _taught_. Today, we still worry about technology leaving people behind. Wealthy tech entrepreneurs and governments spend lots of money trying to teach kids “to code.” We have websites like Codecademy that make use of new technologies to teach coding interactively. One would assume that this approach is more effective than a goofy ’80s TV series. But is it? @@ -143,3 +156,7 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [24]: tmp.zNBs2lK4Ca#fnref:6 [25]: tmp.zNBs2lK4Ca#fnref:7 [26]: tmp.zNBs2lK4Ca#fnref:8 + +[T1]: https://www.codecademy.com/ +[T2]: https://bbcmicro.computer/ +[T3]: https://clp.bbcrewind.co.uk/history From 1aa7f67904c0f9a2558ac2026150d9d77c7142a9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 7 Jan 2023 17:02:02 +0800 Subject: [PATCH 107/357] 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 108/357] =?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 109/357] =?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 110/357] =?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 111/357] 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 112/357] 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 113/357] 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 114/357] 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 fa0f91eca2a0fd1b0ffd1da6dab99f82192306e4 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sun, 8 Jan 2023 16:31:13 +0800 Subject: [PATCH 115/357] h --- ...alks about Vanilla OS and Other Future Projects.md | 155 ------------------ 1 file changed, 155 deletions(-) delete mode 100644 sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md diff --git a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md deleted file mode 100644 index afe4c238a8..0000000000 --- a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md +++ /dev/null @@ -1,155 +0,0 @@ -[#]: subject: "'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects" -[#]: via: "https://news.itsfoss.com/interview-mirko-brombin/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects -====== - -A conversation with Mirko Brombin, founder of Vanilla OS and Bottles creator. - -!['Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects][1] - -There are many interesting personalities in the Linux and open-source world. - -We aim to interact with them and share their stories/thoughts with you. While we did a few interviews in 2021, we are resuming the mission to share insightful conversations with amazing folks in our open-source and Linux universe. - -[Mirko Brombin][2] is one such cool guy 😎 He works as a UX designer full-time, and despite doing all that, he is involved with open-source projects that we admire! - -If you did not know, he is the creator of **[Bottles][3]** (an app to run Windows apps/games on Linux) and **[Vanilla OS][4]**'s founder. - -So, I asked a couple of questions to provide details about his **projects**, his **work/life**, and some **valuable tips** for our readers who want to join the open-source community. - -**Q.** _**Many people think that we have more than enough distros. Why Vanilla OS?**_ - -![vanilla os][5] - -**A:** It is because this one is 10x faster and safer than all the others! Just kidding. **Vanilla OS was born mainly out of a need of mine and a desire to experiment**. I have been a Linux user for many years and have tried many distributions. They always suffered from the lack of certain features and concepts that led me to compulsively distro-hop. In recent years I have been a happy user of Silverblue, a distribution that made me explore the benefits of immutable systems. - -Silverblue is a fantastic project. It's one of the most solid distributions I have tried. However, it does not fully meet my needs. Maintaining Bottles often requires me to play games for testing purposes, and having an NVIDIA GPU, I have had quite a few problems with Silverblue, from driver installation to constant driver breakage and a distinctly noticeable drop in performance. Let's be clear, **NVIDIA is a problem in every distribution** but there is much that can be done to improve the quality of life for users using these GPUs, such as guiding driver installation, pre-configuring the setup for Optimus (Integrated+Dedicated) laptops, and allowing PRIME profile switching in an easy way. To date, only Ubuntu and derivatives have been pre-configured for this workflow. - -![nvidia illustration][6] - -My problem with Ubuntu-based distributions is that they do not offer an experience compatible with my needs either. **I am a devoted GNOME user**, I fully endorse the user experience envisioned by GNOME, and I am completely addicted to it. - -I understand the need for **Ubuntu, Pop!_OS,** and others to provide their own vision and branding, but these modifications are deal breakers for me and probably for many users. GNOME designers and developers are professionals that have been working in this industry for countless years, perfecting their vision, but many distributions change the workflow in ways that I cannot use my systems effectively. - -**Another problem with Ubuntu is that it does not offer immutability and atomicity of transactions**, two mechanisms that make the system solid and safe from easy breakage, for example, when an update goes wrong. - -![solving ubuntu problems][7] - -Adding up all those shortcomings and my passion for throwing myself into increasingly complex projects, I decided to create **Vanilla OS, an Ubuntu-based distribution, with a stock GNOME desktop** and all the merits of immutability and atomicity. - -**Q.****_Some of your projects, like Bottles and the upcoming Vanilla OS, are immensely popular. Do you have other project ideas for the future?_****A:** I have a long list of projects that I would like to accomplish in the future, but my next goal is to develop and contribute to a project idealized by @[TheEvilSkeleton][8]: a **utility to configure MangoHud, an overlay that displays useful information about game FPS, temperatures, CPU/GPU load and more**. - -With this new project, we plan to integrate it in Bottles and provide a graphical interface to customize MangoHud parameters. Similarly, we did the same thing for vkBasalt with vkbasalt-cli. - -**_Q. There will always be a new distro, even if some of us would rather not see more. When I tried out Vanilla OS, it did not feel like “just another distro” but with a unique angle to it._****_So, what’s your near future plan with Vanilla OS?_****A:** My future plan for Vanilla OS is **to make the project sustainable so that I can work on it full-time**. This is more of a dream in my drawer but, who knows. - -I have many ideas that I'll share on social media eventually. Something I can tell you now is that one of my dreams is to see Vanilla OS on multiple platforms like desktops, mobile, and tablets. I want to create an environment with an Apple-like continuity, without the scamming, as the **user experience is always the main focus for me.** - -Q. _**Bottles is a fantastic tool to help users run Windows software on Linux in a few clicks. Various other tools like Heroic Games Launcher have been trying to make things easy for Windows users to play their favorite games on Linux easily.**__**How do you think that’s going? Do you have any stats to share about that through Bottles?**_**A:** Heroic is a project that I admire and follow closely. I am friends with [Flavio][9] (the founder) and [Linguin][10] (one of the developers), and I know how hard the whole team is working to make the gaming experience on Linux more and more fulfilling, so **a Hooray! for Heroic**. - -![Heroic Games launcher][11] - -**Bottles** is like a son to me, I have raised him at my best, and he is giving me a lot of satisfaction. Recently I had to decrease my presence in the project to focus on others and my daily job. This has been possible thanks to a team of contributors who have joined over time, people who share the same vision of the project as I do and cherish its ideals. - -![bottles screenshot][12] - -The structure of the project is changing radically. Initially, I was the one making every decision, whereas now everything is discussed and put to a vote, trying to get a shared verdict. In this, it is like watching a son grow up and make his own decisions, aware of what I have taught him over time. - -**Release 2022.11.14**, is the first release entirely developed by the Bottles team. One of the best releases ever in my opinion. For this, I have to give special thanks to @**TheEvilSkeleton,** who led the release, and [noëlle][13], who made the graphics part. - -A small milestone I would like to share with you is the **achievement of 400,000+ downloads from Flathub.** 🎉 - -![Bottle download stats][14] - -_**Q. If someone gets interested in contributing to any one of your projects. What advice would you give them? What programming language should they focus on if they want to collaborate with you?**_**A:** My advice is not to be afraid to contribute and ask questions, even if it's a "bad" question. Even if you are afraid. There is no such thing as a bad contribution. A well-written ticket is already a great way to do your part. Personally, I don't give weight to contributions, I give credit to those who have spent much more time certainly, but for me, every single contribution is a small brick that helps the project grow. - -**I mostly use Python and Go** for my projects but I would not make it a requirement. If a user wants to help with Vanilla OS, for example by making an application we need, well, they can use whatever language they like. - -![python programming][15] - -The only thing I would ask is to carefully consider the language and choose the one best suited for the type of project you need to create, as the choice will affect who can contribute (or not), for example, I would never choose Rust for a small tool, as Rust is not an easy language for newcomers and new contributors typically contribute to smaller projects that are written in user-friendly languages. - -_**Q. Other than your creations, what other project or distro would you mention as one of your favorites?**_**A:** I have many projects that I would like to mention here, but it would become a season of Vikings. Among all of them, the one that, in my opinion, deserves mention is **Distrobox, a project made by** [Luca di Maio][16]**, a friend of mine as well as an active member in the making of the Vanilla OS project.** - -Distrobox is a tool that installs Linux distributions inside managed containers integrated with the system, allowing, for example, to install and run software in a Fedora container while running Ubuntu, integrating it seamlessly with the host system. - -Distrobox is also employed by Apx, the Vanilla OS package manager. Every package installed through Apx resides in the Distrobox container, keeping the system safe from any discrepancies or breaks from a possible update gone wrong. - -_**Q. How do you keep up with all the projects you’re working on? What’s your mantra on productivity or time management?**_**A:** Contrary to what you may think, I don't work much on my projects, my daily job takes a lot of my time, and I have many other passions to cultivate. - -![productivity][17] - -I don't have any particular time management or organization; normally I try to stay focused on my projects by reasoning about them in my spare time and taking notes, so as soon as I get back to work on a project, I already have a clear idea of what I need to do. - -_**Q. You are also a GNOME Foundation member. What’s it like being a GNOME foundation member? Can anyone apply to be a part of it?**_**A:** I am still a very recent member and I don't have much to say, except that it is wonderful to be inside the project that I absolutely love and respect the most, as it has changed the way I use my PC, with a workflow designed to be free of distractions and where everything is intuitive and immediate; in short, where the user experience is always first. - -Anyone can apply, as long as they are an active person with demonstrable contributions. - -**_Q. As a GNOME foundation member, what do you think GNOME should improve compared to the KDE Plasma side?_****A:** I don't want to sound brash but I think **GNOME is currently complete as it is**. I've seen it grow since the beginning and I know how many steps have been taken since GNOME 2 and 3, I'm sure many more are to come but **right now I can't find a lack in comparison to KDE**. - -![gnome user][18] - -I know at this point someone is saying "_Eh but KDE has themes and a setting for this and that._" and I agree, it is a fact that KDE is the most customizable desktop environment of all, but you have to understand that GNOME doesn't implement all these settings because the whole thing is designed to provide a single, but efficient, user experience. Providing a setting to change every single aspect of it is more of an invitation for the user to do so, feeding bug reports for a different experience than designed. - -It is important to understand that more customization inevitably leads to more discrepancies and bugs, as all components of the system are meant to work in a certain way, and altering them takes you out of the testing environment that is used in GNOME. - -**_Q. What do you like to do in your spare time?_** - -![world history and podcast][19] - -**A:** In my free time, I love to **write recipes** or listen to the **world's history podcasts**. - -10-yo Mirko would find me boring, haha 😁 - -_**Q. A message to our readers (to inspire them/add a tip that you always wanted to share, etc)**_ - -![dialogue is good][20] - -**A:** Don't be afraid to contribute or speak. I often find that someone has a great idea to solve a problem and has never told anyone because of the fear that it was wrong. Let's be clear that a contribution is something to improve and is therefore always welcome. - -Certainly, not all ideas are feasible or correct but dialogue is a great way to find out. - -Don't be shy; come on! - -> 💭 Share your thoughts on the interview and if you want us to talk to your favorite open-source/Linux creator, feel free to mention them in the comments. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/interview-mirko-brombin/ - -作者:[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/interview-with-mirko-brombin.png -[2]: https://mirko.pm -[3]: https://usebottles.com -[4]: https://vanillaos.org -[5]: https://news.itsfoss.com/content/images/2022/12/vanillaos.jpg -[6]: https://news.itsfoss.com/content/images/2022/12/nvidia.png -[7]: https://news.itsfoss.com/content/images/2022/12/ubuntu.png -[8]: https://github.com/TheEvilSkeleton -[9]: https://github.com/flavioislima -[10]: https://github.com/imLinguin -[11]: https://news.itsfoss.com/content/images/2022/12/Heroic_2.jpg -[12]: https://news.itsfoss.com/content/images/2022/12/bottle-creation-dark.png -[13]: https://github.com/jannuary -[14]: https://news.itsfoss.com/content/images/2022/12/download-milestone.png -[15]: https://news.itsfoss.com/content/images/2022/12/python.png -[16]: https://github.com/89luca89 -[17]: https://news.itsfoss.com/content/images/2022/12/productivity.png -[18]: https://news.itsfoss.com/content/images/2022/12/gnome-1.png -[19]: https://news.itsfoss.com/content/images/2022/12/history-1.png -[20]: https://news.itsfoss.com/content/images/2022/12/dialogue.png From 943bcb7f9b060f2d62ae6abc03e251c8ce414877 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Mon, 9 Jan 2023 07:57:34 +0800 Subject: [PATCH 116/357] b --- sources/talk/20190331 Codecademy vs. The BBC Micro.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index 48c58de54e..fd86fa12d0 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -33,10 +33,17 @@ In an audacious move, the BBC, a public service broadcaster funded by the govern ### The Computer Literacy Project +1978年,BBC 在一部名为《芯片来了》(["Now the Chips Are Down"][T5])(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 + +DN The microcomputer revolution began in 1975 with the release of [the Altair 8800][5]. Only two years later, the Apple II, TRS-80, and Commodore PET had all been released. Sales of the new computers exploded. In 1978, the BBC explored the dramatic societal changes these new machines were sure to bring in a documentary called “Now the Chips Are Down.” +该纪录片充满担忧。在前5分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放以及屏幕上绿色的电脉冲在放大后的芯片上起舞,解说员进一步说这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。纪录片继续探讨了机器人如何用于汽车自动化组装以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它斥责了英国政府在应对未来的大规模失业的准备上做得不够。 + +DN The documentary was alarming. Within the first five minutes, the narrator explains that microelectronics will “totally revolutionize our way of life.” As eerie synthesizer music plays, and green pulses of electricity dance around a magnified microprocessor on screen, the narrator argues that the new chips are why “Japan is abandoning its ship building, and why our children will grow up without jobs to go to.” The documentary goes on to explore how robots are being used to automate car assembly and how the European watch industry has lost out to digital watch manufacturers in the United States. It castigates the British government for not doing more to prepare the country for a future of mass unemployment. +该纪录片据信可能在英国议会上展示。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。 The documentary was supposedly shown to the British Cabinet.[4][6] Several government agencies, including the Department of Industry and the Manpower Services Commission, became interested in trying to raise awareness about computers among the British public. The Manpower Services Commission provided funds for a team from the BBC’s education division to travel to Japan, the United States, and other countries on a fact-finding trip. This research team produced a report that cataloged the ways in which microelectronics would indeed mean major changes for industrial manufacturing, labor relations, and office work. In late 1979, it was decided that the BBC should make a ten-part TV series that would help regular Britons “learn how to use and control computers and not feel dominated by them.”[5][7] The project eventually became a multimedia endeavor similar to the _Adult Literacy Project_, an earlier BBC undertaking involving both a TV series and supplemental courses that helped two million people improve their reading. The producers behind the _Computer Literacy Project_ were keen for the TV series to feature “hands-on” examples that viewers could try on their own if they had a microcomputer at home. These examples would have to be in BASIC, since that was the language (really the entire shell) used on almost all microcomputers. But the producers faced a thorny problem: Microcomputer manufacturers all had their own dialects of BASIC, so no matter which dialect they picked, they would inevitably alienate some large fraction of their audience. The only real solution was to create a new BASIC—BBC BASIC—and a microcomputer to go along with it. Members of the British public would be able to buy the new microcomputer and follow along without worrying about differences in software or hardware. @@ -160,3 +167,6 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [T1]: https://www.codecademy.com/ [T2]: https://bbcmicro.computer/ [T3]: https://clp.bbcrewind.co.uk/history + +[T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down +[T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown From 0367ed273e297019cea7d5a28a18b640ff553077 Mon Sep 17 00:00:00 2001 From: Bright Huang Date: Mon, 9 Jan 2023 08:07:17 +0800 Subject: [PATCH 117/357] b2 --- .../20190331 Codecademy vs. The BBC Micro.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index fd86fa12d0..e17743df36 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -10,7 +10,7 @@ [Codecademy][T1] 比之 [The BBC Micro][T2] ====== -DN +TD Codecademy vs. The BBC Micro ====== @@ -24,16 +24,22 @@ In the late 1970s, the computer, which for decades had been a mysterious, hulkin DN In the UK, this anxiety metastasized into concern at the highest levels of government about the competitiveness of the nation. The 1970s had been, on the whole, an underwhelming decade for Great Britain. Both inflation and unemployment had been high. Meanwhile, a series of strikes put London through blackout after blackout. A government report from 1979 fretted that a failure to keep up with trends in computing technology would “add another factor to our poor industrial performance.”[1][1] The country already seemed to be behind in the computing arena—all the great computer companies were American, while integrated circuits were being assembled in Japan and Taiwan. -作为一个大胆的举动,BBC(英国广播公司)——由政府建立的公共服务广播公司——决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划_][T3], +BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划 (Computer Literacy Project)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的第五届个人电脑世界展 (the Fifth Personal Computer World Show) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _计算机认知计划_ 出品的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] -TD +DN In an audacious move, the BBC, a public service broadcaster funded by the government, decided that it would solve Britain’s national competitiveness problems by helping Britons everywhere overcome their aversion to computers. It launched the _Computer Literacy Project_, a multi-pronged educational effort that involved several TV series, a few books, a network of support groups, and a specially built microcomputer known as the BBC Micro. The project was so successful that, by 1983, an editor for BYTE Magazine wrote, “compared to the US, proportionally more of Britain’s population is interested in microcomputers.”[2][2] The editor marveled that there were more people at the Fifth Personal Computer World Show in the UK than had been to that year’s West Coast Computer Faire. Over a sixth of Great Britain watched an episode in the first series produced for the _Computer Literacy Project_ and 1.5 million BBC Micros were ultimately sold.[3][3] +去年,一份包括了由 _计算机认知计划_ 出版的所有材料与出品的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑计算是什么图景。不过我发现更有兴趣的是时年是如何教授电脑计算的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? + +DN [An archive][4] containing every TV series produced and all the materials published for the _Computer Literacy Project_ was put on the web last year. I’ve had a huge amount of fun watching the TV series and trying to imagine what it would have been like to learn about computing in the early 1980s. But what’s turned out to be more interesting is how computing was _taught_. Today, we still worry about technology leaving people behind. Wealthy tech entrepreneurs and governments spend lots of money trying to teach kids “to code.” We have websites like Codecademy that make use of new technologies to teach coding interactively. One would assume that this approach is more effective than a goofy ’80s TV series. But is it? +### 计算机认知计划 ([Computer Literacy Project][T3]) + +DN ### The Computer Literacy Project -1978年,BBC 在一部名为《芯片来了》(["Now the Chips Are Down"][T5])(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 +微型计算机革命始于1975年 [Altair 8800][5] 的发布。两年后,Apple II,TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978年,BBC 在一部名为《芯片来了》(["Now the Chips Are Down"][T5])(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 DN The microcomputer revolution began in 1975 with the release of [the Altair 8800][5]. Only two years later, the Apple II, TRS-80, and Commodore PET had all been released. Sales of the new computers exploded. In 1978, the BBC explored the dramatic societal changes these new machines were sure to bring in a documentary called “Now the Chips Are Down.” @@ -43,7 +49,7 @@ The microcomputer revolution began in 1975 with the release of [the Altair 8800] DN The documentary was alarming. Within the first five minutes, the narrator explains that microelectronics will “totally revolutionize our way of life.” As eerie synthesizer music plays, and green pulses of electricity dance around a magnified microprocessor on screen, the narrator argues that the new chips are why “Japan is abandoning its ship building, and why our children will grow up without jobs to go to.” The documentary goes on to explore how robots are being used to automate car assembly and how the European watch industry has lost out to digital watch manufacturers in the United States. It castigates the British government for not doing more to prepare the country for a future of mass unemployment. -该纪录片据信可能在英国议会上展示。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。 +该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。 The documentary was supposedly shown to the British Cabinet.[4][6] Several government agencies, including the Department of Industry and the Manpower Services Commission, became interested in trying to raise awareness about computers among the British public. The Manpower Services Commission provided funds for a team from the BBC’s education division to travel to Japan, the United States, and other countries on a fact-finding trip. This research team produced a report that cataloged the ways in which microelectronics would indeed mean major changes for industrial manufacturing, labor relations, and office work. In late 1979, it was decided that the BBC should make a ten-part TV series that would help regular Britons “learn how to use and control computers and not feel dominated by them.”[5][7] The project eventually became a multimedia endeavor similar to the _Adult Literacy Project_, an earlier BBC undertaking involving both a TV series and supplemental courses that helped two million people improve their reading. The producers behind the _Computer Literacy Project_ were keen for the TV series to feature “hands-on” examples that viewers could try on their own if they had a microcomputer at home. These examples would have to be in BASIC, since that was the language (really the entire shell) used on almost all microcomputers. But the producers faced a thorny problem: Microcomputer manufacturers all had their own dialects of BASIC, so no matter which dialect they picked, they would inevitably alienate some large fraction of their audience. The only real solution was to create a new BASIC—BBC BASIC—and a microcomputer to go along with it. Members of the British public would be able to buy the new microcomputer and follow along without worrying about differences in software or hardware. @@ -167,6 +173,6 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [T1]: https://www.codecademy.com/ [T2]: https://bbcmicro.computer/ [T3]: https://clp.bbcrewind.co.uk/history - +[T4]: https://archive.org/details/byte-magazine?tab=about [T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down [T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown From 7e745ce427c2fbe394acd463af1c6507ea523a59 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 9 Jan 2023 08:54:09 +0800 Subject: [PATCH 118/357] 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 119/357] 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 120/357] =?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 121/357] 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 122/357] =?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 123/357] 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 124/357] =?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 125/357] =?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 126/357] 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 127/357] 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 128/357] 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 129/357] 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 130/357] =?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 131/357] =?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 132/357] =?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 133/357] 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 134/357] 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 135/357] 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 136/357] 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 137/357] 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 138/357] 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 139/357] 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 140/357] 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 141/357] 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 142/357] =?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 143/357] =?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 144/357] 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 145/357] 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 146/357] 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 147/357] =?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 148/357] 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 149/357] =?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 150/357] =?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 151/357] =?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 152/357] =?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 153/357] =?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 154/357] =?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 155/357] =?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 156/357] =?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 ad2f99b1ef7f3729b487ba318b4be3c725c7ede0 Mon Sep 17 00:00:00 2001 From: Cubik Date: Fri, 13 Jan 2023 23:43:27 -0500 Subject: [PATCH 157/357] =?UTF-8?q?[=E6=AD=A3=E5=9C=A8=E7=BF=BB=E8=AF=91][?= =?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 翻译进度:Introduction --- ...️ 11 New Distros to look forward to in 2023.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 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 ed8b300ca3..afd09d7da0 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 @@ -7,28 +7,28 @@ [#]: publisher: " " [#]: url: " " -11 New Distros to look forward to in 2023 +2023 年值得期待的 11 个新发行版 ====== -What are you looking forward to in 2023? Try these distros! +你对 2023 年有什么期待?试试这些发行版吧! -![11 New Distros to look forward to in 2023][1] +![2023 年值得期待的 11 个新发行版][1] -It's time to say goodbye to 2022! 📆 +是时候向 2022 年说再见了!📆 -There were many distro releases in 2022, some more extraordinary than others. +2022 年有很多发行版发布,有些比其他的更出色。 -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. +随着更加关注用户体验和性能方面的趋势,Linux 发行版在过去的一年中有了显著的发展。 -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]. +对于你,最终用户,你现在有几个选择。你可以尝试一些 [对初学者友好的选项][2] 或者尝试一些 [高级用户的发行版][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? 🤔 +所以,你在 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 From 7523da2825e664c593a28992421f077aa68b6ea6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 14 Jan 2023 16:45:15 +0800 Subject: [PATCH 158/357] 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 159/357] 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 160/357] 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 161/357] 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 162/357] =?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 e59524ad963d7a18e850aa040ccb9a7724abea26 Mon Sep 17 00:00:00 2001 From: Cubik Date: Sun, 15 Jan 2023 00:53:59 -0500 Subject: [PATCH 163/357] =?UTF-8?q?[=E6=AD=A3=E5=9C=A8=E7=BF=BB=E8=AF=91][?= =?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 翻译进度: - 1. Vanilla OS - 2. XeroLinux --- ...⭐️ 11 New Distros to look forward to in 2023.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 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 afd09d7da0..926981e038 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 @@ -34,13 +34,15 @@ ![vanilla os][4] -Vanilla OS is an Ubuntu-based distro that is the brainchild of Mirko Brombin, the creator of [Bottles][5]. +Ubuntu 的发行版,是 [Bottles][5] 的创建者 Mirko Brombin 的心血结晶。 -It aims to provide a **clean, vanilla GNOME experience with on-demand immutability** and an exceptional first-time setup experience. +它旨在提供一个具有**干净,原生的 GNOME 体验,以及按需不变性**和优秀的首次安装体验。 -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. +> LCTT 译注:按需不变性(on-demand immutability),指一个可以按需启用的功能,用于确保系统文件不会被随意更新。 -It is yet to receive a stable release (soon) and is set to receive many improvements in 2023. +如果你想尝试一些新的东西并且想尝试一下按需不变性这个令 Vanilla OS 如此独特的功能,可以尝试一下这个发行版。 + +它还没有,在一段时间内也不会收到稳定版本,并且准备在 2023 年收到许多改进。 [Vanilla OS][6] @@ -48,13 +50,13 @@ It is yet to receive a stable release (soon) and is set to receive many improvem ![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. +Steve,也就是 TechXero,开始了 [XeroLinux][8] 作为一个兴趣项目,这个项目并不是一个主流发行版,也没有各种花里胡哨的东西。 -An **'eye-candy' version of Arch Linux** offers a pleasant out-of-the-box experience with a few exciting features. +Arch Linux 的 **'养眼' 版本** 提供了令人愉快的开箱即用体验和一些令人兴奋的功能。 -You can try this if you want a more accessible Arch Linux experience. +如果你想要一个更加易用的 Arch Linux 体验,可以尝试这个。 -**From January 2023**, XeroLinux will be switching to a monthly release schedule. So, you can expect plenty of updates in 2023! +**从 2023 年 1 月起**,XeroLinux 将切换到每月发布的计划。所以,你可以期待 2023 年有很多更新! [XeroLinux][9] From 8955a1cc46237860ca22e25efc10d699dff1b7ee Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 15 Jan 2023 14:52:28 +0800 Subject: [PATCH 164/357] 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 607193f47d5acbf75c3590c42147f3ea0b282cdc Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sun, 15 Jan 2023 23:33:31 +0800 Subject: [PATCH 165/357] h2 --- .../20190331 Codecademy vs. The BBC Micro.md | 63 ++++++++++++++++++- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md index e17743df36..f0b7306e90 100644 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md @@ -24,12 +24,12 @@ In the late 1970s, the computer, which for decades had been a mysterious, hulkin DN In the UK, this anxiety metastasized into concern at the highest levels of government about the competitiveness of the nation. The 1970s had been, on the whole, an underwhelming decade for Great Britain. Both inflation and unemployment had been high. Meanwhile, a series of strikes put London through blackout after blackout. A government report from 1979 fretted that a failure to keep up with trends in computing technology would “add another factor to our poor industrial performance.”[1][1] The country already seemed to be behind in the computing arena—all the great computer companies were American, while integrated circuits were being assembled in Japan and Taiwan. -BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划 (Computer Literacy Project)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的第五届个人电脑世界展 (the Fifth Personal Computer World Show) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _计算机认知计划_ 出品的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] +BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划 (Computer Literacy Project)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的第五届个人电脑世界展 (the Fifth Personal Computer World Show) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _计算机认知计划_ 制作的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] DN In an audacious move, the BBC, a public service broadcaster funded by the government, decided that it would solve Britain’s national competitiveness problems by helping Britons everywhere overcome their aversion to computers. It launched the _Computer Literacy Project_, a multi-pronged educational effort that involved several TV series, a few books, a network of support groups, and a specially built microcomputer known as the BBC Micro. The project was so successful that, by 1983, an editor for BYTE Magazine wrote, “compared to the US, proportionally more of Britain’s population is interested in microcomputers.”[2][2] The editor marveled that there were more people at the Fifth Personal Computer World Show in the UK than had been to that year’s West Coast Computer Faire. Over a sixth of Great Britain watched an episode in the first series produced for the _Computer Literacy Project_ and 1.5 million BBC Micros were ultimately sold.[3][3] -去年,一份包括了由 _计算机认知计划_ 出版的所有材料与出品的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑计算是什么图景。不过我发现更有兴趣的是时年是如何教授电脑计算的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? +去年,一份包括了由 _计算机认知计划_ 出版的所有材料与制作的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑计算是什么图景。不过我发现更有兴趣的是时年是如何教授电脑计算的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? DN [An archive][4] containing every TV series produced and all the materials published for the _Computer Literacy Project_ was put on the web last year. I’ve had a huge amount of fun watching the TV series and trying to imagine what it would have been like to learn about computing in the early 1980s. But what’s turned out to be more interesting is how computing was _taught_. Today, we still worry about technology leaving people behind. Wealthy tech entrepreneurs and governments spend lots of money trying to teach kids “to code.” We have websites like Codecademy that make use of new technologies to teach coding interactively. One would assume that this approach is more effective than a goofy ’80s TV series. But is it? @@ -49,44 +49,98 @@ The microcomputer revolution began in 1975 with the release of [the Altair 8800] DN The documentary was alarming. Within the first five minutes, the narrator explains that microelectronics will “totally revolutionize our way of life.” As eerie synthesizer music plays, and green pulses of electricity dance around a magnified microprocessor on screen, the narrator argues that the new chips are why “Japan is abandoning its ship building, and why our children will grow up without jobs to go to.” The documentary goes on to explore how robots are being used to automate car assembly and how the European watch industry has lost out to digital watch manufacturers in the United States. It castigates the British government for not doing more to prepare the country for a future of mass unemployment. -该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。 +该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份历数微电子技术在工业制造、人力关系与办公室工作等领域最终将意味着哪些方面的重大改变的研究报告。70年代末,BBC 决定制作一部帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”的十集电视系列片[5][7] 。这一努力最终成为了一个与_成人扫盲计划(Adult Literacy Project)_相似的多媒体项目。_成人扫盲计划(Adult Literacy Project)_是 BBC 此前进行的一项涉及电视系列片以及辅助课程的帮助两百万人提高他们的阅读能力的项目。 + +DN The documentary was supposedly shown to the British Cabinet.[4][6] Several government agencies, including the Department of Industry and the Manpower Services Commission, became interested in trying to raise awareness about computers among the British public. The Manpower Services Commission provided funds for a team from the BBC’s education division to travel to Japan, the United States, and other countries on a fact-finding trip. This research team produced a report that cataloged the ways in which microelectronics would indeed mean major changes for industrial manufacturing, labor relations, and office work. In late 1979, it was decided that the BBC should make a ten-part TV series that would help regular Britons “learn how to use and control computers and not feel dominated by them.”[5][7] The project eventually became a multimedia endeavor similar to the _Adult Literacy Project_, an earlier BBC undertaking involving both a TV series and supplemental courses that helped two million people improve their reading. +_计算机认知计划_ 背后的制作方热衷于以“实操”示例为特色的电视系列片。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子不得不都是基于 BASIC 语言的,因为这是在几乎所有的微型计算机上都使用的编程语言 (实际是整个交互界面(shell))。但是制作方面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言——BBC BASIC——以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机并依照示例操作而不需要担心软硬件上的差异带来的问题。 + +DN The producers behind the _Computer Literacy Project_ were keen for the TV series to feature “hands-on” examples that viewers could try on their own if they had a microcomputer at home. These examples would have to be in BASIC, since that was the language (really the entire shell) used on almost all microcomputers. But the producers faced a thorny problem: Microcomputer manufacturers all had their own dialects of BASIC, so no matter which dialect they picked, they would inevitably alienate some large fraction of their audience. The only real solution was to create a new BASIC—BBC BASIC—and a microcomputer to go along with it. Members of the British public would be able to buy the new microcomputer and follow along without worrying about differences in software or hardware. +BBC 的制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。_计算机认知计划_的技术顾问也是如此建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的(他们可能没有完全那样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量将弥补一些 BASIC 语言的常见缺点。[6][8] + +DN The TV producers and presenters at the BBC were not capable of building a microcomputer on their own. So they put together a specification for the computer they had in mind and invited British microcomputer companies to propose a new machine that met the requirements. The specification called for a relatively powerful computer because the BBC producers felt that the machine should be able to run real, useful applications. Technical consultants for the _Computer Literacy Project_ also suggested that, if it had to be a BASIC dialect that was going to be taught to the entire nation, then it had better be a good one. (They may not have phrased it exactly that way, but I bet that’s what they were thinking.) BBC BASIC would make up for some of BASIC’s usual shortcomings by allowing for recursion and local variables.[6][8] +BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名:艾康电脑)制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 Sinclair Research 公司的 [Clive Sinclair][T7] 的申请,Sinclair Research 公司凭借 Sinclair ZX80 微型计算机的推出在1980年将微型计算机的大众市场引入了英国。Sinclair 公司的新产品,ZX81,虽然更便宜但是性能不足以满足 BBC 的要求。Acorn 的新型的内部称为 Proton 原型计算机更加昂贵但是性能更好,更具备扩展性,BBC 对此印象深刻。该型号的计算机从未作为 Proton 进行营销与销售,Acorn 公司代之以 BBC Micro 的名称在1981年12月发布。BBC Micro 又被亲切地称为“The Beeb”,你可以以235英磅的价格购得其16k内存的版本或者以335英磅的价格获得其32k内存的版本。 + +DN The BBC eventually decided that a Cambridge-based company called Acorn Computers would make the BBC Micro. In choosing Acorn, the BBC passed over a proposal from Clive Sinclair, who ran a company called Sinclair Research. Sinclair Research had brought mass-market microcomputing to the UK in 1980 with the Sinclair ZX80. Sinclair’s new computer, the ZX81, was cheap but not powerful enough for the BBC’s purposes. Acorn’s new prototype computer, known internally as the Proton, would be more expensive but more powerful and expandable. The BBC was impressed. The Proton was never marketed or sold as the Proton because it was instead released in December 1981 as the BBC Micro, also affectionately called “The Beeb.” You could get a 16k version for £235 and a 32k version for £335. +1980年,Acorn 是英国计算机工业的失败者,但是 BBC Micro 成就了 Acorn 公司的传统。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM”如今表示“先进 RISC 架构设备(Advanced RISC Machine)”,然而最初它代表的是“Acorn RISC 架构设备(Acorn RISC Machine)”。ARM 架构背后的 ARM 公司(ARM Holding)就是 Acorn 公司在1990年之后的延续。 + +DN In 1980, Acorn was an underdog in the British computing industry. But the BBC Micro helped establish the company’s legacy. Today, the world’s most popular microprocessor instruction set is the ARM architecture. “ARM” now stands for “Advanced RISC Machine,” but originally it stood for “Acorn RISC Machine.” ARM Holdings, the company behind the architecture, was spun out from Acorn in 1990. +![Picture of the BBC Micro.][9] _BBC Micro 的一幅拙劣图片,我摄于美国加州山景城(Mountain View)的计算机历史博物馆(Computer History Museum)_ + +DN ![Picture of the BBC Micro.][9] _A bad picture of a BBC Micro, taken by me at the Computer History Museum in Mountain View, California._ +### 名为“计算机程序(The Computer Programme)”的电视系列片 + +DN ### The Computer Programme +十几个不同的电视系列片最终作为_计算机认知计划_的一部分创作出来。第一部作品是一部名为_计算机程序(The Computer Programme)_的十集电视系列片。该系列片在1982年初播出了十周。一百万人每周晚上收看该节目,另有25万人收看该节目在每周日与周一下午的重播。 + +DN A dozen different TV series were eventually produced as part of the _Computer Literacy Project_, but the first of them was a ten-part series known as _The Computer Programme_. The series was broadcast over ten weeks at the beginning of 1982. A million people watched each week-night broadcast of the show; a quarter million watched the reruns on Sunday and Monday afternoon. +这一电视节目有两名主持人,Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演具有大型计算机编程职业经验的专家,这是一个启发性的配置。该节目造就了[略显尴尬的过渡][10]——Serle 经常直接从与 McNaught-Davis 的对话中过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,它将更难以理解。 + +DN The show was hosted by two presenters, Chris Serle and Ian McNaught-Davis. Serle plays the neophyte while McNaught-Davis, who had professional experience programming mainframe computers, plays the expert. This was an inspired setup. It made for [awkward transitions][10]—Serle often goes directly from a conversation with McNaught-Davis to a bit of walk-and-talk narration delivered to the camera, and you can’t help but wonder whether McNaught-Davis is still standing there out of frame or what. But it meant that Serle could voice the concerns that the audience would surely have. He can look intimidated by a screenful of BASIC and can ask questions like, “What do all these dollar signs mean?” At several points during the show, Serle and McNaught-Davis sit down in front of a computer and essentially pair program, with McNaught-Davis providing hints here and there while Serle tries to figure it out. It would have been much less relatable if the show had been presented by a single, all-knowing narrator. +该节目也在努力展示计算在普通人生活中的实际应用。到80年代早期,家庭电脑已经开始与小孩子和电子游戏联系在一起。_计算机认知计划_ 的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣[7][11]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一名购买了一台 Commodore PET 电脑用于辅助管理她的糖果店的女性。这名名叫 Phyllis 的女性受访者看上去大约60多岁,她在使用 PET 完成她的会计工作上不存在任何问题,甚至开始使用 PET 为其他企业做计算工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢电脑工作。画面接着变成了对一名青少年的采访,他介绍了他是如何修改 _[Breakout][T8]_ 这款电子游戏以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果人群中的 Phyllis 也会使用电脑,那么你当然也可以。 + +DN The show also made an effort to demonstrate the many practical applications of computing in the lives of regular people. By the early 1980s, the home computer had already begun to be associated with young boys and video games. The producers behind _The Computer Programme_ sought to avoid interviewing “impressively competent youngsters,” as that was likely “to increase the anxieties of older viewers,” a demographic that the show was trying to attract to computing.[7][11] In the first episode of the series, Gill Nevill, the show’s “on location” reporter, interviews a woman that has bought a Commodore PET to help manage her sweet shop. The woman (her name is Phyllis) looks to be 60-something years old, yet she has no trouble using the computer to do her accounting and has even started using her PET to do computer work for other businesses, which sounds like the beginning of a promising freelance career. Phyllis says that she wouldn’t mind if the computer work grew to replace her sweet shop business since she enjoys the computer work more. This interview could instead have been an interview with a teenager about how he had modified _Breakout_ to be faster and more challenging. But that would have been encouraging to almost nobody. On the other hand, if Phyllis, of all people, can use a computer, then surely you can too. +虽然该节目的特色是大量的 BASIC 编程,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中有一个关于[Jacquard][T9]织机(译注:中文网络译为雅卡尔提布机)的讨论。Jacquard 织机实现了两件事。其一,它揭示了计算机并不仅仅基于过去发明的神秘技术——计算的一些基本原则可以上溯到两百年前,就跟你可以在纸上打孔来控制纺织机的想法一样简单。其二,经线与纬线的交织用于解释选择二进制(即纬线是从上方还是下方穿过经线)是如何在重复了一次又一次之后足以产生巨大变化的。当然,节目接下来继续讨论信息是如何使用二进制存储的。 + +DN While the show features lots of BASIC programming, what it really wants to teach its audience is how computing works in general. The show explains these general principles with analogies. In the second episode, there is an extended discussion of the Jacquard loom, which accomplishes two things. First, it illustrates that computers are not based only on magical technology invented yesterday—some of the foundational principles of computing go back two hundred years and are about as simple as the idea that you can punch holes in card to control a weaving machine. Second, the interlacing of warp and weft threads is used to demonstrate how a binary choice (does the weft thread go above or below the warp thread?) is enough, when repeated over and over, to produce enormous variation. This segues, of course, into a discussion of how information can be stored using binary digits. +在该节目中接下来是有关一件能够播放在一卷长长的分段的打孔卡片上编码的音乐的蒸汽风琴。这个类比用以解释 BASIC 中的子程序。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在工作室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下而插入一个回到第一次播放副歌的分段的指令,这就是子程序。这是一个绝妙的解释并将可能在听众的脑海中久久挥之不去。 + +DN Later in the show there is a section about a steam organ that plays music encoded in a long, segmented roll of punched card. This time the analogy is used to explain subroutines in BASIC. Serle and McNaught-Davis lay out the whole roll of punched card on the floor in the studio, then point out the segments where it looks like a refrain is being repeated. McNaught-Davis explains that a subroutine is what you would get if you cut out those repeated segments of card and somehow added an instruction to go back to the original segment that played the refrain for the first time. This is a brilliant explanation and probably one that stuck around in people’s minds for a long time afterward. +我仅仅摘录了一些例子,不过我认为总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原则使计算机不再神秘。这一节目本可以致力于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在1983年写就的一篇回忆文章中,_计算机认知计划_的总制作人 John Radcliffe 如是写道: + +DN I’ve picked out only a few examples, but I think in general the show excels at demystifying computers by explaining the principles that computers rely on to function. The show could instead have focused on teaching BASIC, but it did not. This, it turns out, was very much a conscious choice. In a retrospective written in 1983, John Radcliffe, the executive producer of the _Computer Literacy Project_, wrote the following: +> 如果计算机将如我们所相信的那样重要,对这一主题的真正理解对每个人都很重要,可能会几乎与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来…… 我们相信一旦人们掌握了这些原则,简单地说,它们将可以进一步深入该主题。 + +DN > If computers were going to be as important as we believed, some genuine understanding of this new subject would be important for everyone, almost as important perhaps as the capacity to read and write. Early ideas, both here and in America, had concentrated on programming as the main route to computer literacy. However, as our thinking progressed, although we recognized the value of “hands-on” experience on personal micros, we began to place less emphasis on programming and more on wider understanding, on relating micros to larger machines, encouraging people to gain experience with a range of applications programs and high-level languages, and relating these to experience in the real world of industry and commerce…. Our belief was that once people had grasped these principles, at their simplest, they would be able to move further forward into the subject. +接下来, Radcliffe writes 又以类似的方式写道: + +DN Later, Radcliffe writes, in a similar vein: +> 围绕着这一电视系列片的主要阐释目标有很多的争论。一个思想流派认为在使用微型计算机上的实用细节上给予建议对本项目而言尤为重要。但我们已经有了结论,如果这一电视系列片能够拥有可持续性的教育价值,它必须成为一条通过解释计算原则来进入真实的计算世界的路径。这必须通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 + +DN > There had been much debate about the main explanatory thrust of the series. One school of thought had argued that it was particularly important for the programmes to give advice on the practical details of learning to use a micro. But we had concluded that if the series was to have any sustained educational value, it had to be a way into the real world of computing, through an explanation of computing principles. This would need to be achieved by a combination of studio demonstration on micros, explanation of principles by analogy, and illustration on film of real-life examples of practical applications. Not only micros, but mini computers and mainframes would be shown. +我喜爱这一系列片,尤其是其中关于小型机与大型机的部分。_计算机认知计划_ 背后的制作方旨在帮助英国找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 + +DN I love this, particularly the part about mini-computers and mainframes. The producers behind _The Computer Programme_ aimed to help Britons get situated: Where had computing been, and where was it going? What can computers do now, and what might they do in the future? Learning some BASIC was part of answering those questions, but knowing BASIC alone was not seen as enough to make someone computer literate. +### 今天的计算机认知 + +DN ### Computer Literacy Today +如果你现在搜索“学习编程”,你看到的排在第一的是指向 Codecademy 网站的链接。 If you google “learn to code,” the first result you see is a link to Codecademy’s website. If there is a modern equivalent to the _Computer Literacy Project_, something with the same reach and similar aims, then it is Codecademy. “Learn to code” is Codecademy’s tagline. I don’t think I’m the first person to point this out—in fact, I probably read this somewhere and I’m now ripping it off—but there’s something revealing about using the word “code” instead of “program.” It suggests that the important thing you are learning is how to decode the code, how to look at a screen’s worth of Python and not have your eyes glaze over. I can understand why to the average person this seems like the main hurdle to becoming a professional programmer. Professional programmers spend all day looking at computer monitors covered in gobbledygook, so, if I want to become a professional programmer, I better make sure I can decipher the gobbledygook. But dealing with syntax is not the most challenging part of being a programmer, and it quickly becomes almost irrelevant in the face of much bigger obstacles. Also, armed only with knowledge of a programming language’s syntax, you may be able to _read_ code but you won’t be able to _write_ code to solve a novel problem. @@ -176,3 +230,6 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [T4]: https://archive.org/details/byte-magazine?tab=about [T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down [T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown +[T7]: https://en.wikipedia.org/wiki/Sinclair_Research +[T8]: https://en.wikipedia.org/wiki/Breakout_(video_game) +[T9]: https://www.scienceandindustrymuseum.org.uk/objects-and-stories/jacquard-loom From c5416ba5fdce0193f8186ebac64247694ba0e26f Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 16 Jan 2023 08:43:00 +0800 Subject: [PATCH 166/357] 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 167/357] 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 168/357] 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 169/357] 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 170/357] 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 From 48588fa2eaeae1033fc3bad719b289181bed9176 Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Mon, 16 Jan 2023 20:40:35 +0800 Subject: [PATCH 171/357] APL --- ...05.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 394c1d810e..4f1e23ea84 100644 --- 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 @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/tips-effective-devops-culture" [#]: author: "Yauhen Zaremba https://opensource.com/users/yauhen-zaremba" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "lxbwolf" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ece2419bc9a47aa71f1ae98756d39de5cf37060a Mon Sep 17 00:00:00 2001 From: CanYellow Date: Mon, 16 Jan 2023 21:27:06 +0800 Subject: [PATCH 172/357] Add files via upload --- .../20190331 Codecademy vs. The BBC Micro.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 translated/talk/20190331 Codecademy vs. The BBC Micro.md diff --git a/translated/talk/20190331 Codecademy vs. The BBC Micro.md b/translated/talk/20190331 Codecademy vs. The BBC Micro.md new file mode 100644 index 0000000000..bd4d9e8813 --- /dev/null +++ b/translated/talk/20190331 Codecademy vs. The BBC Micro.md @@ -0,0 +1,146 @@ +[#]: subject: "Codecademy vs. The BBC Micro" +[#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" +[#]: author: "Two-Bit History https://twobithistory.org" +[#]: collector: "lujun9972" +[#]: translator: "CanYellow" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +[BBC Micro][T2] 比之 [Codecademy][T1] +====== + +20世纪70年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业霸主的神秘而笨重的机器。少数狂热的爱好者注意到了这是多么吸引人并争相购买了属于自己的计算机。对更多的人而言,微形计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺一台家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,在他身后,他的显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它与之类似的广告表明世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 + +在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20世纪70年代对英国来说都是平平无奇的十年,通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇1979年的政府报告焦虑:没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[1][1]。英国似乎已经在计算机技术的角逐中落后了——所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 + +BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_Computer Literacy Project(计算机认知计划)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的 Fifth Personal Computer World Show(第五届个人电脑世界展) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _Computer Literacy Project_ 制作的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] + +去年,一份包括了由 _Computer Literacy Project_ 出版的所有材料与制作的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑使用是什么图景。不过我发现更有兴趣的是时年是如何教授电脑使用的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? + +### [Computer Literacy Project][T3] (计算机认知计划) + +微型计算机革命始于1975年 [Altair 8800][5] 的发布。两年后,Apple II,TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978年,BBC 在一部名为["Now the Chips Are Down"][T5](《芯片来了》)(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 + +该纪录片充满担忧。在前5分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放以及屏幕上绿色的电脉冲在放大后的芯片上起舞,解说员进一步说这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。纪录片继续探讨了机器人如何用于汽车自动化组装以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它斥责了英国政府在应对未来的大规模失业的准备上做得不够。 + +该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份历数微电子技术在工业制造、人力关系与办公室工作等领域最终将意味着哪些方面的重大改变的研究报告。70年代末,BBC 决定制作一部帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”的十集电视系列片[5][7] 。这一努力最终成为了一个与_Adult Literacy Project_(成人扫盲计划)相似的多媒体项目。_Adult Literacy Project_是 BBC 此前进行的一项涉及电视系列片以及辅助课程的帮助两百万人提高他们的阅读能力的项目。 + +_Computer Literacy Project_ 背后的制作方热衷于以“实操”示例为特色的电视系列片。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子不得不都是基于 BASIC 语言的,因为这是在几乎所有的微型计算机上都使用的编程语言 (实际是整个交互界面(shell))。但是制作方面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言——BBC BASIC——以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机并依照示例操作而不需要担心软硬件上的差异带来的问题。 + +BBC 的制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。_Computer Literacy Project_的技术顾问也是如此建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的(他们可能没有完全那样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[6][8] + +BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名:艾康电脑)制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 Sinclair Research 公司的 [Clive Sinclair][T7] 的申请,Sinclair Research 公司凭借 Sinclair ZX80 微型计算机的推出在1980年将微型计算机的大众市场引入了英国。Sinclair 公司的新产品,ZX81,虽然更便宜但是性能不足以满足 BBC 的要求。Acorn 的新型的内部称为 Proton 原型计算机更加昂贵但是性能更好,更具备扩展性,BBC 对此印象深刻。该型号的计算机从未作为 Proton 进行营销与销售,Acorn 公司代之以 BBC Micro 的名称在1981年12月发布。BBC Micro 又被亲切地称为“The Beeb”,你可以以235英磅的价格购得其16k内存的版本或者以335英磅的价格获得其32k内存的版本。 + +1980年,Acorn 是英国计算机工业的失败者,但是 BBC Micro 成就了 Acorn 公司的传统。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM”如今表示“Advanced RISC Machine”(先进 RISC 架构设备),然而最初它代表的是“Acorn RISC Machine”(Acorn RISC 架构设备)。ARM 架构背后的 ARM Holding(ARM 公司) 就是 Acorn 公司在1990年之后的延续。 + +![Picture of the BBC Micro.][9] _BBC Micro 的一幅拙劣图片,我摄于美国加州山景城(Mountain View)的计算机历史博物馆(Computer History Museum)_ + + +### 名为“The Computer Programme”(计算机程序)的电视系列片 + +十几个不同的电视系列片最终作为_Computer Literacy Project_的一部分创作出来。第一部作品是一部名为 _The Computer Programme_(计算机程序) 的十集电视系列片。该系列片在1982年初播出了十周。一百万人每周晚上收看该节目,另有25万人收看该节目在每周日与周一下午的重播。 + +这一电视节目有两名主持人,Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演具有大型计算机编程职业经验的专家,这是一个启发性的配置。该节目造就了[略显尴尬的过渡][10]——Serle 经常直接从与 McNaught-Davis 的对话中过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,它将更难以理解。 + +该节目也在努力展示计算在普通人生活中的实际应用。到80年代早期,家庭电脑已经开始与小孩子和电子游戏联系在一起。_Computer Literacy Project_ 的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣[7][11]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一名购买了一台 Commodore PET 电脑用于辅助管理她的糖果店的女性。这名名叫 Phyllis 的女性受访者看上去大约60多岁,她在使用 PET 完成她的会计工作上不存在任何问题,甚至开始使用 PET 为其他企业做计算工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢电脑工作。画面接着变成了对一名青少年的采访,他介绍了他是如何修改 _[Breakout][T8]_ 这款电子游戏以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果人群中的 Phyllis 也会使用电脑,那么你当然也可以。 + +虽然该节目的特色是大量的 BASIC 编程,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中有一个关于[Jacquard][T9]织机(译注:中文网络译为雅卡尔提布机)的讨论。Jacquard 织机实现了两件事。其一,它揭示了计算机并不仅仅基于过去发明的神秘技术——计算的一些基本原则可以上溯到两百年前,就跟你可以在纸上打孔来控制纺织机的想法一样简单。其二,经线与纬线的交织用于解释选择二进制(即纬线是从上方还是下方穿过经线)是如何在重复了一次又一次之后足以产生巨大变化的。当然,节目接下来继续讨论信息是如何使用二进制存储的。 + +在该节目中接下来是有关一件能够播放在一卷长长的分段的打孔卡片上编码的音乐的蒸汽风琴的小节。这个类比用以解释 BASIC 中的子程序。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在工作室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下而插入一个回到第一次播放副歌的分段的指令,这就是子程序。这是一个绝妙的解释并将可能在听众的脑海中久久挥之不去。 + +我仅仅摘录了一些例子,不过我认为总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原则使计算机不再神秘。这一节目本可以致力于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在1983年写就的一篇回忆文章中,_Computer Literacy Project_的总制作人 John Radcliffe 如是写道: + +> 如果计算机将如我们所相信的那样重要,对这一主题的真正理解对每个人都很重要,可能会几乎与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来…… 我们相信一旦人们掌握了这些原则,简单地说,它们将可以进一步深入该主题。 + +接下来, Radcliffe writes 又以类似的方式写道: + +> 围绕着这一电视系列片的主要阐释目标有很多的争论。一个思想流派认为在使用微型计算机上的实用细节上给予建议对本项目而言尤为重要。但我们已经有了结论,如果这一电视系列片能够拥有可持续性的教育价值,它必须成为一条通过解释计算原则来进入真实的计算世界的路径。这必须通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 + +我喜爱这一系列片,尤其是其中关于小型机与大型机的部分。_Computer Literacy Project_ 背后的制作方旨在帮助英国找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 + +### 今天的计算机认知 + +如果你现在搜索“学习编程”,你看到的排在第一的是指向 Codecademy 网站的链接。如果要说存在一个“计算机认知计划”的现代替代品——存在相同的影响与目标,那就是 Codecademy。 + +对于普通人而言“Learn to code”(学习编程)是 Codecademy 的口号。我认为我不是第一个指出这一点的人——事实上我曾经在某个地方见到过这一点,只是现在拿来用而已。但是这里使用的是“code”(代码)而非“编程”,这说明了一些问题。这表明你学习的重要内容是如何读懂代码,如何阅读满屏的 Python 代码的价值而不是目光呆滞、不知所云。我能够理解为什么对于普通人而言这似乎是成为专业程序员的主要障碍。专业程序员整日盯着布满编程术语的电脑屏幕,如果我想要成为一个专业程序员,我最好确保我能够理解这些术语。但是理解语法并不是成为程序员的最大的挑战。面对更多更大的障碍,它很快将变成微不足道的。仅仅以掌握一门编程语言的语法为目标,你可能能够 _阅读_ 代码但是无法做到 _编写_ 代码解决全新的问题。 + +我最近浏览了 Codecademy 的 “Code Foundations”(编程基础) 课程。如果你对编程感兴趣(而不是网页开发或者数据科学)并且没有任何编程经验,这是 Codecademy 推荐你学习的课程。里面有几节关于计算机科学史的课时,不过都是流于表面而没有深入研究。(感谢上帝,一位高尚的互联网秩序义务维护者指出了其中存在的一个特别恶劣的错误)。该课程的主要目的是教授你编程语言的通用结构要素:变量、函数、控制流、循环等。换句话说,该课程聚焦于为了开始理解编程术语中的模式你所需要知道的内容。 + +公平地看,Codecademy 也提供其他内容深入的课程。但是即使是如 “Computer Science Path”(计算机科学之路) 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这就是重点—— Codecademy 的主要特点就是提供给你一些交互式的带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动 _Computer Literacy Project_ 的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[8][13]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? + +我一直在大声鼓吹“一般原则”,因此让我再解释下我认为的一般原则是什么以及为什么它们如此重要。J. Clark Scott 出了一本有关计算机的书,书名为 _But How Do It Know?_(但是它怎么知道)。这个书名来自书的序言里的一则笑话:一个店员向人群推销保温瓶,说保温瓶可以让热食始终是热的,冷食始终是冷的。一名听众对这个新发明感到惊讶,问道,但是它怎么知道(根据你给它的食物类型的不同选择做相应的事情呢)?笑点在于保温瓶当然不能感知食物的温度然后据此做出决定——保温瓶仅仅制作成保证冷食必然保持冷的,热食必然保持热的就可以了。人们也以(笑话中的那个听众)一样的方式看待计算机,相信计算机就是能够基于提供给它们的代码“选择”做一件事或者另一件事的数字大脑。但是了解一些有关计算机如何工作的知识,哪怕是很初级水平的理解,也能让(人们理解中的)计算机摆脱(做判断的)侏儒。这就是为什么 Jacquard 织机是一个很好的有助理解的例子。一开始它似乎是一种难以置信的设备,它读取打孔卡片,然后以某种方式“知道”编织正确的样式。现实是显而易见的:每一行孔都对应一根线,而一行中有孔的地方对应着提起的线。理解了这些虽然不会有助于你用电脑完成新的事情,但是将使你自信于你不是在跟某些神秘事物打交道。我们应当尽快将这种自信的感受传授给初学者。 + +唉,真实存在的问题是可能没有人想要了解 Jacquard 织机。根据 Codecademy 如何强调他们教授的专业应用来判断,很多人开始使用 Codecademy 可能是因为他们相信这有助于“提升”他们的职业生涯。他们没有来由地相信首要的问题是理解编程的专业术语,因此他们才想要 “Learn to code”。他们想要在他们所拥用的每天晚上晚餐与就寝之间的一两个小时里尽快做这件事。Codecademy 毕竟只是一门投其所好的生意而非一些有关18世纪就发明了的机器的间接说明。 + +另一方面,_Computer Literacy Project_ 是供职于 BBC 的一群制作人与公务员所认为的将电脑使用教给国民的最好的方式。我承认因为这一群人教会大众他们无法以己之力所能求得的事物而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用电脑,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所言][14],我怀疑在计算机已经变得相对简单的时代里学习使用电脑是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 _The Computer Programme_ 这样的尽己所能不仅仅教授编程而且教授计算机是为什么又是如何运行程序的节目。在看完 _The Computer Programme_ 之后,你可能并不能理解电脑屏幕上的所有编程术语,但是实际上你并不需要,因为你知道无论“代码”是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能理解了编程术语的一些味道,但是对你来说一台电脑仍然只是一台能够以某种方式将编程术语转化为运行的软件的魔法机器。这并不是计算机认知。 + + + 1. Robert Albury and David Allen, Microelectronics, report (1979). [↩︎][18] + + 2. Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, . [↩︎][19] + + 3. John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20]. [↩︎][21] + + 4. David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, . [↩︎][22] + + 5. ibid. [↩︎][23] + + 6. Williams, 51. [↩︎][24] + + 7. Radcliffe, 11. [↩︎][25] + + 8. Radcliffe, 5. [↩︎][26] + + + + +-------------------------------------------------------------------------------- + +via: https://twobithistory.org/2019/03/31/bbc-micro.html + +作者:[Two-Bit History][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://twobithistory.org +[b]: https://github.com/lujun9972 +[1]: tmp.zNBs2lK4Ca#fn:1 +[2]: tmp.zNBs2lK4Ca#fn:2 +[3]: tmp.zNBs2lK4Ca#fn:3 +[4]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/ +[5]: https://twobithistory.org/2018/07/22/dawn-of-the-microcomputer.html +[6]: tmp.zNBs2lK4Ca#fn:4 +[7]: tmp.zNBs2lK4Ca#fn:5 +[8]: tmp.zNBs2lK4Ca#fn:6 +[9]: https://twobithistory.org/images/beeb.jpg +[10]: https://twitter.com/TwoBitHistory/status/1112372000742404098 +[11]: tmp.zNBs2lK4Ca#fn:7 +[12]: https://twitter.com/TwoBitHistory/status/1111305774939234304 +[13]: tmp.zNBs2lK4Ca#fn:8 +[14]: https://twobithistory.org/2018/09/02/learning-basic.html +[15]: https://twitter.com/TwoBitHistory +[16]: https://twobithistory.org/feed.xml +[17]: https://twitter.com/TwoBitHistory/status/1091148050221944832?ref_src=twsrc%5Etfw +[18]: tmp.zNBs2lK4Ca#fnref:1 +[19]: tmp.zNBs2lK4Ca#fnref:2 +[20]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards%20Computer%20Literacy.pdf +[21]: tmp.zNBs2lK4Ca#fnref:3 +[22]: tmp.zNBs2lK4Ca#fnref:4 +[23]: tmp.zNBs2lK4Ca#fnref:5 +[24]: tmp.zNBs2lK4Ca#fnref:6 +[25]: tmp.zNBs2lK4Ca#fnref:7 +[26]: tmp.zNBs2lK4Ca#fnref:8 + +[T1]: https://www.codecademy.com/ +[T2]: https://bbcmicro.computer/ +[T3]: https://clp.bbcrewind.co.uk/history +[T4]: https://archive.org/details/byte-magazine?tab=about +[T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down +[T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown +[T7]: https://en.wikipedia.org/wiki/Sinclair_Research +[T8]: https://en.wikipedia.org/wiki/Breakout_(video_game) +[T9]: https://www.scienceandindustrymuseum.org.uk/objects-and-stories/jacquard-loom From a32b23d4c03104d21d584e465ea516c1b454466b Mon Sep 17 00:00:00 2001 From: CanYellow Date: Mon, 16 Jan 2023 21:28:03 +0800 Subject: [PATCH 173/357] Delete 20190331 Codecademy vs. The BBC Micro.md --- .../20190331 Codecademy vs. The BBC Micro.md | 145 ------------------ 1 file changed, 145 deletions(-) delete mode 100644 sources/talk/20190331 Codecademy vs. The BBC Micro.md diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md deleted file mode 100644 index 197795acea..0000000000 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ /dev/null @@ -1,145 +0,0 @@ -[#]: subject: "Codecademy vs. The BBC Micro" -[#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" -[#]: author: "Two-Bit History https://twobithistory.org" -[#]: collector: "lujun9972" -[#]: translator: "CanYellow" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Codecademy vs. The BBC Micro -====== - -In the late 1970s, the computer, which for decades had been a mysterious, hulking machine that only did the bidding of corporate overlords, suddenly became something the average person could buy and take home. An enthusiastic minority saw how great this was and rushed to get a computer of their own. For many more people, the arrival of the microcomputer triggered helpless anxiety about the future. An ad from a magazine at the time promised that a home computer would “give your child an unfair advantage in school.” It showed a boy in a smart blazer and tie eagerly raising his hand to answer a question, while behind him his dim-witted classmates look on sullenly. The ad and others like it implied that the world was changing quickly and, if you did not immediately learn how to use one of these intimidating new devices, you and your family would be left behind. - -In the UK, this anxiety metastasized into concern at the highest levels of government about the competitiveness of the nation. The 1970s had been, on the whole, an underwhelming decade for Great Britain. Both inflation and unemployment had been high. Meanwhile, a series of strikes put London through blackout after blackout. A government report from 1979 fretted that a failure to keep up with trends in computing technology would “add another factor to our poor industrial performance.”[1][1] The country already seemed to be behind in the computing arena—all the great computer companies were American, while integrated circuits were being assembled in Japan and Taiwan. - -In an audacious move, the BBC, a public service broadcaster funded by the government, decided that it would solve Britain’s national competitiveness problems by helping Britons everywhere overcome their aversion to computers. It launched the _Computer Literacy Project_, a multi-pronged educational effort that involved several TV series, a few books, a network of support groups, and a specially built microcomputer known as the BBC Micro. The project was so successful that, by 1983, an editor for BYTE Magazine wrote, “compared to the US, proportionally more of Britain’s population is interested in microcomputers.”[2][2] The editor marveled that there were more people at the Fifth Personal Computer World Show in the UK than had been to that year’s West Coast Computer Faire. Over a sixth of Great Britain watched an episode in the first series produced for the _Computer Literacy Project_ and 1.5 million BBC Micros were ultimately sold.[3][3] - -[An archive][4] containing every TV series produced and all the materials published for the _Computer Literacy Project_ was put on the web last year. I’ve had a huge amount of fun watching the TV series and trying to imagine what it would have been like to learn about computing in the early 1980s. But what’s turned out to be more interesting is how computing was _taught_. Today, we still worry about technology leaving people behind. Wealthy tech entrepreneurs and governments spend lots of money trying to teach kids “to code.” We have websites like Codecademy that make use of new technologies to teach coding interactively. One would assume that this approach is more effective than a goofy ’80s TV series. But is it? - -### The Computer Literacy Project - -The microcomputer revolution began in 1975 with the release of [the Altair 8800][5]. Only two years later, the Apple II, TRS-80, and Commodore PET had all been released. Sales of the new computers exploded. In 1978, the BBC explored the dramatic societal changes these new machines were sure to bring in a documentary called “Now the Chips Are Down.” - -The documentary was alarming. Within the first five minutes, the narrator explains that microelectronics will “totally revolutionize our way of life.” As eerie synthesizer music plays, and green pulses of electricity dance around a magnified microprocessor on screen, the narrator argues that the new chips are why “Japan is abandoning its ship building, and why our children will grow up without jobs to go to.” The documentary goes on to explore how robots are being used to automate car assembly and how the European watch industry has lost out to digital watch manufacturers in the United States. It castigates the British government for not doing more to prepare the country for a future of mass unemployment. - -The documentary was supposedly shown to the British Cabinet.[4][6] Several government agencies, including the Department of Industry and the Manpower Services Commission, became interested in trying to raise awareness about computers among the British public. The Manpower Services Commission provided funds for a team from the BBC’s education division to travel to Japan, the United States, and other countries on a fact-finding trip. This research team produced a report that cataloged the ways in which microelectronics would indeed mean major changes for industrial manufacturing, labor relations, and office work. In late 1979, it was decided that the BBC should make a ten-part TV series that would help regular Britons “learn how to use and control computers and not feel dominated by them.”[5][7] The project eventually became a multimedia endeavor similar to the _Adult Literacy Project_, an earlier BBC undertaking involving both a TV series and supplemental courses that helped two million people improve their reading. - -The producers behind the _Computer Literacy Project_ were keen for the TV series to feature “hands-on” examples that viewers could try on their own if they had a microcomputer at home. These examples would have to be in BASIC, since that was the language (really the entire shell) used on almost all microcomputers. But the producers faced a thorny problem: Microcomputer manufacturers all had their own dialects of BASIC, so no matter which dialect they picked, they would inevitably alienate some large fraction of their audience. The only real solution was to create a new BASIC—BBC BASIC—and a microcomputer to go along with it. Members of the British public would be able to buy the new microcomputer and follow along without worrying about differences in software or hardware. - -The TV producers and presenters at the BBC were not capable of building a microcomputer on their own. So they put together a specification for the computer they had in mind and invited British microcomputer companies to propose a new machine that met the requirements. The specification called for a relatively powerful computer because the BBC producers felt that the machine should be able to run real, useful applications. Technical consultants for the _Computer Literacy Project_ also suggested that, if it had to be a BASIC dialect that was going to be taught to the entire nation, then it had better be a good one. (They may not have phrased it exactly that way, but I bet that’s what they were thinking.) BBC BASIC would make up for some of BASIC’s usual shortcomings by allowing for recursion and local variables.[6][8] - -The BBC eventually decided that a Cambridge-based company called Acorn Computers would make the BBC Micro. In choosing Acorn, the BBC passed over a proposal from Clive Sinclair, who ran a company called Sinclair Research. Sinclair Research had brought mass-market microcomputing to the UK in 1980 with the Sinclair ZX80. Sinclair’s new computer, the ZX81, was cheap but not powerful enough for the BBC’s purposes. Acorn’s new prototype computer, known internally as the Proton, would be more expensive but more powerful and expandable. The BBC was impressed. The Proton was never marketed or sold as the Proton because it was instead released in December 1981 as the BBC Micro, also affectionately called “The Beeb.” You could get a 16k version for £235 and a 32k version for £335. - -In 1980, Acorn was an underdog in the British computing industry. But the BBC Micro helped establish the company’s legacy. Today, the world’s most popular microprocessor instruction set is the ARM architecture. “ARM” now stands for “Advanced RISC Machine,” but originally it stood for “Acorn RISC Machine.” ARM Holdings, the company behind the architecture, was spun out from Acorn in 1990. - -![Picture of the BBC Micro.][9] _A bad picture of a BBC Micro, taken by me at the Computer History Museum -in Mountain View, California._ - -### The Computer Programme - -A dozen different TV series were eventually produced as part of the _Computer Literacy Project_, but the first of them was a ten-part series known as _The Computer Programme_. The series was broadcast over ten weeks at the beginning of 1982. A million people watched each week-night broadcast of the show; a quarter million watched the reruns on Sunday and Monday afternoon. - -The show was hosted by two presenters, Chris Serle and Ian McNaught-Davis. Serle plays the neophyte while McNaught-Davis, who had professional experience programming mainframe computers, plays the expert. This was an inspired setup. It made for [awkward transitions][10]—Serle often goes directly from a conversation with McNaught-Davis to a bit of walk-and-talk narration delivered to the camera, and you can’t help but wonder whether McNaught-Davis is still standing there out of frame or what. But it meant that Serle could voice the concerns that the audience would surely have. He can look intimidated by a screenful of BASIC and can ask questions like, “What do all these dollar signs mean?” At several points during the show, Serle and McNaught-Davis sit down in front of a computer and essentially pair program, with McNaught-Davis providing hints here and there while Serle tries to figure it out. It would have been much less relatable if the show had been presented by a single, all-knowing narrator. - -The show also made an effort to demonstrate the many practical applications of computing in the lives of regular people. By the early 1980s, the home computer had already begun to be associated with young boys and video games. The producers behind _The Computer Programme_ sought to avoid interviewing “impressively competent youngsters,” as that was likely “to increase the anxieties of older viewers,” a demographic that the show was trying to attract to computing.[7][11] In the first episode of the series, Gill Nevill, the show’s “on location” reporter, interviews a woman that has bought a Commodore PET to help manage her sweet shop. The woman (her name is Phyllis) looks to be 60-something years old, yet she has no trouble using the computer to do her accounting and has even started using her PET to do computer work for other businesses, which sounds like the beginning of a promising freelance career. Phyllis says that she wouldn’t mind if the computer work grew to replace her sweet shop business since she enjoys the computer work more. This interview could instead have been an interview with a teenager about how he had modified _Breakout_ to be faster and more challenging. But that would have been encouraging to almost nobody. On the other hand, if Phyllis, of all people, can use a computer, then surely you can too. - -While the show features lots of BASIC programming, what it really wants to teach its audience is how computing works in general. The show explains these general principles with analogies. In the second episode, there is an extended discussion of the Jacquard loom, which accomplishes two things. First, it illustrates that computers are not based only on magical technology invented yesterday—some of the foundational principles of computing go back two hundred years and are about as simple as the idea that you can punch holes in card to control a weaving machine. Second, the interlacing of warp and weft threads is used to demonstrate how a binary choice (does the weft thread go above or below the warp thread?) is enough, when repeated over and over, to produce enormous variation. This segues, of course, into a discussion of how information can be stored using binary digits. - -Later in the show there is a section about a steam organ that plays music encoded in a long, segmented roll of punched card. This time the analogy is used to explain subroutines in BASIC. Serle and McNaught-Davis lay out the whole roll of punched card on the floor in the studio, then point out the segments where it looks like a refrain is being repeated. McNaught-Davis explains that a subroutine is what you would get if you cut out those repeated segments of card and somehow added an instruction to go back to the original segment that played the refrain for the first time. This is a brilliant explanation and probably one that stuck around in people’s minds for a long time afterward. - -I’ve picked out only a few examples, but I think in general the show excels at demystifying computers by explaining the principles that computers rely on to function. The show could instead have focused on teaching BASIC, but it did not. This, it turns out, was very much a conscious choice. In a retrospective written in 1983, John Radcliffe, the executive producer of the _Computer Literacy Project_, wrote the following: - -> If computers were going to be as important as we believed, some genuine understanding of this new subject would be important for everyone, almost as important perhaps as the capacity to read and write. Early ideas, both here and in America, had concentrated on programming as the main route to computer literacy. However, as our thinking progressed, although we recognized the value of “hands-on” experience on personal micros, we began to place less emphasis on programming and more on wider understanding, on relating micros to larger machines, encouraging people to gain experience with a range of applications programs and high-level languages, and relating these to experience in the real world of industry and commerce…. Our belief was that once people had grasped these principles, at their simplest, they would be able to move further forward into the subject. - -Later, Radcliffe writes, in a similar vein: - -> There had been much debate about the main explanatory thrust of the series. One school of thought had argued that it was particularly important for the programmes to give advice on the practical details of learning to use a micro. But we had concluded that if the series was to have any sustained educational value, it had to be a way into the real world of computing, through an explanation of computing principles. This would need to be achieved by a combination of studio demonstration on micros, explanation of principles by analogy, and illustration on film of real-life examples of practical applications. Not only micros, but mini computers and mainframes would be shown. - -I love this, particularly the part about mini-computers and mainframes. The producers behind _The Computer Programme_ aimed to help Britons get situated: Where had computing been, and where was it going? What can computers do now, and what might they do in the future? Learning some BASIC was part of answering those questions, but knowing BASIC alone was not seen as enough to make someone computer literate. - -### Computer Literacy Today - -If you google “learn to code,” the first result you see is a link to Codecademy’s website. If there is a modern equivalent to the _Computer Literacy Project_, something with the same reach and similar aims, then it is Codecademy. - -“Learn to code” is Codecademy’s tagline. I don’t think I’m the first person to point this out—in fact, I probably read this somewhere and I’m now ripping it off—but there’s something revealing about using the word “code” instead of “program.” It suggests that the important thing you are learning is how to decode the code, how to look at a screen’s worth of Python and not have your eyes glaze over. I can understand why to the average person this seems like the main hurdle to becoming a professional programmer. Professional programmers spend all day looking at computer monitors covered in gobbledygook, so, if I want to become a professional programmer, I better make sure I can decipher the gobbledygook. But dealing with syntax is not the most challenging part of being a programmer, and it quickly becomes almost irrelevant in the face of much bigger obstacles. Also, armed only with knowledge of a programming language’s syntax, you may be able to _read_ code but you won’t be able to _write_ code to solve a novel problem. - -I recently went through Codecademy’s “Code Foundations” course, which is the course that the site recommends you take if you are interested in programming (as opposed to web development or data science) and have never done any programming before. There are a few lessons in there about the history of computer science, but they are perfunctory and poorly researched. (Thank heavens for [this noble internet vigilante][12], who pointed out a particularly egregious error.) The main focus of the course is teaching you about the common structural elements of programming languages: variables, functions, control flow, loops. In other words, the course focuses on what you would need to know to start seeing patterns in the gobbledygook. - -To be fair to Codecademy, they offer other courses that look meatier. But even courses such as their “Computer Science Path” course focus almost exclusively on programming and concepts that can be represented in programs. One might argue that this is the whole point—Codecademy’s main feature is that it gives you little interactive programming lessons with automated feedback. There also just isn’t enough room to cover more because there is only so much you can stuff into somebody’s brain in a little automated lesson. But the producers at the BBC tasked with kicking off the _Computer Literacy Project_ also had this problem; they recognized that they were limited by their medium and that “the amount of learning that would take place as a result of the television programmes themselves would be limited.”[8][13] With similar constraints on the volume of information they could convey, they chose to emphasize general principles over learning BASIC. Couldn’t Codecademy replace a lesson or two with an interactive visualization of a Jacquard loom weaving together warp and weft threads? - -I’m banging the drum for “general principles” loudly now, so let me just explain what I think they are and why they are important. There’s a book by J. Clark Scott about computers called _But How Do It Know?_ The title comes from the anecdote that opens the book. A salesman is explaining to a group of people that a thermos can keep hot food hot and cold food cold. A member of the audience, astounded by this new invention, asks, “But how do it know?” The joke of course is that the thermos is not perceiving the temperature of the food and then making a decision—the thermos is just constructed so that cold food inevitably stays cold and hot food inevitably stays hot. People anthropomorphize computers in the same way, believing that computers are digital brains that somehow “choose” to do one thing or another based on the code they are fed. But learning a few things about how computers work, even at a rudimentary level, takes the homunculus out of the machine. That’s why the Jacquard loom is such a good go-to illustration. It may at first seem like an incredible device. It reads punch cards and somehow “knows” to weave the right pattern! The reality is mundane: Each row of holes corresponds to a thread, and where there is a hole in that row the corresponding thread gets lifted. Understanding this may not help you do anything new with computers, but it will give you the confidence that you are not dealing with something magical. We should impart this sense of confidence to beginners as soon as we can. - -Alas, it’s possible that the real problem is that nobody wants to learn about the Jacquard loom. Judging by how Codecademy emphasizes the professional applications of what it teaches, many people probably start using Codecademy because they believe it will help them “level up” their careers. They believe, not unreasonably, that the primary challenge will be understanding the gobbledygook, so they want to “learn to code.” And they want to do it as quickly as possible, in the hour or two they have each night between dinner and collapsing into bed. Codecademy, which after all is a business, gives these people what they are looking for—not some roundabout explanation involving a machine invented in the 18th century. - -The _Computer Literacy Project_, on the other hand, is what a bunch of producers and civil servants at the BBC thought would be the best way to educate the nation about computing. I admit that it is a bit elitist to suggest we should laud this group of people for teaching the masses what they were incapable of seeking out on their own. But I can’t help but think they got it right. Lots of people first learned about computing using a BBC Micro, and many of these people went on to become successful software developers or game designers. [As I’ve written before][14], I suspect learning about computing at a time when computers were relatively simple was a huge advantage. But perhaps another advantage these people had is shows like _The Computer Programme_, which strove to teach not just programming but also how and why computers can run programs at all. After watching _The Computer Programme_, you may not understand all the gobbledygook on a computer screen, but you don’t really need to because you know that, whatever the “code” looks like, the computer is always doing the same basic thing. After a course or two on Codecademy, you understand some flavors of gobbledygook, but to you a computer is just a magical machine that somehow turns gobbledygook into running software. That isn’t computer literacy. - -_If you enjoyed this post, more like it come out every four weeks! Follow [@TwoBitHistory][15] on Twitter or subscribe to the [RSS feed][16] to make sure you know when a new post is out._ - -_Previously on TwoBitHistory…_ - -> FINALLY some new damn content, amirite? -> -> Wanted to write an article about how Simula bought us object-oriented programming. It did that, but early Simula also flirted with a different vision for how OOP would work. Wrote about that instead! -> -> — TwoBitHistory (@TwoBitHistory) [February 1, 2019][17] - - 1. Robert Albury and David Allen, Microelectronics, report (1979). [↩︎][18] - - 2. Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, . [↩︎][19] - - 3. John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20]. [↩︎][21] - - 4. David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, . [↩︎][22] - - 5. ibid. [↩︎][23] - - 6. Williams, 51. [↩︎][24] - - 7. Radcliffe, 11. [↩︎][25] - - 8. Radcliffe, 5. [↩︎][26] - - - - --------------------------------------------------------------------------------- - -via: https://twobithistory.org/2019/03/31/bbc-micro.html - -作者:[Two-Bit History][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://twobithistory.org -[b]: https://github.com/lujun9972 -[1]: tmp.zNBs2lK4Ca#fn:1 -[2]: tmp.zNBs2lK4Ca#fn:2 -[3]: tmp.zNBs2lK4Ca#fn:3 -[4]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/ -[5]: https://twobithistory.org/2018/07/22/dawn-of-the-microcomputer.html -[6]: tmp.zNBs2lK4Ca#fn:4 -[7]: tmp.zNBs2lK4Ca#fn:5 -[8]: tmp.zNBs2lK4Ca#fn:6 -[9]: https://twobithistory.org/images/beeb.jpg -[10]: https://twitter.com/TwoBitHistory/status/1112372000742404098 -[11]: tmp.zNBs2lK4Ca#fn:7 -[12]: https://twitter.com/TwoBitHistory/status/1111305774939234304 -[13]: tmp.zNBs2lK4Ca#fn:8 -[14]: https://twobithistory.org/2018/09/02/learning-basic.html -[15]: https://twitter.com/TwoBitHistory -[16]: https://twobithistory.org/feed.xml -[17]: https://twitter.com/TwoBitHistory/status/1091148050221944832?ref_src=twsrc%5Etfw -[18]: tmp.zNBs2lK4Ca#fnref:1 -[19]: tmp.zNBs2lK4Ca#fnref:2 -[20]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards%20Computer%20Literacy.pdf -[21]: tmp.zNBs2lK4Ca#fnref:3 -[22]: tmp.zNBs2lK4Ca#fnref:4 -[23]: tmp.zNBs2lK4Ca#fnref:5 -[24]: tmp.zNBs2lK4Ca#fnref:6 -[25]: tmp.zNBs2lK4Ca#fnref:7 -[26]: tmp.zNBs2lK4Ca#fnref:8 From d47656fca039a072da9fa2f38b401816e5c688a6 Mon Sep 17 00:00:00 2001 From: "Xiaobin.Liu" Date: Mon, 16 Jan 2023 22:09:56 +0800 Subject: [PATCH 174/357] TSL --- ...6 tips for building an effective DevOps culture.md | 101 ----------------- ...6 tips for building an effective DevOps culture.md | 102 ++++++++++++++++++ 2 files changed, 102 insertions(+), 101 deletions(-) delete mode 100644 sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md create mode 100644 translated/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 deleted file mode 100644 index 4f1e23ea84..0000000000 --- a/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md +++ /dev/null @@ -1,101 +0,0 @@ -[#]: 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: "lxbwolf" -[#]: 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 diff --git a/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md new file mode 100644 index 0000000000..8307a8248d --- /dev/null +++ b/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md @@ -0,0 +1,102 @@ +[#]: 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: "lxbwolf" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +构建高效的 DevOps 文化的 6 个技巧 +====== + +你为什么要构建 [DevOps][1] 文化?开发和运营团队的精简协作有很多好处。效率是首要目标:提高新软件部署的速度,减少等待的时间。培养同事之间的信任可以提升员工的满意度,激发新的创新,并对盈利能力产生积极的影响。 + +[DevOps][2] 是一个很广泛的范畴,大家的理解也见仁见智。每个公司对于如何实行 DevOps 也各不相同。这种意见的多样性实际上是一件好事--这么多的观点对于建立更强大的团队是很有用的。本指南将探讨在 DevOps 文化中鼓励同事之间更好地合作的最高技巧。 + +下面每个部分从不同的视角介绍 DevOps 文化,并争取将它引入你的工作中去。 + +![DevOps includes collaboration, workflow, infosec, and iteration.][3] + +### 流程的持续开发 + +DevOps 文化的这一核心原则使它与许多其他类型的工作区别开来。DevOps 哲学说,犯错是有积极意义的,因为这表明你在尝试新的想法。 + +DevOps 文化的核心是不停地创造。实际上,这意味着当测试结果显示事情由于你的改动而变坏时,不要懊恼。我们要认识到,进化的过程不是线性的,通往成功的道路也从来不是一条直线。 + +DevOps 专家[Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你的团队尝试不寻常的任务,以得到新的领悟。 + +你的组织应该以利润为导向吗?你能允许你的团队尝试一些新东西(非指个人兴趣项目)吗?持续的流程开发意味着对升级目前的方法持开放态度。优秀的销售领导懂得,结果比出勤率更重要,因此,关注团队的工作方式而不是工作量的多少始终是关键。 + +### 随时提供反馈并积极寻求反馈 + +成员之间增加信任是蓬勃发展的 DevOps 文化的另一个关键特征。无论你的员工是在学习如何建立联盟网络联系,还是试图设计他们的下一个 [UX][5] 调查,每个人都应该对他们工作的反馈持开放态度。但是,除非你的团队成员尊重彼此的意见,并相信反馈是本着善意的精神提出的,否则这永远不会发生。 + +这种文化听起来可能是很难培养的;事实上,一些公司会比其他公司更努力地实现这一点。诚然,给予和接受反馈的成功很大程度上取决于员工的个性。在招聘过程中,也可以对此进行筛选。 + +在你期望员工随时向同事提供反馈并主动寻求反馈之前,你应该以身作则。高管应该以身作则,公开要求公司成员对其战略决策提出探究性问题,并提供相应的反馈。 + +![DevOps is the intersection of development, quality assurance, and operations][6] + +### 不断改进 + +在同事之间增加智力信任的基础上,你的团队应该寻找方法来改善其工作。DevOps 的性质意味着软件开发团队将比传统方法更迅速地进行部署。 + +这种开放的改进文化可以对开发和运维以外的部门产生积极的影响。你也可以自己去探索,企业还有哪些领域会受到积极的影响。 + +留意培训和提高技能的机会。即使一个培训课程没有广告上说的那么突出,但有机会与行业专家建立联系,并与未来建立联系,这可以提高你的组织内的思想多样性。 + +### 为以后的开发保存当前的想法 + +频繁使用的 [Git][7] 账户应该是你的 DevOps 工具链的一部分。你可以用 Git 作为软件开发和其他相关项目中产生的脚本的共同仓库。Git 作为 "版本控制" 工具而被熟知,Git 允许程序员保存他们工作的迭代、复用或改进其他人的工作。 + +你的目标是有能力保留好的想法供将来使用。某个方法由于某种原因没有成功。然而,那套想法在当时是错误的,并不意味着它在未来永远无法成为有用的东西。 + +由于 DevOps 的整个重点在于生产环境中的软件的端到端所有权,因此保存开发的迭代真正支持这一原则。你希望看到对手头的软件测试项目的持续关注和投入。 + +一个简单的方法是要求开发者在开发者合同和最终项目报告中包含对未来工作的想法。确保技术服务经理知道他们应该要求提供在建设过程中出现的旁门左道的想法的例子。意识到这些小创新的人越多,在需要的时候就越有可能有人记住一个。 + +### 坐在一起(物理上或逻辑上) + +目标是对彼此的工作角色以及它们之间的相互关系有一个共同的理解。你可以通过几个简单的方法实现这一目标,用一句话概括:坐在一起。邀请其他团队参加你们的会议,完整地分享用户反馈报告。一起吃午饭,一起计划虚拟的快乐时光,一般来说,要确保你的同事都在一起。大约 90% 的拥有成熟的 DevOps 协议的团队报告说,他们清楚地了解自己对其他团队的责任,而在不成熟的 DevOps 团队中,只有大约 46% 的工作者清楚地了解自己的责任。 + +虽然与志同道合的人结成小团体,只与被雇来执行与你相同任务的员工一起玩耍是很诱人的,但这对整个企业来说是很糟糕的。无论你喜欢与否,所有的人都是多面手,能够在一系列的情况下贡献自己的独特才能。 + +密切协作的想法是尊重任何人对其周围正在进行的产品或工作流程提出改进建议的能力。如果你与公司内的其他部门保持一定的距离,你将会错过无数次分享智慧想法的机会。毕竟,你往往在交流中学习得最好。 + +### 致力于自动化 + +你应该以提高效率和加速流程的方式,将单调的和重复的任务变为自动化。每个行业都有无聊的--说得直白一点,愚蠢的--每天或每周都要进行的工作。 + +无论是手工将数据从一页复制到另一页,还是手工打出音频记录,每个级别的工作人员都应该坚持让机器在可能的情况下承担这些负担。现实是自动化技术每年都在进步,操作流程也应该如此。[自动化测试][8] 对 DevOps 非常关键,它是 CALMS 框架的第二个原则(其中的 “C”代表“文化”)。 + +你怎样才能实现这一点?邀请员工公开表达他们认为工作的哪些方面可以自动化,然后--这里是关键的部分--支持实现自动化所需的设施。这可能意味着每年花 600 美元订阅一个软件程序、一套完整的企业应用现代化解决方案或开发人员的两天时间来建立一个新的工具在内部使用。 + + +无论哪种方式,你都应该评估自动化的好处,考虑你可以为每个人节省多少时间。DevOps 的统计数据不断表明,现代公司通过整合这些有益的原则,年复一年地得到了很大的改善。 + +### 探索成功的新工作方式 + +文化转变不会在一夜之间发生。不过,你越早开始,就越早看到结果。根据我的经验,当变化是对以前的真正改进时,人们会接受它。DevOps 为这种改进提供了一个框架。无论你是刚刚在你的组织中开始使用 DevOps,还是仅仅想改善你现有的文化,请考虑以上几点以及它们与你组织的未来的关系。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/tips-effective-devops-culture + +作者:[Yauhen Zaremba][a] +选题:[lkxed][b] +译者:[lxbwolf](https://github.com/lxbwolf) +校对:[校对者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 9258a3e9a8111fc63df95a1719581e41d47dc729 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 17 Jan 2023 08:38:56 +0800 Subject: [PATCH 175/357] translated --- ...rs GNOME Extension to help Colorblind Users.md | 106 ------------------ ...rs GNOME Extension to help Colorblind Users.md | 101 +++++++++++++++++ 2 files changed, 101 insertions(+), 106 deletions(-) delete mode 100644 sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md create mode 100644 translated/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 deleted file mode 100644 index 6d4c4fe848..0000000000 --- a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: 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: "geekpi" -[#]: 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 diff --git a/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md new file mode 100644 index 0000000000..1efd79e614 --- /dev/null +++ b/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md @@ -0,0 +1,101 @@ +[#]: 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: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Colorblind Filters:帮助色盲用户的 GNOME 扩展 +====== + +**一个不错的 GNOME 扩展:Colorblind Filters,它为色盲用户带来了许多选项。** + +无障碍是计算和操作系统的一个重要方面。它包括对视力障碍、色盲和许多其他健康症状的管理设置。流行的 Linux 桌面环境,如 GNOME 和 KDE Plasma,具有无障碍设置,以帮助所有这些情况。 + +感谢 GNOME 扩展生态系统,有大量的专门扩展可以帮助这些用户。我遇到的其中一个扩展是[“Colorblind Filters”][1]。 + + +### Colorblind Filters – GNOME 扩展 + +根据维基百科,_"色盲通常涉及无法区分红色和绿色的深浅。遗传性色盲症没有治疗方法。如果色盲是由其他疾病引起的,治疗潜在的原因会有帮助。"_。 + +因此,你有选项来调整你的 Linux 桌面上的设置是很重要的。 + +#### 设置扩展程序和 Flatpak + +首先,确保你已经启用了 Flatpak 和 GNOME 扩展。并且安装了扩展管理器。你可以参考这个关于如何[设置 flatpak][2]和启用 [GNOME 扩展][3]的详细指南,或者从终端运行以下命令(对于 Ubuntu、Linux Mint 等)。 + +``` +sudo apt install flatpaksudo apt install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +对于 Fedora 用户,使用以下命令。 + +``` +sudo dnf install flatpaksudo dnf install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +完成后,安装扩展管理器: + +``` +flatpak install com.mattjakeman.ExtensionManager +``` + +#### 安装扩展 + +从应用菜单中打开扩展管理器。搜索 “colorblind”。并安装该扩展(见下图)。 + +![安装扩展][4] + +安装后,你可以在系统托盘上看到一个小眼睛图标。你可以点击它来启用预定义的颜色过滤器。 + +![Colorblind Filters 扩展托盘图标][5] + +右键点击眼睛图标以获得更多设置。这个扩展带来了色盲收集、模拟和额外选项的所有必要定制。目前有以下选项: + +- 红色盲 +- 绿色盲 +- 蓝黄色盲 + +- 纠正和模拟(具有高对比度) + +- GBR 和 BRG 的通道混合器 +- 亮度反转 +- 颜色反转 + +- 额外的调整 + +![Colorblind Filters - 选项][6] + +使用最适合你的眼睛的那个。 + +### 总结 + +我认为苹果的 macOS 和 iOS 已经实现了比 Windows 或 Linux 更好的无障碍。然而,Linux 桌面在这些应用和扩展方面也不落后。另外,还有一些专门的 Linux 发行版,如“[Accessible Coconut][7]”,它是为专门的需求而建立的。 + +我希望 Colorblind gnome 扩展对你日常使用 Linux 和 GNOME 桌面有帮助。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/colorblind-filters-gnome-extension/ + +作者:[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://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/ From a32fcdce9a8a67ee46fd01503fbcfc77340dd71d Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 17 Jan 2023 08:45:28 +0800 Subject: [PATCH 176/357] translating --- ...older Between Guest and Host in virt-manager (KVMQemulibvirt).md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 64e6ac7831..40e7c4380a 100644 --- 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 @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/share-folder-virt-manager/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5aeca28e2fcc555c378cedf49c24895841e191a7 Mon Sep 17 00:00:00 2001 From: Cubik Date: Mon, 16 Jan 2023 23:04:38 -0500 Subject: [PATCH 177/357] =?UTF-8?q?[=E6=AD=A3=E5=9C=A8=E7=BF=BB=E8=AF=91][?= =?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 翻译进度: - 3. Crystal Linux - 4. TUXEDO OS - 5. EuroLinux - 6. Zinc --- ...️ 11 New Distros to look forward to in 2023.md | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 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 926981e038..8a82219f54 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 @@ -64,31 +64,29 @@ Arch 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**. +Crystal Linux 是一个即将发布的基于 Arch 的发行版,它希望**提供一个易于使用的桌面体验,以及现代 Linux 技术**。 -In its current form, it may not be welcoming to newcomers, and people with experience using Linux are likelier to like it. +在目前的状态下,它可能不适合新手,而具有 Linux 使用经验的人更有可能喜欢它。 -So, for now, I would suggest users who are already familiar with Linux give Crystal Linux a try. +所以,就目前而言,我建议已经熟悉 Linux 的用户尝试一下 Crystal Linux。 -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 将在 2023 年有一个稳定版本,该版本将具有许多功能和改进,而这些功能和改进都是基于目前可用的 [beta 版本][12]。 [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. +[TUXEDO OS][14] 是一个由 TUXEDO Computers(一个专注 Linux 的硬件制造商)提供的基于 Ubuntu 的发行版。 -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. +它提供了 KDE Plasma 桌面环境,还有一些额外的功能,例如 **TUXEDO Control Center** 用于微调硬件,以及 **TUXEDO Tomte**,一个用于解决驱动程序与缺少软件包的问题的配置服务。 -I suggest you try this if you want a **different KDE-powered experience**. +如果你想要一个**不同的 KDE 驱动的体验**,我建议你尝试一下。 -Initially, it was only made available as a pre-installed operating system on TUXEDO laptops and computers. +最开始,它仅仅被用作 TUXEDO 笔记本和台式电脑的预装系统提供。 -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. +但是后来,它在 2022 年 9 月收到了一个通用版本,称为“TUXEDO OS 1”。它将在 2023 年收到许多更新。 [TUXEDO OS][15] @@ -96,15 +94,15 @@ But later, it received a general use release back in September 2022 dubbed as 'T ![euro linux][16] -An RHEL-based distro with **enterprise perks** is what [EuroLinux][17] is. It provides stability and security in a solid package. +一个具有**企业级特性**的,基于 RHEL 的发行版就是 [EuroLinux][17]。它在一个可靠的包中提供了稳定性和安全性。 -Based on **RHEL 9**, it can provide seamless compatibility with other [RHEL-based server distros][18] such as Rocky Linux, CentOS, AlmaLinux, and more. +基于 **RHEL 9**,它可以提供与其他 [基于 RHEL 的服务器发行版][18](如 Rocky Linux,CentOS,AlmaLinux 等)的无缝兼容性。 -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. +它旨在通过在屏幕底部实现半透明菜单栏,以熟悉的用户界面布局吸引 Windows 和 macOS 用户。 -You should try this because the overall package is quite adequate and can cater to both Linux and Windows/macOS users. +你应该尝试一下,因为整体包都很合适,可以同时满足 Linux 和 Windows/macOS 用户。 -It is now available as stable release, with updates planned for 2023. +它现在已经发布了稳定版本,也在 2023 年有更新计划。 [EuroLinux Desktop][19] @@ -112,13 +110,13 @@ It is now available as stable release, with updates planned for 2023. ![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. +[Zinc][21] 是一个 **基于 Ubuntu 的发行版**,它已经为提供独特的体验进行了调整。现有的 Ubuntu 用户可能会惊讶于它所提供的内容。 -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. +基于 **Xubuntu** 的最新 LTS 版本,使用了 XFCE 桌面环境,并对其进行了许多改进,例如集成的 Linux AppImage 支持,deb-get 包安装程序,BTRFS 作为默认文件系统等。 -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! +它遵循稳定的发布模式,因此您可以期待 2023 年的重大更新! [Zinc][21] From ebba78ff85ef27a596d9231d8b5b528ef559f210 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 17 Jan 2023 12:42:00 +0800 Subject: [PATCH 178/357] ATRP @wxy https://linux.cn/article-15452-1.html --- ...is All Set to Disable Microsoft's RNDIS Drivers.md | 77 +++++++++++++++++++ ...is All Set to Disable Microsoft's RNDIS Drivers.md | 77 ------------------- 2 files changed, 77 insertions(+), 77 deletions(-) create mode 100644 published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md delete mode 100644 sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md diff --git a/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md b/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md new file mode 100644 index 0000000000..7010eef3a9 --- /dev/null +++ b/published/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: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15452-1.html" + +Linux 已准备好禁用微软的 RNDIS 驱动程序,但是…… +====== + +> Linux 内核将不再支持 RNDIS 驱动程序。这是一个好的举措吗?这对你意味着什么?在这里了解一下。 + +![Linux 已经准备好禁用微软的 RNDIS 驱动程序][1] + +微软的 RNDIS 协议(即 远程网络驱动接口规范Remote Network Driver Interface Specification 的简称),是一个专有的 USB 协议,用于计算机上的虚拟以太网功能。 + +这方面最常见的使用情况是通过连接到电脑上的 USB,使用手机的移动网络连接互联网,也称为 [系连][2]Tethering。 + +尽管它主要在 Windows 上工作,但它成为 Linux 内核的一部分已经有一段时间了。 + +但这种情况很快就会改变。 + +### 向 RNDIS 协议说再见? + +![][3] + +**发生了什么?** 周一,[Greg Kroah-Hartman][4] 创建了 [usb.git rndis-removal][5] 分支,其中他提到禁用 Linux 上所有 RNDIS 协议驱动程序的实现。 + +在该提交中他提到: + +> 微软的 RNDIS 协议按照设计是不安全的,在任何连接不信任的主机或设备的系统上使用它都是脆弱的。因为该协议不可能变得安全,所以只要禁用所有的 RNDIS 驱动,就可以防止任何人再使用它们。Windows 只在 XP 和更新一些的系统中需要用它,比这更早的 Windows 系统可以使用正常的 USB 类协议来代替,没有这些问题。 + +正如最初由 [Phoronix][6] 报道的那样,一旦这个协议在 Kconfig 选项中被标记为 “损坏”,它将再保留一段时间,最终从内核中删除。 + +但是**为什么呢?** + +众所周知,RNDIS 在 Windows 之外的平台上的实现是一团糟,并带来了相当多的安全风险。此外,RNDIS 并不像以前那样广泛使用了,它带来的安全风险可能是作出这一决定的主要原因之一。 + +**这对目前的用户有影响吗?你应该担心吗?** + +如果我们看一下对这一即将到来的变化的 [Reddit 讨论][7],我们会发现许多用户仍然很担心**这是否会破坏大家的 USB 连接**。 + +考虑到许多安卓手机仍然使用 RNDIS 而不是 CDC NCM(一种较新的协议),用户似乎对这一举措感到困惑 😕;不只是用户,一位 [谷歌的内核网络开发人员][8] 也提出了这个议题,但我们还没有看到对此的回应。 + +**但不是每个人都使用主线 Linux 内核?如果你不想受到这种变化的影响,你是否应该坚持使用 LTS 版本的内核?** + +此外,用户希望更清楚地了解这是否会影响到所有人。 + +但是,从目前来看,Greg 可能并没有给出更多的细节来说服一些相关用户。 + +🤔 当然,我们不是 Linux 内核维护者。所以,最好等这个提交通过时,我希望 Linux 内核维护者能比我们知道更多的信息。 + +💭 你对这个计划中的 Linux 内核的变化有什么看法?请在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-disable-microsoft-rndis/ + +作者:[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/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 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 deleted file mode 100644 index da2e06cc21..0000000000 --- a/sources/news/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md +++ /dev/null @@ -1,77 +0,0 @@ -[#]: 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 604ebf689924e5fd439f59db7ec17528a7cb4b37 Mon Sep 17 00:00:00 2001 From: Cubik Date: Tue, 17 Jan 2023 00:10:55 -0500 Subject: [PATCH 179/357] =?UTF-8?q?[=E6=AD=A3=E5=9C=A8=E7=BF=BB=E8=AF=91][?= =?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 翻译进度: - 7. CachyOS --- ...22.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 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 8a82219f54..4fdfa8508a 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 @@ -124,13 +124,13 @@ Crystal Linux 是一个即将发布的基于 Arch 的发行版,它希望**提 ![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. +[CachyOS][23] 尝试使 **Arch Linux 变得对初学者更加友好**,让任何人都可以使用。它很受欢迎,因为它具有高度的可定制性,而且还拥有最新的软件。 -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 是一个滚动发布的发行版,因此您可以期待它在 2023 年收到大量更新。 [CachyOS][23] From 9fc33908c3f3237ed5f08fead69286f7a3fa88ec Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 18 Jan 2023 08:57:02 +0800 Subject: [PATCH 180/357] translated --- ...ok Offline English Dictionary App for GNOME.md | 73 ------------------- ...ok Offline English Dictionary App for GNOME.md | 69 ++++++++++++++++++ 2 files changed, 69 insertions(+), 73 deletions(-) delete mode 100644 sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md create mode 100644 translated/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 deleted file mode 100644 index da0f0fbe1f..0000000000 --- a/sources/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md +++ /dev/null @@ -1,73 +0,0 @@ -[#]: 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: "geekpi" -[#]: 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 diff --git a/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md new file mode 100644 index 0000000000..830e1e4b65 --- /dev/null +++ b/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md @@ -0,0 +1,69 @@ +[#]: 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: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wordbook:适用于 GNOME 的离线英语词典应用 +====== + +**遇见 Wordbook – 一个 GNOME 桌面的离线词典应用。** + +我们大多在谷歌、DDG 或其他搜索引擎上搜索单词信息,如含义、同义词、反义词等。 + +由于今天几乎每个人都有一个连接互联网的手机,在谷歌上搜索可能更容易。 + +但对于离线使用,在没有互联网连接的情况下,你可以尝试 [Wordbook][1]。 + +### Wordbook:离线词典应用 + +这个应用在本质上是非常基本的。但以它的能力完成了它的工作。Wordbook 目前支持一个英译英字典。在其核心部分,它使用 [Open English WordNet 数据库][2]进行定义。Open English Wordnet 是 [Princeton Wordnet项目][3] 的一个开源分叉。 + +Wordbook 应用还可以使用 [eSpeak][4] – 一个免费和开源的语音合成器来发音。 + +![Wordbook - 英译英词典应用][5] + +然而,在第一次运行时,它需要一次性上网,以下载离线数据。就这些了。其他值得注意的功能包括实时搜索、双击搜索和带有 HTML 标记的自定义定义。 + +Wordbook是一个 [GNOME 应用][6],使用现代 GTK4 和 libadwaita 构建。因此,它与 GNOME 桌面的浅色和深色主题整合得很好。你也可以使用 Wordbook 的随机单词功能来学习新单词以增加你的词汇量。 + +### 安装 + +你可以很容易地从 Flathub 将其作为 Flatpak 应用安装。为 Flatpak 和 Flathub 设置你的系统,然后从终端使用以下命令安装它: + +``` +flatpak install com.github.fushinari.Wordbook +``` + +安装后,你可以在应用菜单中找到它。 + +### 结束语 + +我希望你在学校或商业工作中使用这个小小的应用。如果你在写论文和较长的段落,离线特性是很方便的。 + +你知道其他Linux的离线字典吗?请在评论栏里告诉我们。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/wordbook-offline-dictionary/ + +作者:[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://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 \ No newline at end of file From 030c1de8847cb979ecc75f141233aedd0dd40915 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 18 Jan 2023 09:01:12 +0800 Subject: [PATCH 181/357] translating --- ....0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 18a3b824f8..cc06a6ceef 100644 --- 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 @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/install-python-windows/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From d1d3fe2714855c10569df3a126b3eda36871c189 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 18 Jan 2023 10:18:19 +0800 Subject: [PATCH 182/357] RP @geekpi https://linux.cn/article-15454-1.html --- ... File Viewer for Linux Desktops and Servers.md | 63 ++++++++++--------- 1 file changed, 32 insertions(+), 31 deletions(-) rename {translated/tech => published}/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md (52%) diff --git a/translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md similarity index 52% rename from translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md rename to published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md index 63c5016609..60b7b2ba8a 100644 --- a/translated/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md +++ b/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.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-15454-1.html" -lnav: 用于 Linux 台式机和服务器的高级日志文件浏览器 +lnav: 用于 Linux 的高级日志文件浏览器 ====== -**如果你想调试或排除任何问题,你需要一个像 lnav这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。** +![][0] + +> 如果你想调试或排除任何问题,你需要一个像 lnav 这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。 ### lnav: 日志文件查看器 -lnav 可以即时解压缩所有的压缩日志文件,并将它们合并在一起进行漂亮的显示。显示是根据错误/警告的类型进行解析和格式化的,这有助于快速浏览成千上万的日志,特别是在服务器中。 +`lnav` 可以即时解压缩所有的压缩日志文件,并将它们合并在一起进行漂亮的显示。显示是根据错误/警告的类型进行解析和格式化的,这有助于快速浏览成千上万的日志,特别是在服务器中。 -在分析日志的时候,时间戳是非常重要的。所以 lnav 根据时间戳合并多个日志,这对追踪系统问题很有帮助。 +在分析日志的时候,时间戳是非常重要的。所以 `lnav` 会根据时间戳合并多个日志,这对追踪系统问题很有帮助。 -大多数重要的日志文件格式检测都是内置的,如下: +大多数重要的日志文件格式检测都是内置的,包括如下: -- 常见的网络访问日志格式 +- 通用网络访问日志Common Web Access Log格式 - CUPS page_log - Syslog - Glog @@ -30,21 +32,21 @@ lnav 可以即时解压缩所有的压缩日志文件,并将它们合并在一 - “通用”:任何以时间戳开头的信息 - Strace - sudo -- GZIP, BZIP +- GZIP、BZIP -这还不是全部,lnav 还能实现以下功能,使其成为 Linux 系统的重要应用。 +这还不是全部,`lnav` 还能实现以下功能,使其成为 Linux 系统的重要应用: - 根据正则表达式过滤消息 -- 错误的时间轴视图 +- 错误日志的时间轴视图 - 漂亮的打印视图,这有助于重新格式化 - 使用 SQL 查询日志 -- 在搜索时,日志会实时更新。 +- 在搜索时,日志会实时更新 - 通过正则表达式高亮显示语法(比如你想在整个日志中找出一个 IP 地址) - 显示的日志中任何单词的 Tab 补全!! ![lnav 在 ubuntu 中运行][1] -要查看上述功能的截图和了解更多信息,请访问[本页面][2] 。 +要查看上述功能的截图和了解更多信息,请访问 [本页面][2] 。 ### 如何安装 @@ -60,7 +62,7 @@ sudo apt install lnav sudo dnf install lnav ``` -另外,开发者还提供了一个离线的独立可执行文件,你不需要安装。你可以从 [GitHub 发布页][3]下载压缩包,然后按以下方式执行: +另外,开发者还提供了一个离线的独立可执行文件,你不需要安装。你可以从 [GitHub 发布页][3] 下载压缩包,然后按以下方式执行: ``` ./lnav @@ -76,7 +78,7 @@ sudo dnf install lnav lnav [options] [logfile1 logfile2 …] ``` -如果你只运行 lnav 命令,它会显示你系统中的所有日志(/var/log/messages 和 /var/log/syslog) +如果你直接运行 `lnav` 命令,它会显示你系统中的所有日志(`/var/log/messages` 和 `/var/log/syslog`) ``` lnav @@ -88,28 +90,26 @@ lnav lnav /var/log/syslog ``` -使用 -t 参数在你的日志输出中添加时间戳: +使用 `-t` 参数在你的日志输出中添加时间戳: ``` lnav -t /var/log/syslog ``` -以下是 lnav 的一些关键开关: +以下是 `lnav` 的一些关键开关: -``` --d file 将调试信息写入给定的文件。 --a 加载所有最新的日志文件类型。 --r 也加载较早的旋转日志文件。 --t 在标准输入中读入的数据行上预加时间戳。 --w file 将标准输入的内容写入该文件。 --c cmd 在文件加载后执行命令。 --f path 执行给定文件中的命令。 --n 不使用 curses UI 运行(无头模式)。 -``` +- `-d file`:将调试信息写入给定的文件。 +- `-a`:加载所有最新的日志文件类型。 +- `-r`:也加载较早的轮转的日志文件。 +- `-t`:在标准输入中读入的数据行上预加时间戳。 +- `-w file`:将标准输入的内容写入该文件。 +- `-c cmd`:在文件加载后执行命令。 +- `-f path`:执行给定文件中的命令。 +- `-n`:不使用 curses UI 运行(无头模式)。 ![lnav 在 Ubuntu 22.04 中运行][4] -要进一步阅读和探索,请访问[官方文档][5]。 +要进一步阅读和探索,请访问 [官方文档][5]。 -------------------------------------------------------------------------------- @@ -118,7 +118,7 @@ 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) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -128,4 +128,5 @@ via: https://www.debugpoint.com/advanced-log-file-viewer-lnav-ubuntu-linux/ [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 +[5]: https://docs.lnav.org/en/latest/intro.html +[0]: https://img.linux.net.cn/data/attachment/album/202301/18/101616eio2v80m1v34ol2o.jpg \ No newline at end of file From 5b2fcde48590bd84d8cd1d71b0c32b0b7c8f1719 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 18 Jan 2023 16:05:18 +0800 Subject: [PATCH 183/357] ATRP @wxy https://linux.cn/article-15455-1.html --- ... Try If You are Not a Total Terminal Junkie.md | 143 ++++++++++++++++++ ... Try If You are Not a Total Terminal Junkie.md | 139 ----------------- 2 files changed, 143 insertions(+), 139 deletions(-) create mode 100644 published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md delete mode 100644 sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md diff --git a/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md b/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md new file mode 100644 index 0000000000..1c79bdf475 --- /dev/null +++ b/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md @@ -0,0 +1,143 @@ +[#]: subject: "5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie" +[#]: via: "https://itsfoss.com/neovim-gui-editors/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15455-1.html" + +你可以尝试的 5 个 NeoVim GUI 编辑器 +====== + +![][0] + +Vim 很不错,但 NeoVim 更新一些,甚至更棒。Vim 和 NeoVim 都是基于终端的文本编辑器,具有类似的功能。 + +如果你是一个习惯于使用 [像 VS Code 这样的 GUI 文本编辑器][1] 的人,并且希望拥有 NeoVim 提供的类似功能,你应该了解一下这些 GUI 编辑器。 + +虽然我知道你可以把 NeoVim 作为你目前的文本编辑器的插件,但直接使用 NeoVim 工作要比管理插件更有效和方便。 + +在选择 NeoVim 的 GUI 时,有一些不同的选择,我把一些最好的 GUI 列在下面: + +### 1、Neovide + +![neovide][2] + +主要特点: + +- 动画光标 +- 平滑滚动 +- 动画窗口 +- 模糊的浮动窗口 +- 支持表情符号 + +[Neovide][3] 旨在成为一个简单的 NeoVim GUI。 + +虽然你不会看到很多图形元素,它只是增加了一些诸如动画之类的 GUI 功能。它使用了一个叫 Skulpin 的库来渲染动画。 + +而我在使用 Neovide 时最喜欢的地方是它拥有一个动画光标和平滑滚动。你看一看这个就明白了: + +![][3a] + +看起来很酷。对吗? + +### 2、Neovim Qt + +![neovim Qt][4] + +主要特点: + +- 悬停功能 +- 多个 GUI 标签 +- 自动制表符补完 +- 跨平台支持 + +顾名思义,[Neovim Qt][5] 是用 Qt5 库构建的,你会经常看到它在 KDE 中使用。它没有太多花哨的东西,只是增加了一些额外的 GUI 功能,如多个标签,自动制表符补完等。 + +因此,如果你已经在使用 Qt5 库,并希望为 NeoVim 提供一个精简的 GUI,它将工作的很好,并为你省去一些依赖安装。 + +推荐: + +> **[Vim vs Nano:你应该选择哪个?][6]** + +### 3、Uivonim + +![uivonim][7] + +主要特点: + +- WebGL GPU 渲染和多线程 +- 支持 VSCode 扩展 +- Nyancat(经典猫咪动画的 ANSI 文本程序) +- 悬停和代码动作 + +[Uivonim][8] 是 Veonim(一个建立在 VSCode 插件和 NeoVim 上的简单 IDE)的复刻版,采用 Electron 框架编写,如果你从 VSCode 转换过来,它是一个完美的选择。 + +而 Uivonim 的唯一目标是提供丰富的 NeoVim 体验,支持 NeoVim 的最新功能,包括浮动窗口、内置 LSP 等等。你不需要依赖 VSCode 扩展来获得这些功能。 + +### 4、FVim + +![fvim][9] + +主要特点: + +- 脱离窗口(使用 `Ctrl+w`,`GE`) +- 自定义弹出式菜单条目图标 +- 支持 HiDPI +- GPU 加速 + +[FVim][10] 是一个用 F# + Avalonia 构建的 NeoVim 的跨平台 GUI,带有一些突破性的功能,如高性能渲染(在 4K 显示器上支持 60FPS)。 + +而我经常使用脱离窗口的功能,因为我更喜欢为不同的文本文件设置独立的窗口。另外,如果你是一个资深的远程用户,FVim 也不会让你失望。 + +### 5、Goneovim + +![goneovim][11] + +主要特点: + +- 支持一个带有 Bash 和 Zsh 的终端 +- 迷你地图 +- 动画光标 +- HiDPI 缩放 +- 外部浮动窗口 + +顾名思义,[Goneovim][12] 是用 Go 语言编写的,是 Gonvim 的一个复刻品。它提供了足够的 GUI 功能来完成你的工作,如动画光标、像素级滚动等。 + +而且它在让你获得基本的文本编辑功能方面也并不差,比如对文本文件的拖放支持。 + +### 总结 + +这是我对 NeoVim 的图形用户界面的一些好的选择,我希望你能找到你想要的东西。 + +如果我错过了任何你喜欢的东西,请在评论中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/neovim-gui-editors/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ +[2]: https://itsfoss.com/content/images/wordpress/2022/11/neovide.png +[3]: https://neovide.dev/index.html +[3a]: https://itsfoss.com/content/images/wordpress/2022/11/neovide.gif +[4]: https://itsfoss.com/content/images/wordpress/2022/11/neovim-qt.png +[5]: https://github.com/equalsraf/neovim-qt +[6]: https://itsfoss.com/vim-vs-nano/ +[7]: https://itsfoss.com/content/images/wordpress/2022/11/uivonim.png +[8]: https://github.com/smolck/uivonim +[9]: https://itsfoss.com/content/images/wordpress/2022/11/fvim-1.png +[10]: https://github.com/yatli/fvim +[11]: https://itsfoss.com/content/images/wordpress/2022/11/goneovim-1.png +[12]: https://github.com/akiyosi/goneovim +[13]: https://itsfoss.com/install-latest-vim-ubuntu/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/18/160357g9mrmohow8wm68iw.jpg \ No newline at end of file diff --git a/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md b/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md deleted file mode 100644 index e8fcabb8c0..0000000000 --- a/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md +++ /dev/null @@ -1,139 +0,0 @@ -[#]: subject: "5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie" -[#]: via: "https://itsfoss.com/neovim-gui-editors/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie -====== - -Vim is awesome. NeoVim is newer and even more awesome. Both Vim and NeoVim are terminal-based text editors with similar features. - -If you are someone who is accustomed to using [GUI text editors like VS Code][1] and wish to have the similar functionality that NeoVim provides, you should explore GUI options. - -Although I know you can use NeoVim as an add-on for your current text editor, working directly with NeoVim is much more effective and convenient for managing plugins. - -There are a few different options available when choosing a NeoVim GUI, and I have put together a list of some of the best ones below. - -### 1. Neovide - -![neovide][2] - -**Key Features:** - -- Animated cursor -- Smooth scrolling -- Animated windows -- Blurred floating windows -- Emoji support - -[Neovide][3] aims to be a no-nonsense graphical user interface for NeoVim. - -While you won’t see many graphical elements, it only adds some GUI features, such as animations, using a library called Skulpin to render animations. - -And my favorite part of using Neovide is having an animated cursor and smooth scrolling. I mean, have a look at this: - -Looks cool. Right? - -### 2. Neovim Qt - -![neovim qt][4] - -**Key Features:** - -- Hover features -- Multiple GUI tabs -- Auto tab completion -- Cross-platform support - -As the name suggests, [Neovim Qt][5] is built with the Qt5 library, which you’ll often see being used by KDE. Nothing too fancy, adds some additional GUI features like multiple tabs, auto-tab completion, and more. - -So if you are already using Qt5 libraries and want a minimal GUI for NeoVim, this would work like a charm and save you some dependencies. - -**Recommended:**[Vim vs Nano: What Should You Choose?][6] - -### 3. Uivonim - -![uivonim][7] - -**Key Features:** - -- WebGL GPU rendering and multithreading -- Support for VSCode extensions -- Nyancat (ANSI-text program for classic cat animation) -- Hover and code actions - -[Uivonim][8] is a fork of Veonim (A simple IDE built on VSCode plugins and NeoVim) written in electron, making it the perfect choice if you switch from VSCode. - -And the only goal of uivonim is to provide a rich NeoVim experience that supports the latest features of NeoVim, including floating windows, built-in LSP, and more. You do not need to rely on VSCode extensions to get these features. - -[Uivonim][8] - -### 4. FVim - -![fvim][9] - -**Key Features:** - -- Detach windows (using `Ctrl+w and GE`). -- Custom popup menu entry icons. -- HiDPI support. -- GPU acceleration. - -[FVim][10] is a cross-platform GUI for NeoVim built with F# + Avalonia that comes with some groundbreaking features such as high-performance rendering (60FPS on 4K display). - -And I often use the detach window feature as I prefer to have separate windows for different text files. Also, if you are an advanced remote user, FVim won’t let you down either. - -### 5. Goneovim - -![goneovim][11] - -**Key Features:** - -- Support for a terminal with bash and zsh -- Minimap -- Animated cursor -- High DPI scaling -- External float window - -As its name suggests, [Goneovim][12] is written in GO and is a fork of Gonvim. And offers enough GUI features to get your job done such as an animated cursor, pixel scrolling, and more. - -And it does not compromise on getting you basic text editing features, such as drag-and-drop support for text files. - -**Useful Read**: [How to Install Latest Vim on Ubuntu Linux][13] - -### Wrapping Up - -This was my take on what are some good options when it comes to GUI for NeoVim and I hope you found what you were looking for. - -If I missed any of your favorites, let me know your thoughts in the comments. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/neovim-gui-editors/ - -作者:[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/best-modern-open-source-code-editors-for-linux/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/neovide.png -[3]: https://neovide.dev/index.html -[4]: https://itsfoss.com/wp-content/uploads/2022/11/neovim-qt.png -[5]: https://github.com/equalsraf/neovim-qt -[6]: https://itsfoss.com/vim-vs-nano/ -[7]: https://itsfoss.com/wp-content/uploads/2022/11/uivonim.png -[8]: https://github.com/smolck/uivonim -[9]: https://itsfoss.com/wp-content/uploads/2022/11/fvim-1.png -[10]: https://github.com/yatli/fvim -[11]: https://itsfoss.com/wp-content/uploads/2022/11/goneovim-1.png -[12]: https://github.com/akiyosi/goneovim -[13]: https://itsfoss.com/install-latest-vim-ubuntu/ From 1e4c7a198b0913f6eb8cac3354200c50f8cc9862 Mon Sep 17 00:00:00 2001 From: Tingze-G <119109831+Tingze-G@users.noreply.github.com> Date: Wed, 18 Jan 2023 20:47:36 +0800 Subject: [PATCH 184/357] =?UTF-8?q?Update=20and=20rename=20sources/tech/20?= =?UTF-8?q?221123.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20apt=20remove?= =?UTF-8?q?=20vs=20apt=20purge=20What=E2=80=99s=20the=20Difference.md=20to?= =?UTF-8?q?=20translated/tech/20221123.0=20=E2=AD=90=EF=B8=8F=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20apt=20remove=20vs=20apt=20purge=20What=E2=80=99s=20?= =?UTF-8?q?the=20Difference.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 提交译文 --- ... apt remove vs apt purge What’s the Difference.md | 121 ----------------- ... apt remove vs apt purge What’s the Difference.md | 123 ++++++++++++++++++ 2 files changed, 123 insertions(+), 121 deletions(-) delete mode 100644 sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md create mode 100644 translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md diff --git a/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md deleted file mode 100644 index 7eb690888a..0000000000 --- a/sources/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md +++ /dev/null @@ -1,121 +0,0 @@ -[#]: subject: "apt remove vs apt purge: What’s the Difference?" -[#]: via: "https://itsfoss.com/apt-remove/" -[#]: author: "Abhishek Prakash https://itsfoss.com/" -[#]: collector: "lkxed" -[#]: translator: "Tngze-G" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -apt remove vs apt purge: What’s the Difference? -====== - -To [uninstall an application in the Ubuntu terminal][1], you can use: - -``` -sudo apt remove package_name -``` - -But in various forums, you may come across the suggestion to use the apt purge command for removing applications completely. - -This leaves you confused because using apt purge is quite similar to apt remove: - -``` -sudo apt purge package_name -``` - -So, why are there two similar commands for removing packages? What’s the difference between the two? Let me explain it to you with a few examples. - -### What’s the difference between apt-remove and apt-purge? - -Both apt-remove and apt-purge do the same thing and that is to uninstall a package. The apt-purge removes the package and purges any configuration files associated with it. That’s the only difference between the two. Neither command touches the application files under the home directory of the user. - -Have you ever removed an application and installed it again, only to notice that all your settings are in place? It’s because the apt remove command doesn’t remove the configuration files. - -#### See what’s being removed and what remains - -Let me share a practical example of removing the mplayer application using both apt remove and apt purge commands. The focus is on seeing what files remain after each operation. - -Here are the files associated with mplayer before removal. - -![mplayer before removal][2] - -Now, if I run the apt remove command. - -![apt uninstall package ubuntu][3] - -Here are the files that remain in the system: - -![files after mplayer removal][4] - -As you can see, there are mplayer files remaining in two locations: /etc and /home/abhishek. - -Now, if I install mplayer again and use apt purge to remove mplayer application this time. - -![apt purge command][5] - -Let’s look for files associated mplayer now. - -![files after mplayer removal][6] - -As you can see, the files from /etc directory no longer exists. - -But what about the files in the home directory? Should apt purge not remove it? - -The answer is negative. The apt commands do not touch the configuration files located under the home directory. They remain in the system unless you manually remove them. Those files are really small in size and hardly take disk space. - -Do note that not all applications create configuration files under /etc or home directory. - -#### The effect of using apt remove or apt purge - -A practical example I can think of is Discord. You [install Discord on Ubuntu][7] with deb file. Start using it by logging into your account. Remove discord and install it again using deb file. - -Now if you start Discord, you’ll notice that you are already logged into your account. Surprising, no? - -But this is a feature because some applications like Discord, VirtualBox provide you updates similarly. You remove the current version and install the newer one (even if you don’t see this process). Since the application configuration files are not touched, you are logged back in without additional effort. - -The apt remove command gives you the option to reuse an application with similar configuration that you used in the past. - -However, you may not always want it. If you configured an application in a bad way and want to start from scratch, the apt purge command is the way to go forward. - -#### Does apt purge perform a wild-card removal? - -When you purge a package, you’ll notice that it mentions removing package-name*. This indicates that it will remove all the packages with names starting from package-name. - -![apt purge wild card][8] - -I didn’t find a definite answer on this point in the documentation (i.e. man page). So, I did a little test on my own. I installed espeak and espeak-ng packages. The espeak* should expand to espeak-ng as well. - -But when espeak was pruged, the espeak-ng package was untouched. So there seems to be a mechanism that protects against such wild card expansions. - -### So, should you use apt remove or apt purge? - -Few people just get addicted to using apt purge. - -In my opinion, apt remove is what you should use most of the time. Use apt purge when you have to get rid of the custom configuration files. - -In both cases, you’ll have to remove the remaining configuration files from the user’s home directory and run apt autoremove to eliminate any leftover dependencies. - -Over to you now. Do you understand the difference between apt remove and apt purge better now? Which one do you prefer to use? - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/apt-remove/ - -作者:[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/apt-remove/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/mplayer-before-removal.png -[3]: https://itsfoss.com/wp-content/uploads/2022/11/apt-uninstall-package-ubuntu.png -[4]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-mplayer-removal.png -[5]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-command.png -[6]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-apt-purge.png -[7]: https://itsfoss.com/install-discord-linux/ -[8]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-wild-card.png diff --git a/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md new file mode 100644 index 0000000000..3fa294485a --- /dev/null +++ b/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md @@ -0,0 +1,123 @@ +[#]: subject: "apt remove vs apt purge: What’s the Difference?" +[#]: via: "https://itsfoss.com/apt-remove/" +[#]: author: "Abhishek Prakash https://itsfoss.com/" +[#]: collector: "lkxed" +[#]: translator: "Tngze-G" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +apt remove 和 apt purge: 有什么区别? +====== + +如果你想在Ubuntu服务器上卸载软件,可以使用 + +``` +sudo apt remove package_name +``` + +但是在很多论坛,你可能会看到别人说,如果你想彻底删除软件就用the apt purge。 + +你可能会觉得很困惑,因为apt purge 和apt remove 看起来是一样的。 + +``` +sudo apt purge package_name +``` + +为什么会有两个如此像的命令删除安装包呢?两者之间有什么不同呢?下面将为您揭晓 + +### apt-remove和 apt-purge有什么不同? + +apt-remove 和 apt-purge相同之处就是都可以卸载安装包, 但是运行apt-purge 除了可以删除安装包之外,还可以清除相关的配置文件。这是两者之间唯一的不同点。要注意的是这两条命令都不能删除用户家目录中相关的应用程序文件。 + +你是否遇到过这样的情况,卸载一个软件然后重新安装,却发现之前的设置都还在。 +这是因为用 apt remove 不能删除该软件的相关配置文件。 + + +#### 哪些东西被删除了?哪些还在? + +我用这两个命令分别卸载一下mplayer这个软件,看看卸载之后残留什么文件。 +我分享一个使用apt remove和apt purge两个命令分别卸载mplayer这个软件的实际例子。重点是看每次操作后还残余哪些文件。 + +这是删除前的文件 + +![mplayer before removal][2] + +现在运行 apt remove 这个命令 + +![apt uninstall package ubuntu][3] + +下面的是还残留在系统中的文件 + +![files after mplayer removal][4] + +我们可以看到,有两个地方残留着mplayer的文件: /etc 和 /home/abhishek. + +这次我们重新安装mplayer,然后用apt purge 来卸载软件。 + +![apt purge command][5] + +现在让我们看看与mplayer相关的文件 + +![files after mplayer removal][6] + +我们可以看到/etc目录下的文件已经没有了。 + +但是在家目录中的文件呢?apt purge会删除它们吗? + +答案是否定的。apt命令不会删除家目录中的配置文件。所以它们仍然在系统中,除非你手动删除。但是这些文件所占的空间真的很小,几乎不占磁盘空间。 + +值得注意的是,不是所有的软件在家目录或者 /etc目录下都有配置文件。 + +#### 使用 apt remove 或者 apt purge的效果 + +我能想到的一个实际例子就是discord, 你用deb文件 [在Ubuntu上安装了Discord][7]. 然后登录自己的账号,之后又卸载并重新用deb文件安装。 + +现在如果你打开Discord,你会发现你的账号自动登录了。是不是觉得很奇怪? + + +这个现象,就像是一些软件,比如Discord,VirtualBox,它们会提供更新,就是卸载现在的版本然后下载新的(尽管你不知道它内部怎么进行的),但是它在卸载的时候,这些软件的配置文件没有被删除,所以等你打开这些软件的时候就会自动登录。 + +当你想卸载一个软件,但是想保留你过去使用该软件留下的配置文件的时候,你就可以用apt remove。 +但是,有时候用它不能满足你的需求,比如当你没有配置好一个软件的时候,你想要重新开始,这个时候用apt purge就比较合适。 + +#### 运行apt purge 是否可以删除通配符? + +当你删除一个包的时候,它会提示removing package-name*. 这意味着它会删除以这个包名开头的所有文件 + +![apt purge wild card][8] + +我在文档中没有找到关于这个问题的答案 (i.e. man page)。 所以我自己做了一个小测试,我安装了espeak和espeak-ng这两个软件, espeak这个包按理说是可以扩展到espeak-ng。 + +但是当我用apt purge 删除espeak包时,espeak-ng包还在,没有被一并删除。因此,这似乎是有一种防止通配符的扩展的机制。 + +### 那么,你应该使用apt remove还是apt purge呢? + +大部分人很常使用apt purge。 + +在我看来,一般清况下,用apt remove 就可以了,但是当你想删除那些自定义配置文件时,你就得用apt purge。 +不管是用apt remove 还是 apt purge, 你都需要从用户的家目录中删除残余的配置文件,并运行apt autoremove 来清除任何依赖的包。 + +现在到你啦。你现在对apt remove和apt purge的区别有更了解吗?你更喜欢使用哪一个呢? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/apt-remove/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[Tingze-G](https://github.com/Tingze-G) +校对:[校对者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/apt-remove/ +[2]: https://itsfoss.com/wp-content/uploads/2022/11/mplayer-before-removal.png +[3]: https://itsfoss.com/wp-content/uploads/2022/11/apt-uninstall-package-ubuntu.png +[4]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-mplayer-removal.png +[5]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-command.png +[6]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-apt-purge.png +[7]: https://itsfoss.com/install-discord-linux/ +[8]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-wild-card.png From 24a4740c24daa0851b3a11dff466b279bd5189e1 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Thu, 19 Jan 2023 00:03:21 +0800 Subject: [PATCH 185/357] translation request --- ... meets academic publishing- Platinum open access journals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md index 91c7df4d12..6ccfafb514 100644 --- a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md +++ b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/5/platinum-open-access-academic-journals" [#]: author: "Joshua Pearce https://opensource.com/users/jmpearce" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5bc638a8f15c0caf01bf7b0a7a630cd746a48e86 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Thu, 19 Jan 2023 00:18:37 +0800 Subject: [PATCH 186/357] merge --- ...20210718 Is Open-Source Software Secure.md | 105 +++---- published/20211012 Create a timer on Linux.md | 275 +++++++++++++++++ ...stic (Yet Underrated) Linux Desktop Environment.md | 190 ++++++++++++ ... Try If You are Not a Total Terminal Junkie.md | 143 +++++++++ ... File Viewer for Linux Desktops and Servers.md | 132 +++++++++ ...What is Firefox ESR How to Install it in Ubuntu.md | 39 +-- ...tions for Ubuntu and Other Linux [2022 Edition].md | 188 ++++++++++++ ...my zsh and powerlevel10k A Match Made in Heaven.md | 224 ++++++++++++++ ...d Siri in Works for Home Assistant Platform.md | 24 +- ... ⭐️ How to read and write files in Rust.md | 116 ++++++++ ... Command in Linux Explanation with Examples.md | 137 +++++++++ ...reis Command in Linux and BSD with Examples.md | 147 ++++++++++ ...es These 3 Key Improvements for Linux Users.md | 97 ++++++ ...earn w Command in Linux & BSD with Examples.md | 111 +++++++ ...a programming language by writing a simple game.md | 183 ++++++++++++ ...io 29 Release Has Little in Store For Linux.md | 92 ++++++ ...0110.0 ⭐️⭐️ A guide to strings in MySQL.md | 233 +++++++++++++++ ...er's MasterPlus Software to Go Open Source!.md | 78 +++++ ...is All Set to Disable Microsoft's RNDIS Drivers.md | 77 +++++ ...r Lobster Wallpaper Competition is Now Open.md | 59 ++++ ...zing Release With Much-Needed Feature Additions.md | 144 +++++++++ ...Medium Joins in With its New Community Platform.md | 98 +++++++ ...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 ------- .../20190331 Codecademy vs. The BBC Micro.md | 235 --------------- ... pretty soon you-re talking real memory.md | 2 +- ...mputing by programming embedded systems.md | 2 +- .../tech/20211012 Create a timer on Linux.md | 277 ------------------ ...stic (Yet Underrated) Linux Desktop Environment.md | 185 ------------ ... Try If You are Not a Total Terminal Junkie.md | 139 --------- ... File Viewer for Linux Desktops and Servers.md | 127 -------- ...tions for Ubuntu and Other Linux [2022 Edition].md | 185 ------------ ...️ 11 New Distros to look forward to in 2023.md | 4 +- ...my zsh and powerlevel10k A Match Made in Heaven.md | 222 -------------- ... ⭐️ How to read and write files in Rust.md | 110 ------- ... Command in Linux Explanation with Examples.md | 138 --------- ...rs GNOME Extension to help Colorblind Users.md | 106 ------- ...reis Command in Linux and BSD with Examples.md | 152 ---------- ...6 tips for building an effective DevOps culture.md | 101 ------- ...power your edge projects with open source tools.md | 123 ++++++++ ... this open source API gateway to scale your API.md | 149 ++++++++++ ...30110.3 ⭐️⭐️ How to use methods in Java.md | 187 ++++++++++++ ...tu on Windows Using VirtualBox [Complete Guide].md | 241 +++++++++++++++ ...nstall Python on Windows [Beginner’s Guide].md | 147 ++++++++++ ...t and Host in virt-manager (KVMQemulibvirt).md | 110 +++++++ ...114.0 ⭐️ A 4-minute guide to Java loops.md | 151 ++++++++++ .../20190331 Codecademy vs. The BBC Micro.md | 146 +++++++++ ...rs GNOME Extension to help Colorblind Users.md | 101 +++++++ ...6 tips for building an effective DevOps culture.md | 102 +++++++ ...ok Offline English Dictionary App for GNOME.md | 69 +++++ 51 files changed, 4340 insertions(+), 2370 deletions(-) rename {translated/talk => published}/20210718 Is Open-Source Software Secure.md (51%) create mode 100644 published/20211012 Create a timer on Linux.md create mode 100644 published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md create mode 100644 published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md create mode 100644 published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md rename {translated/tech => published}/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md (67%) create mode 100644 published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md create mode 100644 published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md rename {translated/tech => published}/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md (74%) create mode 100644 published/20230102.0 ⭐️ How to read and write files in Rust.md create mode 100644 published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md create mode 100644 published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md create mode 100644 published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md create mode 100644 published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md create mode 100644 published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md create mode 100644 published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md create mode 100644 published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md create mode 100644 published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md create mode 100644 published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md create mode 100644 published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md create mode 100644 published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md create mode 100644 published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md 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 delete mode 100644 sources/talk/20190331 Codecademy vs. The BBC Micro.md delete mode 100644 sources/tech/20211012 Create a timer on Linux.md delete mode 100644 sources/tech/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md delete mode 100644 sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md delete mode 100644 sources/tech/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md delete mode 100644 sources/tech/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md delete mode 100644 sources/tech/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md delete mode 100644 sources/tech/20230102.0 ⭐️ How to read and write files in Rust.md delete mode 100644 sources/tech/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md delete mode 100644 sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md delete mode 100644 sources/tech/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md delete mode 100644 sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md create mode 100644 sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md create mode 100644 sources/tech/20230109.1 ⭐️⭐️ Use this open source API gateway to scale your API.md create mode 100644 sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md create mode 100644 sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md create mode 100644 sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md create mode 100644 sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md create mode 100644 sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md create mode 100644 translated/talk/20190331 Codecademy vs. The BBC Micro.md create mode 100644 translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md create mode 100644 translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md create mode 100644 translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md 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 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/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/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md b/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md new file mode 100644 index 0000000000..1c79bdf475 --- /dev/null +++ b/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md @@ -0,0 +1,143 @@ +[#]: subject: "5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie" +[#]: via: "https://itsfoss.com/neovim-gui-editors/" +[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15455-1.html" + +你可以尝试的 5 个 NeoVim GUI 编辑器 +====== + +![][0] + +Vim 很不错,但 NeoVim 更新一些,甚至更棒。Vim 和 NeoVim 都是基于终端的文本编辑器,具有类似的功能。 + +如果你是一个习惯于使用 [像 VS Code 这样的 GUI 文本编辑器][1] 的人,并且希望拥有 NeoVim 提供的类似功能,你应该了解一下这些 GUI 编辑器。 + +虽然我知道你可以把 NeoVim 作为你目前的文本编辑器的插件,但直接使用 NeoVim 工作要比管理插件更有效和方便。 + +在选择 NeoVim 的 GUI 时,有一些不同的选择,我把一些最好的 GUI 列在下面: + +### 1、Neovide + +![neovide][2] + +主要特点: + +- 动画光标 +- 平滑滚动 +- 动画窗口 +- 模糊的浮动窗口 +- 支持表情符号 + +[Neovide][3] 旨在成为一个简单的 NeoVim GUI。 + +虽然你不会看到很多图形元素,它只是增加了一些诸如动画之类的 GUI 功能。它使用了一个叫 Skulpin 的库来渲染动画。 + +而我在使用 Neovide 时最喜欢的地方是它拥有一个动画光标和平滑滚动。你看一看这个就明白了: + +![][3a] + +看起来很酷。对吗? + +### 2、Neovim Qt + +![neovim Qt][4] + +主要特点: + +- 悬停功能 +- 多个 GUI 标签 +- 自动制表符补完 +- 跨平台支持 + +顾名思义,[Neovim Qt][5] 是用 Qt5 库构建的,你会经常看到它在 KDE 中使用。它没有太多花哨的东西,只是增加了一些额外的 GUI 功能,如多个标签,自动制表符补完等。 + +因此,如果你已经在使用 Qt5 库,并希望为 NeoVim 提供一个精简的 GUI,它将工作的很好,并为你省去一些依赖安装。 + +推荐: + +> **[Vim vs Nano:你应该选择哪个?][6]** + +### 3、Uivonim + +![uivonim][7] + +主要特点: + +- WebGL GPU 渲染和多线程 +- 支持 VSCode 扩展 +- Nyancat(经典猫咪动画的 ANSI 文本程序) +- 悬停和代码动作 + +[Uivonim][8] 是 Veonim(一个建立在 VSCode 插件和 NeoVim 上的简单 IDE)的复刻版,采用 Electron 框架编写,如果你从 VSCode 转换过来,它是一个完美的选择。 + +而 Uivonim 的唯一目标是提供丰富的 NeoVim 体验,支持 NeoVim 的最新功能,包括浮动窗口、内置 LSP 等等。你不需要依赖 VSCode 扩展来获得这些功能。 + +### 4、FVim + +![fvim][9] + +主要特点: + +- 脱离窗口(使用 `Ctrl+w`,`GE`) +- 自定义弹出式菜单条目图标 +- 支持 HiDPI +- GPU 加速 + +[FVim][10] 是一个用 F# + Avalonia 构建的 NeoVim 的跨平台 GUI,带有一些突破性的功能,如高性能渲染(在 4K 显示器上支持 60FPS)。 + +而我经常使用脱离窗口的功能,因为我更喜欢为不同的文本文件设置独立的窗口。另外,如果你是一个资深的远程用户,FVim 也不会让你失望。 + +### 5、Goneovim + +![goneovim][11] + +主要特点: + +- 支持一个带有 Bash 和 Zsh 的终端 +- 迷你地图 +- 动画光标 +- HiDPI 缩放 +- 外部浮动窗口 + +顾名思义,[Goneovim][12] 是用 Go 语言编写的,是 Gonvim 的一个复刻品。它提供了足够的 GUI 功能来完成你的工作,如动画光标、像素级滚动等。 + +而且它在让你获得基本的文本编辑功能方面也并不差,比如对文本文件的拖放支持。 + +### 总结 + +这是我对 NeoVim 的图形用户界面的一些好的选择,我希望你能找到你想要的东西。 + +如果我错过了任何你喜欢的东西,请在评论中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/neovim-gui-editors/ + +作者:[Sagar Sharma][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/sagar/ +[b]: https://github.com/lkxed +[1]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ +[2]: https://itsfoss.com/content/images/wordpress/2022/11/neovide.png +[3]: https://neovide.dev/index.html +[3a]: https://itsfoss.com/content/images/wordpress/2022/11/neovide.gif +[4]: https://itsfoss.com/content/images/wordpress/2022/11/neovim-qt.png +[5]: https://github.com/equalsraf/neovim-qt +[6]: https://itsfoss.com/vim-vs-nano/ +[7]: https://itsfoss.com/content/images/wordpress/2022/11/uivonim.png +[8]: https://github.com/smolck/uivonim +[9]: https://itsfoss.com/content/images/wordpress/2022/11/fvim-1.png +[10]: https://github.com/yatli/fvim +[11]: https://itsfoss.com/content/images/wordpress/2022/11/goneovim-1.png +[12]: https://github.com/akiyosi/goneovim +[13]: https://itsfoss.com/install-latest-vim-ubuntu/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/18/160357g9mrmohow8wm68iw.jpg \ No newline at end of file diff --git a/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md new file mode 100644 index 0000000000..60b7b2ba8a --- /dev/null +++ b/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md @@ -0,0 +1,132 @@ +[#]: 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: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15454-1.html" + +lnav: 用于 Linux 的高级日志文件浏览器 +====== + +![][0] + +> 如果你想调试或排除任何问题,你需要一个像 lnav 这样的高级日志文件查看器。它在任何 Linux 系统的终端都能创造奇迹。 + +### lnav: 日志文件查看器 + +`lnav` 可以即时解压缩所有的压缩日志文件,并将它们合并在一起进行漂亮的显示。显示是根据错误/警告的类型进行解析和格式化的,这有助于快速浏览成千上万的日志,特别是在服务器中。 + +在分析日志的时候,时间戳是非常重要的。所以 `lnav` 会根据时间戳合并多个日志,这对追踪系统问题很有帮助。 + +大多数重要的日志文件格式检测都是内置的,包括如下: + +- 通用网络访问日志Common Web Access Log格式 +- 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) +校对:[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/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 +[0]: https://img.linux.net.cn/data/attachment/album/202301/18/101616eio2v80m1v34ol2o.jpg \ No newline at end of file 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 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..47892e9284 --- /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 Platform + +本列表中的最后一个应用是 Open Streaming Platform(OSP),这是一个开源的 RTMP 流媒体软件,可以作为 YouTube LIVE、Twitch.tv 等的自托管替代品。 + +![Open Streaming Platform][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/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/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/) 荣誉推出 diff --git a/published/20230102.0 ⭐️ How to read and write files in Rust.md b/published/20230102.0 ⭐️ How to read and write files in Rust.md new file mode 100644 index 0000000000..096f1282e4 --- /dev/null +++ b/published/20230102.0 ⭐️ How to read and write files in Rust.md @@ -0,0 +1,116 @@ +[#]: 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: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15442-1.html" + +如何在 Rust 中读取和写入文件 +====== + +> 跟随这个演示,学习如何在 Rust 中使用文件系统模块。 + +![][0] + +知道如何读写文件对各种用途都很有用。在 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) +校对:[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/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 +[0]: https://opensource.com/sites/default/files/lead-images/rust_programming_crab_sea.png \ No newline at end of file diff --git a/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md new file mode 100644 index 0000000000..8dfae90cf2 --- /dev/null +++ b/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md @@ -0,0 +1,137 @@ +[#]: 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: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15430-1.html" + +who 命令的解释与示例 +====== + +![][0] + +> 这里是一个关于理解 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`。 + +``` +❯ who +debugpoint :0 2023-01-01 23:36 (:0) +``` + +要显示当前用户的用户名和信息,使用下面的方法: + +``` +whoami +``` + +使用 `-b` 选项查看最后一次系统启动时间: + +``` +❯ who -b +system boot 2023-01-01 23:36 +``` + +显示当前系统中登录的用户数: + +``` +❯ who -q +debugpoint +users=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]来了解更多。如果你有任何问题,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/who-command-linux/ + +作者:[Arindam][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://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 +[0]: https://img.linux.net.cn/data/attachment/album/202301/10/130213zb6odhv8gl8cvxvo.jpg \ No newline at end of file diff --git a/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md new file mode 100644 index 0000000000..f4c1cb482d --- /dev/null +++ b/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md @@ -0,0 +1,147 @@ +[#]: 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: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15446-1.html" + +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] 来了解更多。如果你有任何问题,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/whereis-command-linux/ + +作者:[Arindam][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://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 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/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md new file mode 100644 index 0000000000..65d0c7dced --- /dev/null +++ b/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md @@ -0,0 +1,111 @@ +[#]: 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: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15437-1.html" + +w 命令的解释与示例 +====== + +> 下面是一份关于理解 Linux 和 BSD 中的 w 命令的初学者指南,并附有几个例子。 + +![][0] + +这篇文章是 [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` 列给出了用户名,然后是终端号、登录日期时间、空闲时间、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] 来了解更多。如果你有任何问题,请告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/w-command-linux-examples/ + +作者:[Arindam][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://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 +[0]: https://img.linux.net.cn/data/attachment/album/202301/12/100901f1rnn4zu2u12ligr.jpg \ No newline at end of file diff --git a/published/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 new file mode 100644 index 0000000000..b502bf537f --- /dev/null +++ b/published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md @@ -0,0 +1,183 @@ +[#]: 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: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15440-1.html" + +通过编写“猜数字”游戏来学习 Ada 编程语言 +====== + +![][0] + +> 这个 "猜数字 "游戏是学习新编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念。 + +当你想 [学习一种新的编程语言][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) +校对:[wxy](https://github.com/wxy) + +本文由 [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 +[0]: https://img.linux.net.cn/data/attachment/album/202301/13/173929sbddkk6fbd67uu5v.jpg \ No newline at end of file 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/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md new file mode 100644 index 0000000000..73372bd403 --- /dev/null +++ b/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md @@ -0,0 +1,233 @@ +[#]: 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: "wxy" +[#]: url: "https://linux.cn/article-15434-1.html" + +MySQL 字符串指南 +====== + +![][0] + +> 了解 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 +[0]: https://img.linux.net.cn/data/attachment/album/202301/11/161410lh9944zpgjgmgs8t.jpg \ No newline at end of file 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/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md b/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md new file mode 100644 index 0000000000..7010eef3a9 --- /dev/null +++ b/published/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: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15452-1.html" + +Linux 已准备好禁用微软的 RNDIS 驱动程序,但是…… +====== + +> Linux 内核将不再支持 RNDIS 驱动程序。这是一个好的举措吗?这对你意味着什么?在这里了解一下。 + +![Linux 已经准备好禁用微软的 RNDIS 驱动程序][1] + +微软的 RNDIS 协议(即 远程网络驱动接口规范Remote Network Driver Interface Specification 的简称),是一个专有的 USB 协议,用于计算机上的虚拟以太网功能。 + +这方面最常见的使用情况是通过连接到电脑上的 USB,使用手机的移动网络连接互联网,也称为 [系连][2]Tethering。 + +尽管它主要在 Windows 上工作,但它成为 Linux 内核的一部分已经有一段时间了。 + +但这种情况很快就会改变。 + +### 向 RNDIS 协议说再见? + +![][3] + +**发生了什么?** 周一,[Greg Kroah-Hartman][4] 创建了 [usb.git rndis-removal][5] 分支,其中他提到禁用 Linux 上所有 RNDIS 协议驱动程序的实现。 + +在该提交中他提到: + +> 微软的 RNDIS 协议按照设计是不安全的,在任何连接不信任的主机或设备的系统上使用它都是脆弱的。因为该协议不可能变得安全,所以只要禁用所有的 RNDIS 驱动,就可以防止任何人再使用它们。Windows 只在 XP 和更新一些的系统中需要用它,比这更早的 Windows 系统可以使用正常的 USB 类协议来代替,没有这些问题。 + +正如最初由 [Phoronix][6] 报道的那样,一旦这个协议在 Kconfig 选项中被标记为 “损坏”,它将再保留一段时间,最终从内核中删除。 + +但是**为什么呢?** + +众所周知,RNDIS 在 Windows 之外的平台上的实现是一团糟,并带来了相当多的安全风险。此外,RNDIS 并不像以前那样广泛使用了,它带来的安全风险可能是作出这一决定的主要原因之一。 + +**这对目前的用户有影响吗?你应该担心吗?** + +如果我们看一下对这一即将到来的变化的 [Reddit 讨论][7],我们会发现许多用户仍然很担心**这是否会破坏大家的 USB 连接**。 + +考虑到许多安卓手机仍然使用 RNDIS 而不是 CDC NCM(一种较新的协议),用户似乎对这一举措感到困惑 😕;不只是用户,一位 [谷歌的内核网络开发人员][8] 也提出了这个议题,但我们还没有看到对此的回应。 + +**但不是每个人都使用主线 Linux 内核?如果你不想受到这种变化的影响,你是否应该坚持使用 LTS 版本的内核?** + +此外,用户希望更清楚地了解这是否会影响到所有人。 + +但是,从目前来看,Greg 可能并没有给出更多的细节来说服一些相关用户。 + +🤔 当然,我们不是 Linux 内核维护者。所以,最好等这个提交通过时,我希望 Linux 内核维护者能比我们知道更多的信息。 + +💭 你对这个计划中的 Linux 内核的变化有什么看法?请在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-disable-microsoft-rndis/ + +作者:[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/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 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/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/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/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/ - diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md deleted file mode 100644 index f0b7306e90..0000000000 --- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md +++ /dev/null @@ -1,235 +0,0 @@ -[#]: subject: "Codecademy vs. The BBC Micro" -[#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" -[#]: author: "Two-Bit History https://twobithistory.org" -[#]: collector: "lujun9972" -[#]: translator: "CanYellow" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -[Codecademy][T1] 比之 [The BBC Micro][T2] -====== - -TD -Codecademy vs. The BBC Micro -====== - -20世纪70年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业霸主的神秘而笨重的机器。这是多么吸引人,少数狂热的爱好者注意到了并争相购买了属于自己的计算机。对更多的人而言,微形计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺一台家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,在他身后,他的显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它与之类似的广告表明世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 - -DN -In the late 1970s, the computer, which for decades had been a mysterious, hulking machine that only did the bidding of corporate overlords, suddenly became something the average person could buy and take home. An enthusiastic minority saw how great this was and rushed to get a computer of their own. For many more people, the arrival of the microcomputer triggered helpless anxiety about the future. An ad from a magazine at the time promised that a home computer would “give your child an unfair advantage in school.” It showed a boy in a smart blazer and tie eagerly raising his hand to answer a question, while behind him his dim-witted classmates look on sullenly. The ad and others like it implied that the world was changing quickly and, if you did not immediately learn how to use one of these intimidating new devices, you and your family would be left behind. - -在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20世纪70年代对英国来说都是平平无奇的十年。通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇1979年的政府报告焦虑没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[1][1]。英国似乎已经在计算机技术的角逐中落后了——所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 - -DN -In the UK, this anxiety metastasized into concern at the highest levels of government about the competitiveness of the nation. The 1970s had been, on the whole, an underwhelming decade for Great Britain. Both inflation and unemployment had been high. Meanwhile, a series of strikes put London through blackout after blackout. A government report from 1979 fretted that a failure to keep up with trends in computing technology would “add another factor to our poor industrial performance.”[1][1] The country already seemed to be behind in the computing arena—all the great computer companies were American, while integrated circuits were being assembled in Japan and Taiwan. - -BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_计算机认知计划 (Computer Literacy Project)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的第五届个人电脑世界展 (the Fifth Personal Computer World Show) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _计算机认知计划_ 制作的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] - -DN -In an audacious move, the BBC, a public service broadcaster funded by the government, decided that it would solve Britain’s national competitiveness problems by helping Britons everywhere overcome their aversion to computers. It launched the _Computer Literacy Project_, a multi-pronged educational effort that involved several TV series, a few books, a network of support groups, and a specially built microcomputer known as the BBC Micro. The project was so successful that, by 1983, an editor for BYTE Magazine wrote, “compared to the US, proportionally more of Britain’s population is interested in microcomputers.”[2][2] The editor marveled that there were more people at the Fifth Personal Computer World Show in the UK than had been to that year’s West Coast Computer Faire. Over a sixth of Great Britain watched an episode in the first series produced for the _Computer Literacy Project_ and 1.5 million BBC Micros were ultimately sold.[3][3] - -去年,一份包括了由 _计算机认知计划_ 出版的所有材料与制作的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑计算是什么图景。不过我发现更有兴趣的是时年是如何教授电脑计算的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? - -DN -[An archive][4] containing every TV series produced and all the materials published for the _Computer Literacy Project_ was put on the web last year. I’ve had a huge amount of fun watching the TV series and trying to imagine what it would have been like to learn about computing in the early 1980s. But what’s turned out to be more interesting is how computing was _taught_. Today, we still worry about technology leaving people behind. Wealthy tech entrepreneurs and governments spend lots of money trying to teach kids “to code.” We have websites like Codecademy that make use of new technologies to teach coding interactively. One would assume that this approach is more effective than a goofy ’80s TV series. But is it? - -### 计算机认知计划 ([Computer Literacy Project][T3]) - -DN -### The Computer Literacy Project - -微型计算机革命始于1975年 [Altair 8800][5] 的发布。两年后,Apple II,TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978年,BBC 在一部名为《芯片来了》(["Now the Chips Are Down"][T5])(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 - -DN -The microcomputer revolution began in 1975 with the release of [the Altair 8800][5]. Only two years later, the Apple II, TRS-80, and Commodore PET had all been released. Sales of the new computers exploded. In 1978, the BBC explored the dramatic societal changes these new machines were sure to bring in a documentary called “Now the Chips Are Down.” - -该纪录片充满担忧。在前5分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放以及屏幕上绿色的电脉冲在放大后的芯片上起舞,解说员进一步说这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。纪录片继续探讨了机器人如何用于汽车自动化组装以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它斥责了英国政府在应对未来的大规模失业的准备上做得不够。 - -DN -The documentary was alarming. Within the first five minutes, the narrator explains that microelectronics will “totally revolutionize our way of life.” As eerie synthesizer music plays, and green pulses of electricity dance around a magnified microprocessor on screen, the narrator argues that the new chips are why “Japan is abandoning its ship building, and why our children will grow up without jobs to go to.” The documentary goes on to explore how robots are being used to automate car assembly and how the European watch industry has lost out to digital watch manufacturers in the United States. It castigates the British government for not doing more to prepare the country for a future of mass unemployment. - -该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份历数微电子技术在工业制造、人力关系与办公室工作等领域最终将意味着哪些方面的重大改变的研究报告。70年代末,BBC 决定制作一部帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”的十集电视系列片[5][7] 。这一努力最终成为了一个与_成人扫盲计划(Adult Literacy Project)_相似的多媒体项目。_成人扫盲计划(Adult Literacy Project)_是 BBC 此前进行的一项涉及电视系列片以及辅助课程的帮助两百万人提高他们的阅读能力的项目。 - -DN -The documentary was supposedly shown to the British Cabinet.[4][6] Several government agencies, including the Department of Industry and the Manpower Services Commission, became interested in trying to raise awareness about computers among the British public. The Manpower Services Commission provided funds for a team from the BBC’s education division to travel to Japan, the United States, and other countries on a fact-finding trip. This research team produced a report that cataloged the ways in which microelectronics would indeed mean major changes for industrial manufacturing, labor relations, and office work. In late 1979, it was decided that the BBC should make a ten-part TV series that would help regular Britons “learn how to use and control computers and not feel dominated by them.”[5][7] The project eventually became a multimedia endeavor similar to the _Adult Literacy Project_, an earlier BBC undertaking involving both a TV series and supplemental courses that helped two million people improve their reading. - -_计算机认知计划_ 背后的制作方热衷于以“实操”示例为特色的电视系列片。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子不得不都是基于 BASIC 语言的,因为这是在几乎所有的微型计算机上都使用的编程语言 (实际是整个交互界面(shell))。但是制作方面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言——BBC BASIC——以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机并依照示例操作而不需要担心软硬件上的差异带来的问题。 - -DN -The producers behind the _Computer Literacy Project_ were keen for the TV series to feature “hands-on” examples that viewers could try on their own if they had a microcomputer at home. These examples would have to be in BASIC, since that was the language (really the entire shell) used on almost all microcomputers. But the producers faced a thorny problem: Microcomputer manufacturers all had their own dialects of BASIC, so no matter which dialect they picked, they would inevitably alienate some large fraction of their audience. The only real solution was to create a new BASIC—BBC BASIC—and a microcomputer to go along with it. Members of the British public would be able to buy the new microcomputer and follow along without worrying about differences in software or hardware. - -BBC 的制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。_计算机认知计划_的技术顾问也是如此建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的(他们可能没有完全那样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量将弥补一些 BASIC 语言的常见缺点。[6][8] - -DN -The TV producers and presenters at the BBC were not capable of building a microcomputer on their own. So they put together a specification for the computer they had in mind and invited British microcomputer companies to propose a new machine that met the requirements. The specification called for a relatively powerful computer because the BBC producers felt that the machine should be able to run real, useful applications. Technical consultants for the _Computer Literacy Project_ also suggested that, if it had to be a BASIC dialect that was going to be taught to the entire nation, then it had better be a good one. (They may not have phrased it exactly that way, but I bet that’s what they were thinking.) BBC BASIC would make up for some of BASIC’s usual shortcomings by allowing for recursion and local variables.[6][8] - -BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名:艾康电脑)制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 Sinclair Research 公司的 [Clive Sinclair][T7] 的申请,Sinclair Research 公司凭借 Sinclair ZX80 微型计算机的推出在1980年将微型计算机的大众市场引入了英国。Sinclair 公司的新产品,ZX81,虽然更便宜但是性能不足以满足 BBC 的要求。Acorn 的新型的内部称为 Proton 原型计算机更加昂贵但是性能更好,更具备扩展性,BBC 对此印象深刻。该型号的计算机从未作为 Proton 进行营销与销售,Acorn 公司代之以 BBC Micro 的名称在1981年12月发布。BBC Micro 又被亲切地称为“The Beeb”,你可以以235英磅的价格购得其16k内存的版本或者以335英磅的价格获得其32k内存的版本。 - -DN -The BBC eventually decided that a Cambridge-based company called Acorn Computers would make the BBC Micro. In choosing Acorn, the BBC passed over a proposal from Clive Sinclair, who ran a company called Sinclair Research. Sinclair Research had brought mass-market microcomputing to the UK in 1980 with the Sinclair ZX80. Sinclair’s new computer, the ZX81, was cheap but not powerful enough for the BBC’s purposes. Acorn’s new prototype computer, known internally as the Proton, would be more expensive but more powerful and expandable. The BBC was impressed. The Proton was never marketed or sold as the Proton because it was instead released in December 1981 as the BBC Micro, also affectionately called “The Beeb.” You could get a 16k version for £235 and a 32k version for £335. - -1980年,Acorn 是英国计算机工业的失败者,但是 BBC Micro 成就了 Acorn 公司的传统。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM”如今表示“先进 RISC 架构设备(Advanced RISC Machine)”,然而最初它代表的是“Acorn RISC 架构设备(Acorn RISC Machine)”。ARM 架构背后的 ARM 公司(ARM Holding)就是 Acorn 公司在1990年之后的延续。 - -DN -In 1980, Acorn was an underdog in the British computing industry. But the BBC Micro helped establish the company’s legacy. Today, the world’s most popular microprocessor instruction set is the ARM architecture. “ARM” now stands for “Advanced RISC Machine,” but originally it stood for “Acorn RISC Machine.” ARM Holdings, the company behind the architecture, was spun out from Acorn in 1990. - -![Picture of the BBC Micro.][9] _BBC Micro 的一幅拙劣图片,我摄于美国加州山景城(Mountain View)的计算机历史博物馆(Computer History Museum)_ - -DN -![Picture of the BBC Micro.][9] _A bad picture of a BBC Micro, taken by me at the Computer History Museum -in Mountain View, California._ - -### 名为“计算机程序(The Computer Programme)”的电视系列片 - -DN -### The Computer Programme - -十几个不同的电视系列片最终作为_计算机认知计划_的一部分创作出来。第一部作品是一部名为_计算机程序(The Computer Programme)_的十集电视系列片。该系列片在1982年初播出了十周。一百万人每周晚上收看该节目,另有25万人收看该节目在每周日与周一下午的重播。 - -DN -A dozen different TV series were eventually produced as part of the _Computer Literacy Project_, but the first of them was a ten-part series known as _The Computer Programme_. The series was broadcast over ten weeks at the beginning of 1982. A million people watched each week-night broadcast of the show; a quarter million watched the reruns on Sunday and Monday afternoon. - -这一电视节目有两名主持人,Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演具有大型计算机编程职业经验的专家,这是一个启发性的配置。该节目造就了[略显尴尬的过渡][10]——Serle 经常直接从与 McNaught-Davis 的对话中过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,它将更难以理解。 - -DN -The show was hosted by two presenters, Chris Serle and Ian McNaught-Davis. Serle plays the neophyte while McNaught-Davis, who had professional experience programming mainframe computers, plays the expert. This was an inspired setup. It made for [awkward transitions][10]—Serle often goes directly from a conversation with McNaught-Davis to a bit of walk-and-talk narration delivered to the camera, and you can’t help but wonder whether McNaught-Davis is still standing there out of frame or what. But it meant that Serle could voice the concerns that the audience would surely have. He can look intimidated by a screenful of BASIC and can ask questions like, “What do all these dollar signs mean?” At several points during the show, Serle and McNaught-Davis sit down in front of a computer and essentially pair program, with McNaught-Davis providing hints here and there while Serle tries to figure it out. It would have been much less relatable if the show had been presented by a single, all-knowing narrator. - -该节目也在努力展示计算在普通人生活中的实际应用。到80年代早期,家庭电脑已经开始与小孩子和电子游戏联系在一起。_计算机认知计划_ 的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣[7][11]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一名购买了一台 Commodore PET 电脑用于辅助管理她的糖果店的女性。这名名叫 Phyllis 的女性受访者看上去大约60多岁,她在使用 PET 完成她的会计工作上不存在任何问题,甚至开始使用 PET 为其他企业做计算工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢电脑工作。画面接着变成了对一名青少年的采访,他介绍了他是如何修改 _[Breakout][T8]_ 这款电子游戏以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果人群中的 Phyllis 也会使用电脑,那么你当然也可以。 - -DN -The show also made an effort to demonstrate the many practical applications of computing in the lives of regular people. By the early 1980s, the home computer had already begun to be associated with young boys and video games. The producers behind _The Computer Programme_ sought to avoid interviewing “impressively competent youngsters,” as that was likely “to increase the anxieties of older viewers,” a demographic that the show was trying to attract to computing.[7][11] In the first episode of the series, Gill Nevill, the show’s “on location” reporter, interviews a woman that has bought a Commodore PET to help manage her sweet shop. The woman (her name is Phyllis) looks to be 60-something years old, yet she has no trouble using the computer to do her accounting and has even started using her PET to do computer work for other businesses, which sounds like the beginning of a promising freelance career. Phyllis says that she wouldn’t mind if the computer work grew to replace her sweet shop business since she enjoys the computer work more. This interview could instead have been an interview with a teenager about how he had modified _Breakout_ to be faster and more challenging. But that would have been encouraging to almost nobody. On the other hand, if Phyllis, of all people, can use a computer, then surely you can too. - -虽然该节目的特色是大量的 BASIC 编程,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中有一个关于[Jacquard][T9]织机(译注:中文网络译为雅卡尔提布机)的讨论。Jacquard 织机实现了两件事。其一,它揭示了计算机并不仅仅基于过去发明的神秘技术——计算的一些基本原则可以上溯到两百年前,就跟你可以在纸上打孔来控制纺织机的想法一样简单。其二,经线与纬线的交织用于解释选择二进制(即纬线是从上方还是下方穿过经线)是如何在重复了一次又一次之后足以产生巨大变化的。当然,节目接下来继续讨论信息是如何使用二进制存储的。 - -DN -While the show features lots of BASIC programming, what it really wants to teach its audience is how computing works in general. The show explains these general principles with analogies. In the second episode, there is an extended discussion of the Jacquard loom, which accomplishes two things. First, it illustrates that computers are not based only on magical technology invented yesterday—some of the foundational principles of computing go back two hundred years and are about as simple as the idea that you can punch holes in card to control a weaving machine. Second, the interlacing of warp and weft threads is used to demonstrate how a binary choice (does the weft thread go above or below the warp thread?) is enough, when repeated over and over, to produce enormous variation. This segues, of course, into a discussion of how information can be stored using binary digits. - -在该节目中接下来是有关一件能够播放在一卷长长的分段的打孔卡片上编码的音乐的蒸汽风琴。这个类比用以解释 BASIC 中的子程序。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在工作室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下而插入一个回到第一次播放副歌的分段的指令,这就是子程序。这是一个绝妙的解释并将可能在听众的脑海中久久挥之不去。 - -DN -Later in the show there is a section about a steam organ that plays music encoded in a long, segmented roll of punched card. This time the analogy is used to explain subroutines in BASIC. Serle and McNaught-Davis lay out the whole roll of punched card on the floor in the studio, then point out the segments where it looks like a refrain is being repeated. McNaught-Davis explains that a subroutine is what you would get if you cut out those repeated segments of card and somehow added an instruction to go back to the original segment that played the refrain for the first time. This is a brilliant explanation and probably one that stuck around in people’s minds for a long time afterward. - -我仅仅摘录了一些例子,不过我认为总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原则使计算机不再神秘。这一节目本可以致力于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在1983年写就的一篇回忆文章中,_计算机认知计划_的总制作人 John Radcliffe 如是写道: - -DN -I’ve picked out only a few examples, but I think in general the show excels at demystifying computers by explaining the principles that computers rely on to function. The show could instead have focused on teaching BASIC, but it did not. This, it turns out, was very much a conscious choice. In a retrospective written in 1983, John Radcliffe, the executive producer of the _Computer Literacy Project_, wrote the following: - -> 如果计算机将如我们所相信的那样重要,对这一主题的真正理解对每个人都很重要,可能会几乎与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来…… 我们相信一旦人们掌握了这些原则,简单地说,它们将可以进一步深入该主题。 - -DN -> If computers were going to be as important as we believed, some genuine understanding of this new subject would be important for everyone, almost as important perhaps as the capacity to read and write. Early ideas, both here and in America, had concentrated on programming as the main route to computer literacy. However, as our thinking progressed, although we recognized the value of “hands-on” experience on personal micros, we began to place less emphasis on programming and more on wider understanding, on relating micros to larger machines, encouraging people to gain experience with a range of applications programs and high-level languages, and relating these to experience in the real world of industry and commerce…. Our belief was that once people had grasped these principles, at their simplest, they would be able to move further forward into the subject. - -接下来, Radcliffe writes 又以类似的方式写道: - -DN -Later, Radcliffe writes, in a similar vein: - -> 围绕着这一电视系列片的主要阐释目标有很多的争论。一个思想流派认为在使用微型计算机上的实用细节上给予建议对本项目而言尤为重要。但我们已经有了结论,如果这一电视系列片能够拥有可持续性的教育价值,它必须成为一条通过解释计算原则来进入真实的计算世界的路径。这必须通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 - -DN -> There had been much debate about the main explanatory thrust of the series. One school of thought had argued that it was particularly important for the programmes to give advice on the practical details of learning to use a micro. But we had concluded that if the series was to have any sustained educational value, it had to be a way into the real world of computing, through an explanation of computing principles. This would need to be achieved by a combination of studio demonstration on micros, explanation of principles by analogy, and illustration on film of real-life examples of practical applications. Not only micros, but mini computers and mainframes would be shown. - -我喜爱这一系列片,尤其是其中关于小型机与大型机的部分。_计算机认知计划_ 背后的制作方旨在帮助英国找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 - -DN -I love this, particularly the part about mini-computers and mainframes. The producers behind _The Computer Programme_ aimed to help Britons get situated: Where had computing been, and where was it going? What can computers do now, and what might they do in the future? Learning some BASIC was part of answering those questions, but knowing BASIC alone was not seen as enough to make someone computer literate. - -### 今天的计算机认知 - -DN -### Computer Literacy Today - -如果你现在搜索“学习编程”,你看到的排在第一的是指向 Codecademy 网站的链接。 -If you google “learn to code,” the first result you see is a link to Codecademy’s website. If there is a modern equivalent to the _Computer Literacy Project_, something with the same reach and similar aims, then it is Codecademy. - -“Learn to code” is Codecademy’s tagline. I don’t think I’m the first person to point this out—in fact, I probably read this somewhere and I’m now ripping it off—but there’s something revealing about using the word “code” instead of “program.” It suggests that the important thing you are learning is how to decode the code, how to look at a screen’s worth of Python and not have your eyes glaze over. I can understand why to the average person this seems like the main hurdle to becoming a professional programmer. Professional programmers spend all day looking at computer monitors covered in gobbledygook, so, if I want to become a professional programmer, I better make sure I can decipher the gobbledygook. But dealing with syntax is not the most challenging part of being a programmer, and it quickly becomes almost irrelevant in the face of much bigger obstacles. Also, armed only with knowledge of a programming language’s syntax, you may be able to _read_ code but you won’t be able to _write_ code to solve a novel problem. - -I recently went through Codecademy’s “Code Foundations” course, which is the course that the site recommends you take if you are interested in programming (as opposed to web development or data science) and have never done any programming before. There are a few lessons in there about the history of computer science, but they are perfunctory and poorly researched. (Thank heavens for [this noble internet vigilante][12], who pointed out a particularly egregious error.) The main focus of the course is teaching you about the common structural elements of programming languages: variables, functions, control flow, loops. In other words, the course focuses on what you would need to know to start seeing patterns in the gobbledygook. - -To be fair to Codecademy, they offer other courses that look meatier. But even courses such as their “Computer Science Path” course focus almost exclusively on programming and concepts that can be represented in programs. One might argue that this is the whole point—Codecademy’s main feature is that it gives you little interactive programming lessons with automated feedback. There also just isn’t enough room to cover more because there is only so much you can stuff into somebody’s brain in a little automated lesson. But the producers at the BBC tasked with kicking off the _Computer Literacy Project_ also had this problem; they recognized that they were limited by their medium and that “the amount of learning that would take place as a result of the television programmes themselves would be limited.”[8][13] With similar constraints on the volume of information they could convey, they chose to emphasize general principles over learning BASIC. Couldn’t Codecademy replace a lesson or two with an interactive visualization of a Jacquard loom weaving together warp and weft threads? - -I’m banging the drum for “general principles” loudly now, so let me just explain what I think they are and why they are important. There’s a book by J. Clark Scott about computers called _But How Do It Know?_ The title comes from the anecdote that opens the book. A salesman is explaining to a group of people that a thermos can keep hot food hot and cold food cold. A member of the audience, astounded by this new invention, asks, “But how do it know?” The joke of course is that the thermos is not perceiving the temperature of the food and then making a decision—the thermos is just constructed so that cold food inevitably stays cold and hot food inevitably stays hot. People anthropomorphize computers in the same way, believing that computers are digital brains that somehow “choose” to do one thing or another based on the code they are fed. But learning a few things about how computers work, even at a rudimentary level, takes the homunculus out of the machine. That’s why the Jacquard loom is such a good go-to illustration. It may at first seem like an incredible device. It reads punch cards and somehow “knows” to weave the right pattern! The reality is mundane: Each row of holes corresponds to a thread, and where there is a hole in that row the corresponding thread gets lifted. Understanding this may not help you do anything new with computers, but it will give you the confidence that you are not dealing with something magical. We should impart this sense of confidence to beginners as soon as we can. - -Alas, it’s possible that the real problem is that nobody wants to learn about the Jacquard loom. Judging by how Codecademy emphasizes the professional applications of what it teaches, many people probably start using Codecademy because they believe it will help them “level up” their careers. They believe, not unreasonably, that the primary challenge will be understanding the gobbledygook, so they want to “learn to code.” And they want to do it as quickly as possible, in the hour or two they have each night between dinner and collapsing into bed. Codecademy, which after all is a business, gives these people what they are looking for—not some roundabout explanation involving a machine invented in the 18th century. - -The _Computer Literacy Project_, on the other hand, is what a bunch of producers and civil servants at the BBC thought would be the best way to educate the nation about computing. I admit that it is a bit elitist to suggest we should laud this group of people for teaching the masses what they were incapable of seeking out on their own. But I can’t help but think they got it right. Lots of people first learned about computing using a BBC Micro, and many of these people went on to become successful software developers or game designers. [As I’ve written before][14], I suspect learning about computing at a time when computers were relatively simple was a huge advantage. But perhaps another advantage these people had is shows like _The Computer Programme_, which strove to teach not just programming but also how and why computers can run programs at all. After watching _The Computer Programme_, you may not understand all the gobbledygook on a computer screen, but you don’t really need to because you know that, whatever the “code” looks like, the computer is always doing the same basic thing. After a course or two on Codecademy, you understand some flavors of gobbledygook, but to you a computer is just a magical machine that somehow turns gobbledygook into running software. That isn’t computer literacy. - -_If you enjoyed this post, more like it come out every four weeks! Follow [@TwoBitHistory][15] on Twitter or subscribe to the [RSS feed][16] to make sure you know when a new post is out._ - -_Previously on TwoBitHistory…_ - -> FINALLY some new damn content, amirite? -> -> Wanted to write an article about how Simula bought us object-oriented programming. It did that, but early Simula also flirted with a different vision for how OOP would work. Wrote about that instead! -> -> — TwoBitHistory (@TwoBitHistory) [February 1, 2019][17] - - 1. Robert Albury and David Allen, Microelectronics, report (1979). [↩︎][18] - - 2. Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, . [↩︎][19] - - 3. John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20]. [↩︎][21] - - 4. David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, . [↩︎][22] - - 5. ibid. [↩︎][23] - - 6. Williams, 51. [↩︎][24] - - 7. Radcliffe, 11. [↩︎][25] - - 8. Radcliffe, 5. [↩︎][26] - - - - --------------------------------------------------------------------------------- - -via: https://twobithistory.org/2019/03/31/bbc-micro.html - -作者:[Two-Bit History][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://twobithistory.org -[b]: https://github.com/lujun9972 -[1]: tmp.zNBs2lK4Ca#fn:1 -[2]: tmp.zNBs2lK4Ca#fn:2 -[3]: tmp.zNBs2lK4Ca#fn:3 -[4]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/ -[5]: https://twobithistory.org/2018/07/22/dawn-of-the-microcomputer.html -[6]: tmp.zNBs2lK4Ca#fn:4 -[7]: tmp.zNBs2lK4Ca#fn:5 -[8]: tmp.zNBs2lK4Ca#fn:6 -[9]: https://twobithistory.org/images/beeb.jpg -[10]: https://twitter.com/TwoBitHistory/status/1112372000742404098 -[11]: tmp.zNBs2lK4Ca#fn:7 -[12]: https://twitter.com/TwoBitHistory/status/1111305774939234304 -[13]: tmp.zNBs2lK4Ca#fn:8 -[14]: https://twobithistory.org/2018/09/02/learning-basic.html -[15]: https://twitter.com/TwoBitHistory -[16]: https://twobithistory.org/feed.xml -[17]: https://twitter.com/TwoBitHistory/status/1091148050221944832?ref_src=twsrc%5Etfw -[18]: tmp.zNBs2lK4Ca#fnref:1 -[19]: tmp.zNBs2lK4Ca#fnref:2 -[20]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards%20Computer%20Literacy.pdf -[21]: tmp.zNBs2lK4Ca#fnref:3 -[22]: tmp.zNBs2lK4Ca#fnref:4 -[23]: tmp.zNBs2lK4Ca#fnref:5 -[24]: tmp.zNBs2lK4Ca#fnref:6 -[25]: tmp.zNBs2lK4Ca#fnref:7 -[26]: tmp.zNBs2lK4Ca#fnref:8 - -[T1]: https://www.codecademy.com/ -[T2]: https://bbcmicro.computer/ -[T3]: https://clp.bbcrewind.co.uk/history -[T4]: https://archive.org/details/byte-magazine?tab=about -[T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down -[T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown -[T7]: https://en.wikipedia.org/wiki/Sinclair_Research -[T8]: https://en.wikipedia.org/wiki/Breakout_(video_game) -[T9]: https://www.scienceandindustrymuseum.org.uk/objects-and-stories/jacquard-loom 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: ( ) 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: " " diff --git a/sources/tech/20211012 Create a timer on Linux.md b/sources/tech/20211012 Create a timer on Linux.md deleted file mode 100644 index ff4f334435..0000000000 --- a/sources/tech/20211012 Create a timer on Linux.md +++ /dev/null @@ -1,277 +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: " " - -Create a timer on Linux -====== -A tutorial showing how to create a POSIX-compliant interval timer. -![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]. - -You can download the source code for the following examples from [GitHub][3]. - -### Prepare 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 open project][5] - -Open a project in 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): - -![Project configuration][6] - -Project configuration (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. - - -``` -#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 specifies behaviour on expiration  */ -    struct sigevent sev = { 0 }; - -    /* specify start delay and interval -     * it_value and it_interval must not be zero */ - -    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; - -    /* create timer */ -    res = timer_create(CLOCK_REALTIME, &sev, &timerId); - -    if (res != 0){ -        [fprintf][8](stderr, "Error timer_create: %s\n", [strerror][9](errno)); -        [exit][10](-1); -    } - -    /* start timer */ -    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()); -} -``` - -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. - -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. - -The default behavior of Qt Creator when the debuggee receives a signal is: - - * 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_: - - -``` -`handle SIG34 nostop pass` -``` - -![Signal no stop with error][14] - -Sig 34 no stop with error (CC-BY-SA 4.0) - -You can find more information about GDB signal handling in the [GDB documentation][15]. - -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) - -To do so, navigate to the tab **GDB** and uncheck the marked checkbox: - -![Timer signal windows][17] - -Timer signal windows (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: - - -``` -#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 }; - -    /* 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, -                                .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; - -    /* create timer */ -    res = timer_create(CLOCK_REALTIME, &sev, &timerId); - -    if ( res != 0){ -        [fprintf][8](stderr, "Error timer_create: %s\n", [strerror][9](errno)); -        [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){ -        [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()); -} -``` - -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. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/10/linux-timers - -作者:[Stephan Avenwedde][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/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 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 diff --git a/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md b/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md deleted file mode 100644 index e8fcabb8c0..0000000000 --- a/sources/tech/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md +++ /dev/null @@ -1,139 +0,0 @@ -[#]: subject: "5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie" -[#]: via: "https://itsfoss.com/neovim-gui-editors/" -[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie -====== - -Vim is awesome. NeoVim is newer and even more awesome. Both Vim and NeoVim are terminal-based text editors with similar features. - -If you are someone who is accustomed to using [GUI text editors like VS Code][1] and wish to have the similar functionality that NeoVim provides, you should explore GUI options. - -Although I know you can use NeoVim as an add-on for your current text editor, working directly with NeoVim is much more effective and convenient for managing plugins. - -There are a few different options available when choosing a NeoVim GUI, and I have put together a list of some of the best ones below. - -### 1. Neovide - -![neovide][2] - -**Key Features:** - -- Animated cursor -- Smooth scrolling -- Animated windows -- Blurred floating windows -- Emoji support - -[Neovide][3] aims to be a no-nonsense graphical user interface for NeoVim. - -While you won’t see many graphical elements, it only adds some GUI features, such as animations, using a library called Skulpin to render animations. - -And my favorite part of using Neovide is having an animated cursor and smooth scrolling. I mean, have a look at this: - -Looks cool. Right? - -### 2. Neovim Qt - -![neovim qt][4] - -**Key Features:** - -- Hover features -- Multiple GUI tabs -- Auto tab completion -- Cross-platform support - -As the name suggests, [Neovim Qt][5] is built with the Qt5 library, which you’ll often see being used by KDE. Nothing too fancy, adds some additional GUI features like multiple tabs, auto-tab completion, and more. - -So if you are already using Qt5 libraries and want a minimal GUI for NeoVim, this would work like a charm and save you some dependencies. - -**Recommended:**[Vim vs Nano: What Should You Choose?][6] - -### 3. Uivonim - -![uivonim][7] - -**Key Features:** - -- WebGL GPU rendering and multithreading -- Support for VSCode extensions -- Nyancat (ANSI-text program for classic cat animation) -- Hover and code actions - -[Uivonim][8] is a fork of Veonim (A simple IDE built on VSCode plugins and NeoVim) written in electron, making it the perfect choice if you switch from VSCode. - -And the only goal of uivonim is to provide a rich NeoVim experience that supports the latest features of NeoVim, including floating windows, built-in LSP, and more. You do not need to rely on VSCode extensions to get these features. - -[Uivonim][8] - -### 4. FVim - -![fvim][9] - -**Key Features:** - -- Detach windows (using `Ctrl+w and GE`). -- Custom popup menu entry icons. -- HiDPI support. -- GPU acceleration. - -[FVim][10] is a cross-platform GUI for NeoVim built with F# + Avalonia that comes with some groundbreaking features such as high-performance rendering (60FPS on 4K display). - -And I often use the detach window feature as I prefer to have separate windows for different text files. Also, if you are an advanced remote user, FVim won’t let you down either. - -### 5. Goneovim - -![goneovim][11] - -**Key Features:** - -- Support for a terminal with bash and zsh -- Minimap -- Animated cursor -- High DPI scaling -- External float window - -As its name suggests, [Goneovim][12] is written in GO and is a fork of Gonvim. And offers enough GUI features to get your job done such as an animated cursor, pixel scrolling, and more. - -And it does not compromise on getting you basic text editing features, such as drag-and-drop support for text files. - -**Useful Read**: [How to Install Latest Vim on Ubuntu Linux][13] - -### Wrapping Up - -This was my take on what are some good options when it comes to GUI for NeoVim and I hope you found what you were looking for. - -If I missed any of your favorites, let me know your thoughts in the comments. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/neovim-gui-editors/ - -作者:[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/best-modern-open-source-code-editors-for-linux/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/neovide.png -[3]: https://neovide.dev/index.html -[4]: https://itsfoss.com/wp-content/uploads/2022/11/neovim-qt.png -[5]: https://github.com/equalsraf/neovim-qt -[6]: https://itsfoss.com/vim-vs-nano/ -[7]: https://itsfoss.com/wp-content/uploads/2022/11/uivonim.png -[8]: https://github.com/smolck/uivonim -[9]: https://itsfoss.com/wp-content/uploads/2022/11/fvim-1.png -[10]: https://github.com/yatli/fvim -[11]: https://itsfoss.com/wp-content/uploads/2022/11/goneovim-1.png -[12]: https://github.com/akiyosi/goneovim -[13]: https://itsfoss.com/install-latest-vim-ubuntu/ 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 ab3e8307ac..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: " " -[#]: 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/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/ 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/) 荣誉推出 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 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/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/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 deleted file mode 100644 index cd48adc303..0000000000 --- a/sources/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: 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 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 8c1d6978d0..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: " " -[#]: 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/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 deleted file mode 100644 index 394c1d810e..0000000000 --- a/sources/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md +++ /dev/null @@ -1,101 +0,0 @@ -[#]: 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 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 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/ 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 + 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 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..cc06a6ceef --- /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: "geekpi" +[#]: 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 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..40e7c4380a --- /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: "geekpi" +[#]: 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 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 + + diff --git a/translated/talk/20190331 Codecademy vs. The BBC Micro.md b/translated/talk/20190331 Codecademy vs. The BBC Micro.md new file mode 100644 index 0000000000..bd4d9e8813 --- /dev/null +++ b/translated/talk/20190331 Codecademy vs. The BBC Micro.md @@ -0,0 +1,146 @@ +[#]: subject: "Codecademy vs. The BBC Micro" +[#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html" +[#]: author: "Two-Bit History https://twobithistory.org" +[#]: collector: "lujun9972" +[#]: translator: "CanYellow" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +[BBC Micro][T2] 比之 [Codecademy][T1] +====== + +20世纪70年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业霸主的神秘而笨重的机器。少数狂热的爱好者注意到了这是多么吸引人并争相购买了属于自己的计算机。对更多的人而言,微形计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺一台家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,在他身后,他的显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它与之类似的广告表明世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 + +在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20世纪70年代对英国来说都是平平无奇的十年,通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇1979年的政府报告焦虑:没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[1][1]。英国似乎已经在计算机技术的角逐中落后了——所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 + +BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_Computer Literacy Project(计算机认知计划)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的 Fifth Personal Computer World Show(第五届个人电脑世界展) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _Computer Literacy Project_ 制作的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] + +去年,一份包括了由 _Computer Literacy Project_ 出版的所有材料与制作的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑使用是什么图景。不过我发现更有兴趣的是时年是如何教授电脑使用的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? + +### [Computer Literacy Project][T3] (计算机认知计划) + +微型计算机革命始于1975年 [Altair 8800][5] 的发布。两年后,Apple II,TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978年,BBC 在一部名为["Now the Chips Are Down"][T5](《芯片来了》)(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 + +该纪录片充满担忧。在前5分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放以及屏幕上绿色的电脉冲在放大后的芯片上起舞,解说员进一步说这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。纪录片继续探讨了机器人如何用于汽车自动化组装以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它斥责了英国政府在应对未来的大规模失业的准备上做得不够。 + +该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份历数微电子技术在工业制造、人力关系与办公室工作等领域最终将意味着哪些方面的重大改变的研究报告。70年代末,BBC 决定制作一部帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”的十集电视系列片[5][7] 。这一努力最终成为了一个与_Adult Literacy Project_(成人扫盲计划)相似的多媒体项目。_Adult Literacy Project_是 BBC 此前进行的一项涉及电视系列片以及辅助课程的帮助两百万人提高他们的阅读能力的项目。 + +_Computer Literacy Project_ 背后的制作方热衷于以“实操”示例为特色的电视系列片。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子不得不都是基于 BASIC 语言的,因为这是在几乎所有的微型计算机上都使用的编程语言 (实际是整个交互界面(shell))。但是制作方面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言——BBC BASIC——以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机并依照示例操作而不需要担心软硬件上的差异带来的问题。 + +BBC 的制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。_Computer Literacy Project_的技术顾问也是如此建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的(他们可能没有完全那样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[6][8] + +BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名:艾康电脑)制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 Sinclair Research 公司的 [Clive Sinclair][T7] 的申请,Sinclair Research 公司凭借 Sinclair ZX80 微型计算机的推出在1980年将微型计算机的大众市场引入了英国。Sinclair 公司的新产品,ZX81,虽然更便宜但是性能不足以满足 BBC 的要求。Acorn 的新型的内部称为 Proton 原型计算机更加昂贵但是性能更好,更具备扩展性,BBC 对此印象深刻。该型号的计算机从未作为 Proton 进行营销与销售,Acorn 公司代之以 BBC Micro 的名称在1981年12月发布。BBC Micro 又被亲切地称为“The Beeb”,你可以以235英磅的价格购得其16k内存的版本或者以335英磅的价格获得其32k内存的版本。 + +1980年,Acorn 是英国计算机工业的失败者,但是 BBC Micro 成就了 Acorn 公司的传统。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM”如今表示“Advanced RISC Machine”(先进 RISC 架构设备),然而最初它代表的是“Acorn RISC Machine”(Acorn RISC 架构设备)。ARM 架构背后的 ARM Holding(ARM 公司) 就是 Acorn 公司在1990年之后的延续。 + +![Picture of the BBC Micro.][9] _BBC Micro 的一幅拙劣图片,我摄于美国加州山景城(Mountain View)的计算机历史博物馆(Computer History Museum)_ + + +### 名为“The Computer Programme”(计算机程序)的电视系列片 + +十几个不同的电视系列片最终作为_Computer Literacy Project_的一部分创作出来。第一部作品是一部名为 _The Computer Programme_(计算机程序) 的十集电视系列片。该系列片在1982年初播出了十周。一百万人每周晚上收看该节目,另有25万人收看该节目在每周日与周一下午的重播。 + +这一电视节目有两名主持人,Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演具有大型计算机编程职业经验的专家,这是一个启发性的配置。该节目造就了[略显尴尬的过渡][10]——Serle 经常直接从与 McNaught-Davis 的对话中过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,它将更难以理解。 + +该节目也在努力展示计算在普通人生活中的实际应用。到80年代早期,家庭电脑已经开始与小孩子和电子游戏联系在一起。_Computer Literacy Project_ 的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣[7][11]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一名购买了一台 Commodore PET 电脑用于辅助管理她的糖果店的女性。这名名叫 Phyllis 的女性受访者看上去大约60多岁,她在使用 PET 完成她的会计工作上不存在任何问题,甚至开始使用 PET 为其他企业做计算工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢电脑工作。画面接着变成了对一名青少年的采访,他介绍了他是如何修改 _[Breakout][T8]_ 这款电子游戏以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果人群中的 Phyllis 也会使用电脑,那么你当然也可以。 + +虽然该节目的特色是大量的 BASIC 编程,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中有一个关于[Jacquard][T9]织机(译注:中文网络译为雅卡尔提布机)的讨论。Jacquard 织机实现了两件事。其一,它揭示了计算机并不仅仅基于过去发明的神秘技术——计算的一些基本原则可以上溯到两百年前,就跟你可以在纸上打孔来控制纺织机的想法一样简单。其二,经线与纬线的交织用于解释选择二进制(即纬线是从上方还是下方穿过经线)是如何在重复了一次又一次之后足以产生巨大变化的。当然,节目接下来继续讨论信息是如何使用二进制存储的。 + +在该节目中接下来是有关一件能够播放在一卷长长的分段的打孔卡片上编码的音乐的蒸汽风琴的小节。这个类比用以解释 BASIC 中的子程序。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在工作室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下而插入一个回到第一次播放副歌的分段的指令,这就是子程序。这是一个绝妙的解释并将可能在听众的脑海中久久挥之不去。 + +我仅仅摘录了一些例子,不过我认为总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原则使计算机不再神秘。这一节目本可以致力于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在1983年写就的一篇回忆文章中,_Computer Literacy Project_的总制作人 John Radcliffe 如是写道: + +> 如果计算机将如我们所相信的那样重要,对这一主题的真正理解对每个人都很重要,可能会几乎与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来…… 我们相信一旦人们掌握了这些原则,简单地说,它们将可以进一步深入该主题。 + +接下来, Radcliffe writes 又以类似的方式写道: + +> 围绕着这一电视系列片的主要阐释目标有很多的争论。一个思想流派认为在使用微型计算机上的实用细节上给予建议对本项目而言尤为重要。但我们已经有了结论,如果这一电视系列片能够拥有可持续性的教育价值,它必须成为一条通过解释计算原则来进入真实的计算世界的路径。这必须通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 + +我喜爱这一系列片,尤其是其中关于小型机与大型机的部分。_Computer Literacy Project_ 背后的制作方旨在帮助英国找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 + +### 今天的计算机认知 + +如果你现在搜索“学习编程”,你看到的排在第一的是指向 Codecademy 网站的链接。如果要说存在一个“计算机认知计划”的现代替代品——存在相同的影响与目标,那就是 Codecademy。 + +对于普通人而言“Learn to code”(学习编程)是 Codecademy 的口号。我认为我不是第一个指出这一点的人——事实上我曾经在某个地方见到过这一点,只是现在拿来用而已。但是这里使用的是“code”(代码)而非“编程”,这说明了一些问题。这表明你学习的重要内容是如何读懂代码,如何阅读满屏的 Python 代码的价值而不是目光呆滞、不知所云。我能够理解为什么对于普通人而言这似乎是成为专业程序员的主要障碍。专业程序员整日盯着布满编程术语的电脑屏幕,如果我想要成为一个专业程序员,我最好确保我能够理解这些术语。但是理解语法并不是成为程序员的最大的挑战。面对更多更大的障碍,它很快将变成微不足道的。仅仅以掌握一门编程语言的语法为目标,你可能能够 _阅读_ 代码但是无法做到 _编写_ 代码解决全新的问题。 + +我最近浏览了 Codecademy 的 “Code Foundations”(编程基础) 课程。如果你对编程感兴趣(而不是网页开发或者数据科学)并且没有任何编程经验,这是 Codecademy 推荐你学习的课程。里面有几节关于计算机科学史的课时,不过都是流于表面而没有深入研究。(感谢上帝,一位高尚的互联网秩序义务维护者指出了其中存在的一个特别恶劣的错误)。该课程的主要目的是教授你编程语言的通用结构要素:变量、函数、控制流、循环等。换句话说,该课程聚焦于为了开始理解编程术语中的模式你所需要知道的内容。 + +公平地看,Codecademy 也提供其他内容深入的课程。但是即使是如 “Computer Science Path”(计算机科学之路) 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这就是重点—— Codecademy 的主要特点就是提供给你一些交互式的带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动 _Computer Literacy Project_ 的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[8][13]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? + +我一直在大声鼓吹“一般原则”,因此让我再解释下我认为的一般原则是什么以及为什么它们如此重要。J. Clark Scott 出了一本有关计算机的书,书名为 _But How Do It Know?_(但是它怎么知道)。这个书名来自书的序言里的一则笑话:一个店员向人群推销保温瓶,说保温瓶可以让热食始终是热的,冷食始终是冷的。一名听众对这个新发明感到惊讶,问道,但是它怎么知道(根据你给它的食物类型的不同选择做相应的事情呢)?笑点在于保温瓶当然不能感知食物的温度然后据此做出决定——保温瓶仅仅制作成保证冷食必然保持冷的,热食必然保持热的就可以了。人们也以(笑话中的那个听众)一样的方式看待计算机,相信计算机就是能够基于提供给它们的代码“选择”做一件事或者另一件事的数字大脑。但是了解一些有关计算机如何工作的知识,哪怕是很初级水平的理解,也能让(人们理解中的)计算机摆脱(做判断的)侏儒。这就是为什么 Jacquard 织机是一个很好的有助理解的例子。一开始它似乎是一种难以置信的设备,它读取打孔卡片,然后以某种方式“知道”编织正确的样式。现实是显而易见的:每一行孔都对应一根线,而一行中有孔的地方对应着提起的线。理解了这些虽然不会有助于你用电脑完成新的事情,但是将使你自信于你不是在跟某些神秘事物打交道。我们应当尽快将这种自信的感受传授给初学者。 + +唉,真实存在的问题是可能没有人想要了解 Jacquard 织机。根据 Codecademy 如何强调他们教授的专业应用来判断,很多人开始使用 Codecademy 可能是因为他们相信这有助于“提升”他们的职业生涯。他们没有来由地相信首要的问题是理解编程的专业术语,因此他们才想要 “Learn to code”。他们想要在他们所拥用的每天晚上晚餐与就寝之间的一两个小时里尽快做这件事。Codecademy 毕竟只是一门投其所好的生意而非一些有关18世纪就发明了的机器的间接说明。 + +另一方面,_Computer Literacy Project_ 是供职于 BBC 的一群制作人与公务员所认为的将电脑使用教给国民的最好的方式。我承认因为这一群人教会大众他们无法以己之力所能求得的事物而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用电脑,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所言][14],我怀疑在计算机已经变得相对简单的时代里学习使用电脑是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 _The Computer Programme_ 这样的尽己所能不仅仅教授编程而且教授计算机是为什么又是如何运行程序的节目。在看完 _The Computer Programme_ 之后,你可能并不能理解电脑屏幕上的所有编程术语,但是实际上你并不需要,因为你知道无论“代码”是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能理解了编程术语的一些味道,但是对你来说一台电脑仍然只是一台能够以某种方式将编程术语转化为运行的软件的魔法机器。这并不是计算机认知。 + + + 1. Robert Albury and David Allen, Microelectronics, report (1979). [↩︎][18] + + 2. Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, . [↩︎][19] + + 3. John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20]. [↩︎][21] + + 4. David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, . [↩︎][22] + + 5. ibid. [↩︎][23] + + 6. Williams, 51. [↩︎][24] + + 7. Radcliffe, 11. [↩︎][25] + + 8. Radcliffe, 5. [↩︎][26] + + + + +-------------------------------------------------------------------------------- + +via: https://twobithistory.org/2019/03/31/bbc-micro.html + +作者:[Two-Bit History][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://twobithistory.org +[b]: https://github.com/lujun9972 +[1]: tmp.zNBs2lK4Ca#fn:1 +[2]: tmp.zNBs2lK4Ca#fn:2 +[3]: tmp.zNBs2lK4Ca#fn:3 +[4]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/ +[5]: https://twobithistory.org/2018/07/22/dawn-of-the-microcomputer.html +[6]: tmp.zNBs2lK4Ca#fn:4 +[7]: tmp.zNBs2lK4Ca#fn:5 +[8]: tmp.zNBs2lK4Ca#fn:6 +[9]: https://twobithistory.org/images/beeb.jpg +[10]: https://twitter.com/TwoBitHistory/status/1112372000742404098 +[11]: tmp.zNBs2lK4Ca#fn:7 +[12]: https://twitter.com/TwoBitHistory/status/1111305774939234304 +[13]: tmp.zNBs2lK4Ca#fn:8 +[14]: https://twobithistory.org/2018/09/02/learning-basic.html +[15]: https://twitter.com/TwoBitHistory +[16]: https://twobithistory.org/feed.xml +[17]: https://twitter.com/TwoBitHistory/status/1091148050221944832?ref_src=twsrc%5Etfw +[18]: tmp.zNBs2lK4Ca#fnref:1 +[19]: tmp.zNBs2lK4Ca#fnref:2 +[20]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards%20Computer%20Literacy.pdf +[21]: tmp.zNBs2lK4Ca#fnref:3 +[22]: tmp.zNBs2lK4Ca#fnref:4 +[23]: tmp.zNBs2lK4Ca#fnref:5 +[24]: tmp.zNBs2lK4Ca#fnref:6 +[25]: tmp.zNBs2lK4Ca#fnref:7 +[26]: tmp.zNBs2lK4Ca#fnref:8 + +[T1]: https://www.codecademy.com/ +[T2]: https://bbcmicro.computer/ +[T3]: https://clp.bbcrewind.co.uk/history +[T4]: https://archive.org/details/byte-magazine?tab=about +[T5]: https://www.bbc.co.uk/iplayer/episode/p01z4rrj/horizon-19771978-now-the-chips-are-down +[T6]: https://archive.org/details/BBCHorizon19771978NowTheChipsAreDown +[T7]: https://en.wikipedia.org/wiki/Sinclair_Research +[T8]: https://en.wikipedia.org/wiki/Breakout_(video_game) +[T9]: https://www.scienceandindustrymuseum.org.uk/objects-and-stories/jacquard-loom diff --git a/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md new file mode 100644 index 0000000000..1efd79e614 --- /dev/null +++ b/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md @@ -0,0 +1,101 @@ +[#]: 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: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Colorblind Filters:帮助色盲用户的 GNOME 扩展 +====== + +**一个不错的 GNOME 扩展:Colorblind Filters,它为色盲用户带来了许多选项。** + +无障碍是计算和操作系统的一个重要方面。它包括对视力障碍、色盲和许多其他健康症状的管理设置。流行的 Linux 桌面环境,如 GNOME 和 KDE Plasma,具有无障碍设置,以帮助所有这些情况。 + +感谢 GNOME 扩展生态系统,有大量的专门扩展可以帮助这些用户。我遇到的其中一个扩展是[“Colorblind Filters”][1]。 + + +### Colorblind Filters – GNOME 扩展 + +根据维基百科,_"色盲通常涉及无法区分红色和绿色的深浅。遗传性色盲症没有治疗方法。如果色盲是由其他疾病引起的,治疗潜在的原因会有帮助。"_。 + +因此,你有选项来调整你的 Linux 桌面上的设置是很重要的。 + +#### 设置扩展程序和 Flatpak + +首先,确保你已经启用了 Flatpak 和 GNOME 扩展。并且安装了扩展管理器。你可以参考这个关于如何[设置 flatpak][2]和启用 [GNOME 扩展][3]的详细指南,或者从终端运行以下命令(对于 Ubuntu、Linux Mint 等)。 + +``` +sudo apt install flatpaksudo apt install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +对于 Fedora 用户,使用以下命令。 + +``` +sudo dnf install flatpaksudo dnf install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +``` + +完成后,安装扩展管理器: + +``` +flatpak install com.mattjakeman.ExtensionManager +``` + +#### 安装扩展 + +从应用菜单中打开扩展管理器。搜索 “colorblind”。并安装该扩展(见下图)。 + +![安装扩展][4] + +安装后,你可以在系统托盘上看到一个小眼睛图标。你可以点击它来启用预定义的颜色过滤器。 + +![Colorblind Filters 扩展托盘图标][5] + +右键点击眼睛图标以获得更多设置。这个扩展带来了色盲收集、模拟和额外选项的所有必要定制。目前有以下选项: + +- 红色盲 +- 绿色盲 +- 蓝黄色盲 + +- 纠正和模拟(具有高对比度) + +- GBR 和 BRG 的通道混合器 +- 亮度反转 +- 颜色反转 + +- 额外的调整 + +![Colorblind Filters - 选项][6] + +使用最适合你的眼睛的那个。 + +### 总结 + +我认为苹果的 macOS 和 iOS 已经实现了比 Windows 或 Linux 更好的无障碍。然而,Linux 桌面在这些应用和扩展方面也不落后。另外,还有一些专门的 Linux 发行版,如“[Accessible Coconut][7]”,它是为专门的需求而建立的。 + +我希望 Colorblind gnome 扩展对你日常使用 Linux 和 GNOME 桌面有帮助。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/colorblind-filters-gnome-extension/ + +作者:[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://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/ diff --git a/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md new file mode 100644 index 0000000000..8307a8248d --- /dev/null +++ b/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md @@ -0,0 +1,102 @@ +[#]: 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: "lxbwolf" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +构建高效的 DevOps 文化的 6 个技巧 +====== + +你为什么要构建 [DevOps][1] 文化?开发和运营团队的精简协作有很多好处。效率是首要目标:提高新软件部署的速度,减少等待的时间。培养同事之间的信任可以提升员工的满意度,激发新的创新,并对盈利能力产生积极的影响。 + +[DevOps][2] 是一个很广泛的范畴,大家的理解也见仁见智。每个公司对于如何实行 DevOps 也各不相同。这种意见的多样性实际上是一件好事--这么多的观点对于建立更强大的团队是很有用的。本指南将探讨在 DevOps 文化中鼓励同事之间更好地合作的最高技巧。 + +下面每个部分从不同的视角介绍 DevOps 文化,并争取将它引入你的工作中去。 + +![DevOps includes collaboration, workflow, infosec, and iteration.][3] + +### 流程的持续开发 + +DevOps 文化的这一核心原则使它与许多其他类型的工作区别开来。DevOps 哲学说,犯错是有积极意义的,因为这表明你在尝试新的想法。 + +DevOps 文化的核心是不停地创造。实际上,这意味着当测试结果显示事情由于你的改动而变坏时,不要懊恼。我们要认识到,进化的过程不是线性的,通往成功的道路也从来不是一条直线。 + +DevOps 专家[Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你的团队尝试不寻常的任务,以得到新的领悟。 + +你的组织应该以利润为导向吗?你能允许你的团队尝试一些新东西(非指个人兴趣项目)吗?持续的流程开发意味着对升级目前的方法持开放态度。优秀的销售领导懂得,结果比出勤率更重要,因此,关注团队的工作方式而不是工作量的多少始终是关键。 + +### 随时提供反馈并积极寻求反馈 + +成员之间增加信任是蓬勃发展的 DevOps 文化的另一个关键特征。无论你的员工是在学习如何建立联盟网络联系,还是试图设计他们的下一个 [UX][5] 调查,每个人都应该对他们工作的反馈持开放态度。但是,除非你的团队成员尊重彼此的意见,并相信反馈是本着善意的精神提出的,否则这永远不会发生。 + +这种文化听起来可能是很难培养的;事实上,一些公司会比其他公司更努力地实现这一点。诚然,给予和接受反馈的成功很大程度上取决于员工的个性。在招聘过程中,也可以对此进行筛选。 + +在你期望员工随时向同事提供反馈并主动寻求反馈之前,你应该以身作则。高管应该以身作则,公开要求公司成员对其战略决策提出探究性问题,并提供相应的反馈。 + +![DevOps is the intersection of development, quality assurance, and operations][6] + +### 不断改进 + +在同事之间增加智力信任的基础上,你的团队应该寻找方法来改善其工作。DevOps 的性质意味着软件开发团队将比传统方法更迅速地进行部署。 + +这种开放的改进文化可以对开发和运维以外的部门产生积极的影响。你也可以自己去探索,企业还有哪些领域会受到积极的影响。 + +留意培训和提高技能的机会。即使一个培训课程没有广告上说的那么突出,但有机会与行业专家建立联系,并与未来建立联系,这可以提高你的组织内的思想多样性。 + +### 为以后的开发保存当前的想法 + +频繁使用的 [Git][7] 账户应该是你的 DevOps 工具链的一部分。你可以用 Git 作为软件开发和其他相关项目中产生的脚本的共同仓库。Git 作为 "版本控制" 工具而被熟知,Git 允许程序员保存他们工作的迭代、复用或改进其他人的工作。 + +你的目标是有能力保留好的想法供将来使用。某个方法由于某种原因没有成功。然而,那套想法在当时是错误的,并不意味着它在未来永远无法成为有用的东西。 + +由于 DevOps 的整个重点在于生产环境中的软件的端到端所有权,因此保存开发的迭代真正支持这一原则。你希望看到对手头的软件测试项目的持续关注和投入。 + +一个简单的方法是要求开发者在开发者合同和最终项目报告中包含对未来工作的想法。确保技术服务经理知道他们应该要求提供在建设过程中出现的旁门左道的想法的例子。意识到这些小创新的人越多,在需要的时候就越有可能有人记住一个。 + +### 坐在一起(物理上或逻辑上) + +目标是对彼此的工作角色以及它们之间的相互关系有一个共同的理解。你可以通过几个简单的方法实现这一目标,用一句话概括:坐在一起。邀请其他团队参加你们的会议,完整地分享用户反馈报告。一起吃午饭,一起计划虚拟的快乐时光,一般来说,要确保你的同事都在一起。大约 90% 的拥有成熟的 DevOps 协议的团队报告说,他们清楚地了解自己对其他团队的责任,而在不成熟的 DevOps 团队中,只有大约 46% 的工作者清楚地了解自己的责任。 + +虽然与志同道合的人结成小团体,只与被雇来执行与你相同任务的员工一起玩耍是很诱人的,但这对整个企业来说是很糟糕的。无论你喜欢与否,所有的人都是多面手,能够在一系列的情况下贡献自己的独特才能。 + +密切协作的想法是尊重任何人对其周围正在进行的产品或工作流程提出改进建议的能力。如果你与公司内的其他部门保持一定的距离,你将会错过无数次分享智慧想法的机会。毕竟,你往往在交流中学习得最好。 + +### 致力于自动化 + +你应该以提高效率和加速流程的方式,将单调的和重复的任务变为自动化。每个行业都有无聊的--说得直白一点,愚蠢的--每天或每周都要进行的工作。 + +无论是手工将数据从一页复制到另一页,还是手工打出音频记录,每个级别的工作人员都应该坚持让机器在可能的情况下承担这些负担。现实是自动化技术每年都在进步,操作流程也应该如此。[自动化测试][8] 对 DevOps 非常关键,它是 CALMS 框架的第二个原则(其中的 “C”代表“文化”)。 + +你怎样才能实现这一点?邀请员工公开表达他们认为工作的哪些方面可以自动化,然后--这里是关键的部分--支持实现自动化所需的设施。这可能意味着每年花 600 美元订阅一个软件程序、一套完整的企业应用现代化解决方案或开发人员的两天时间来建立一个新的工具在内部使用。 + + +无论哪种方式,你都应该评估自动化的好处,考虑你可以为每个人节省多少时间。DevOps 的统计数据不断表明,现代公司通过整合这些有益的原则,年复一年地得到了很大的改善。 + +### 探索成功的新工作方式 + +文化转变不会在一夜之间发生。不过,你越早开始,就越早看到结果。根据我的经验,当变化是对以前的真正改进时,人们会接受它。DevOps 为这种改进提供了一个框架。无论你是刚刚在你的组织中开始使用 DevOps,还是仅仅想改善你现有的文化,请考虑以上几点以及它们与你组织的未来的关系。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/tips-effective-devops-culture + +作者:[Yauhen Zaremba][a] +选题:[lkxed][b] +译者:[lxbwolf](https://github.com/lxbwolf) +校对:[校对者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 diff --git a/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md new file mode 100644 index 0000000000..830e1e4b65 --- /dev/null +++ b/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md @@ -0,0 +1,69 @@ +[#]: 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: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wordbook:适用于 GNOME 的离线英语词典应用 +====== + +**遇见 Wordbook – 一个 GNOME 桌面的离线词典应用。** + +我们大多在谷歌、DDG 或其他搜索引擎上搜索单词信息,如含义、同义词、反义词等。 + +由于今天几乎每个人都有一个连接互联网的手机,在谷歌上搜索可能更容易。 + +但对于离线使用,在没有互联网连接的情况下,你可以尝试 [Wordbook][1]。 + +### Wordbook:离线词典应用 + +这个应用在本质上是非常基本的。但以它的能力完成了它的工作。Wordbook 目前支持一个英译英字典。在其核心部分,它使用 [Open English WordNet 数据库][2]进行定义。Open English Wordnet 是 [Princeton Wordnet项目][3] 的一个开源分叉。 + +Wordbook 应用还可以使用 [eSpeak][4] – 一个免费和开源的语音合成器来发音。 + +![Wordbook - 英译英词典应用][5] + +然而,在第一次运行时,它需要一次性上网,以下载离线数据。就这些了。其他值得注意的功能包括实时搜索、双击搜索和带有 HTML 标记的自定义定义。 + +Wordbook是一个 [GNOME 应用][6],使用现代 GTK4 和 libadwaita 构建。因此,它与 GNOME 桌面的浅色和深色主题整合得很好。你也可以使用 Wordbook 的随机单词功能来学习新单词以增加你的词汇量。 + +### 安装 + +你可以很容易地从 Flathub 将其作为 Flatpak 应用安装。为 Flatpak 和 Flathub 设置你的系统,然后从终端使用以下命令安装它: + +``` +flatpak install com.github.fushinari.Wordbook +``` + +安装后,你可以在应用菜单中找到它。 + +### 结束语 + +我希望你在学校或商业工作中使用这个小小的应用。如果你在写论文和较长的段落,离线特性是很方便的。 + +你知道其他Linux的离线字典吗?请在评论栏里告诉我们。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/wordbook-offline-dictionary/ + +作者:[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://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 \ No newline at end of file From 1514ee66123c56dfcc40dbef60bab884ea5a3903 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Thu, 19 Jan 2023 00:58:02 +0800 Subject: [PATCH 187/357] file add --- ...alks about Vanilla OS and Other Future Projects.md | 156 ++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md diff --git a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md new file mode 100644 index 0000000000..4d6b8b8243 --- /dev/null +++ b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md @@ -0,0 +1,156 @@ +[#]: subject: "'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects" +[#]: via: "https://news.itsfoss.com/interview-mirko-brombin/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects +====== + +A conversation with Mirko Brombin, founder of Vanilla OS and Bottles creator. + +!['Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects][1] + +There are many interesting personalities in the Linux and open-source world. + +We aim to interact with them and share their stories/thoughts with you. While we did a few interviews in 2021, we are resuming the mission to share insightful conversations with amazing folks in our open-source and Linux universe. + +[Mirko Brombin][2] is one such cool guy 😎 He works as a UX designer full-time, and despite doing all that, he is involved with open-source projects that we admire! + +If you did not know, he is the creator of **[Bottles][3]** (an app to run Windows apps/games on Linux) and **[Vanilla OS][4]**'s founder. + +So, I asked a couple of questions to provide details about his **projects**, his **work/life**, and some **valuable tips** for our readers who want to join the open-source community. + +**Q.** _**Many people think that we have more than enough distros. Why Vanilla OS?**_ + +![vanilla os][5] + +**A:** It is because this one is 10x faster and safer than all the others! Just kidding. **Vanilla OS was born mainly out of a need of mine and a desire to experiment**. I have been a Linux user for many years and have tried many distributions. They always suffered from the lack of certain features and concepts that led me to compulsively distro-hop. In recent years I have been a happy user of Silverblue, a distribution that made me explore the benefits of immutable systems. + +Silverblue is a fantastic project. It's one of the most solid distributions I have tried. However, it does not fully meet my needs. Maintaining Bottles often requires me to play games for testing purposes, and having an NVIDIA GPU, I have had quite a few problems with Silverblue, from driver installation to constant driver breakage and a distinctly noticeable drop in performance. Let's be clear, **NVIDIA is a problem in every distribution** but there is much that can be done to improve the quality of life for users using these GPUs, such as guiding driver installation, pre-configuring the setup for Optimus (Integrated+Dedicated) laptops, and allowing PRIME profile switching in an easy way. To date, only Ubuntu and derivatives have been pre-configured for this workflow. + +![nvidia illustration][6] + +My problem with Ubuntu-based distributions is that they do not offer an experience compatible with my needs either. **I am a devoted GNOME user**, I fully endorse the user experience envisioned by GNOME, and I am completely addicted to it. + +I understand the need for **Ubuntu, Pop!_OS,** and others to provide their own vision and branding, but these modifications are deal breakers for me and probably for many users. GNOME designers and developers are professionals that have been working in this industry for countless years, perfecting their vision, but many distributions change the workflow in ways that I cannot use my systems effectively. + +**Another problem with Ubuntu is that it does not offer immutability and atomicity of transactions**, two mechanisms that make the system solid and safe from easy breakage, for example, when an update goes wrong. + +![solving ubuntu problems][7] + +Adding up all those shortcomings and my passion for throwing myself into increasingly complex projects, I decided to create **Vanilla OS, an Ubuntu-based distribution, with a stock GNOME desktop** and all the merits of immutability and atomicity. + +**Q.****_Some of your projects, like Bottles and the upcoming Vanilla OS, are immensely popular. Do you have other project ideas for the future?_****A:** I have a long list of projects that I would like to accomplish in the future, but my next goal is to develop and contribute to a project idealized by @[TheEvilSkeleton][8]: a **utility to configure MangoHud, an overlay that displays useful information about game FPS, temperatures, CPU/GPU load and more**. + +With this new project, we plan to integrate it in Bottles and provide a graphical interface to customize MangoHud parameters. Similarly, we did the same thing for vkBasalt with vkbasalt-cli. + +**_Q. There will always be a new distro, even if some of us would rather not see more. When I tried out Vanilla OS, it did not feel like “just another distro” but with a unique angle to it._****_So, what’s your near future plan with Vanilla OS?_****A:** My future plan for Vanilla OS is **to make the project sustainable so that I can work on it full-time**. This is more of a dream in my drawer but, who knows. + +I have many ideas that I'll share on social media eventually. Something I can tell you now is that one of my dreams is to see Vanilla OS on multiple platforms like desktops, mobile, and tablets. I want to create an environment with an Apple-like continuity, without the scamming, as the **user experience is always the main focus for me.** + +Q. _**Bottles is a fantastic tool to help users run Windows software on Linux in a few clicks. Various other tools like Heroic Games Launcher have been trying to make things easy for Windows users to play their favorite games on Linux easily.**__**How do you think that’s going? Do you have any stats to share about that through Bottles?**_**A:** Heroic is a project that I admire and follow closely. I am friends with [Flavio][9] (the founder) and [Linguin][10] (one of the developers), and I know how hard the whole team is working to make the gaming experience on Linux more and more fulfilling, so **a Hooray! for Heroic**. + +![Heroic Games launcher][11] + +**Bottles** is like a son to me, I have raised him at my best, and he is giving me a lot of satisfaction. Recently I had to decrease my presence in the project to focus on others and my daily job. This has been possible thanks to a team of contributors who have joined over time, people who share the same vision of the project as I do and cherish its ideals. + +![bottles screenshot][12] + +The structure of the project is changing radically. Initially, I was the one making every decision, whereas now everything is discussed and put to a vote, trying to get a shared verdict. In this, it is like watching a son grow up and make his own decisions, aware of what I have taught him over time. + +**Release 2022.11.14**, is the first release entirely developed by the Bottles team. One of the best releases ever in my opinion. For this, I have to give special thanks to @**TheEvilSkeleton,** who led the release, and [noëlle][13], who made the graphics part. + +A small milestone I would like to share with you is the **achievement of 400,000+ downloads from Flathub.** 🎉 + +![Bottle download stats][14] + +_**Q. If someone gets interested in contributing to any one of your projects. What advice would you give them? What programming language should they focus on if they want to collaborate with you?**_**A:** My advice is not to be afraid to contribute and ask questions, even if it's a "bad" question. Even if you are afraid. There is no such thing as a bad contribution. A well-written ticket is already a great way to do your part. Personally, I don't give weight to contributions, I give credit to those who have spent much more time certainly, but for me, every single contribution is a small brick that helps the project grow. + +**I mostly use Python and Go** for my projects but I would not make it a requirement. If a user wants to help with Vanilla OS, for example by making an application we need, well, they can use whatever language they like. + +![python programming][15] + +The only thing I would ask is to carefully consider the language and choose the one best suited for the type of project you need to create, as the choice will affect who can contribute (or not), for example, I would never choose Rust for a small tool, as Rust is not an easy language for newcomers and new contributors typically contribute to smaller projects that are written in user-friendly languages. + +_**Q. Other than your creations, what other project or distro would you mention as one of your favorites?**_**A:** I have many projects that I would like to mention here, but it would become a season of Vikings. Among all of them, the one that, in my opinion, deserves mention is **Distrobox, a project made by** [Luca di Maio][16]**, a friend of mine as well as an active member in the making of the Vanilla OS project.** + +Distrobox is a tool that installs Linux distributions inside managed containers integrated with the system, allowing, for example, to install and run software in a Fedora container while running Ubuntu, integrating it seamlessly with the host system. + +Distrobox is also employed by Apx, the Vanilla OS package manager. Every package installed through Apx resides in the Distrobox container, keeping the system safe from any discrepancies or breaks from a possible update gone wrong. + +_**Q. How do you keep up with all the projects you’re working on? What’s your mantra on productivity or time management?**_**A:** Contrary to what you may think, I don't work much on my projects, my daily job takes a lot of my time, and I have many other passions to cultivate. + +![productivity][17] + +I don't have any particular time management or organization; normally I try to stay focused on my projects by reasoning about them in my spare time and taking notes, so as soon as I get back to work on a project, I already have a clear idea of what I need to do. + +_**Q. You are also a GNOME Foundation member. What’s it like being a GNOME foundation member? Can anyone apply to be a part of it?**_**A:** I am still a very recent member and I don't have much to say, except that it is wonderful to be inside the project that I absolutely love and respect the most, as it has changed the way I use my PC, with a workflow designed to be free of distractions and where everything is intuitive and immediate; in short, where the user experience is always first. + +Anyone can apply, as long as they are an active person with demonstrable contributions. + +**_Q. As a GNOME foundation member, what do you think GNOME should improve compared to the KDE Plasma side?_****A:** I don't want to sound brash but I think **GNOME is currently complete as it is**. I've seen it grow since the beginning and I know how many steps have been taken since GNOME 2 and 3, I'm sure many more are to come but **right now I can't find a lack in comparison to KDE**. + +![gnome user][18] + +I know at this point someone is saying "_Eh but KDE has themes and a setting for this and that._" and I agree, it is a fact that KDE is the most customizable desktop environment of all, but you have to understand that GNOME doesn't implement all these settings because the whole thing is designed to provide a single, but efficient, user experience. Providing a setting to change every single aspect of it is more of an invitation for the user to do so, feeding bug reports for a different experience than designed. + +It is important to understand that more customization inevitably leads to more discrepancies and bugs, as all components of the system are meant to work in a certain way, and altering them takes you out of the testing environment that is used in GNOME. + +**_Q. What do you like to do in your spare time?_** + +![world history and podcast][19] + +**A:** In my free time, I love to **write recipes** or listen to the **world's history podcasts**. + +10-yo Mirko would find me boring, haha 😁 + +_**Q. A message to our readers (to inspire them/add a tip that you always wanted to share, etc)**_ + +![dialogue is good][20] + +**A:** Don't be afraid to contribute or speak. I often find that someone has a great idea to solve a problem and has never told anyone because of the fear that it was wrong. Let's be clear that a contribution is something to improve and is therefore always welcome. + +Certainly, not all ideas are feasible or correct but dialogue is a great way to find out. + +Don't be shy; come on! + +> 💭 Share your thoughts on the interview and if you want us to talk to your favorite open-source/Linux creator, feel free to mention them in the comments. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/interview-mirko-brombin/ + +作者:[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/interview-with-mirko-brombin.png +[2]: https://mirko.pm +[3]: https://usebottles.com +[4]: https://vanillaos.org +[5]: https://news.itsfoss.com/content/images/2022/12/vanillaos.jpg +[6]: https://news.itsfoss.com/content/images/2022/12/nvidia.png +[7]: https://news.itsfoss.com/content/images/2022/12/ubuntu.png +[8]: https://github.com/TheEvilSkeleton +[9]: https://github.com/flavioislima +[10]: https://github.com/imLinguin +[11]: https://news.itsfoss.com/content/images/2022/12/Heroic_2.jpg +[12]: https://news.itsfoss.com/content/images/2022/12/bottle-creation-dark.png +[13]: https://github.com/jannuary +[14]: https://news.itsfoss.com/content/images/2022/12/download-milestone.png +[15]: https://news.itsfoss.com/content/images/2022/12/python.png +[16]: https://github.com/89luca89 +[17]: https://news.itsfoss.com/content/images/2022/12/productivity.png +[18]: https://news.itsfoss.com/content/images/2022/12/gnome-1.png +[19]: https://news.itsfoss.com/content/images/2022/12/history-1.png +[20]: https://news.itsfoss.com/content/images/2022/12/dialogue.png + From 732ba00ca3defac0e1eaf44b0e2e16588350d935 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 19 Jan 2023 08:40:34 +0800 Subject: [PATCH 188/357] translated --- ...t and Host in virt-manager (KVMQemulibvirt).md | 110 ------------------ ...t and Host in virt-manager (KVMQemulibvirt).md | 109 +++++++++++++++++ 2 files changed, 109 insertions(+), 110 deletions(-) delete mode 100644 sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md create mode 100644 translated/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 deleted file mode 100644 index 40e7c4380a..0000000000 --- a/sources/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md +++ /dev/null @@ -1,110 +0,0 @@ -[#]: 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: "geekpi" -[#]: 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 diff --git a/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md new file mode 100644 index 0000000000..91234d436a --- /dev/null +++ b/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md @@ -0,0 +1,109 @@ +[#]: 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: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 virt-manager 中,在客户机和主机之间共享文件夹(KVM/Qemu/libvirt) +====== + +**在本指南中,你将学习如何使用 KVM、QEMU 和 libvirt 在 virt-manager 中的主机和客户机之间共享文件夹。** + + +[virt-manager][1] 应用或软件包使用 [libvirt][2] 库来提供虚拟机管理服务。它有一个桌面界面,有助于创建、删除和管理多个虚拟机。 + +virt-manager 桌面界面及其组件为各种个人和商业场景提供了灵活的虚拟机管理服务。它是一个免费和开源的应用,主要用于 KVM 虚拟机。然而,它也可以支持其他管理程序,如 Xen 和 LXC。 + +在之前的文章中,我解释了[如何使用 virt-manager 创建虚拟机][3]。这篇文章介绍了如何在客户机和主机之间无缝访问文件和文件夹。 + +### 关于 virtiofs 的说明 + +共享文件和文件夹是由名为 virtiofs 的 libvirt 共享文件系统提供的。它提供了所有的功能和参数来访问主机上的目录树。由于大多数 virt-manager 虚拟机的配置都被翻译成 XML,所以共享文件/文件夹也可以通过 XML 文件来指定。 + +### 在 virt-manager中共享文件夹 + +- 首先,确保你的客户机关闭了电源。在 virt-manager GUI 中,选择虚拟机,点击打开,弹出控制台设置。 + +![打开设置][4] + +- 点击工具条上显示虚拟硬件细节的图标。然后点击左边面板上的**内存**。 +- 选择选项“**启用共享内存**”。点击应用。 + +![启用共享内存选项][5] + +- 然后点击底部的“添加硬件”。 + +![点击添加硬件][6] + +- 在添加新硬件的窗口中,从左边的面板上选择**文件系统**。 +- 然后在细节标签中选择 **Driver=virtiofs**。点击“浏览>浏览本地”,**选择你想在客户机内访问的主机路径**。 +- 在目标路径中,输入你想要的任何名字。这只是一个文件标签,将在挂载时使用。 +- 所以,如果我想访问 Pictures/Screenshots 文件夹(`/home/debugpoint/Pictures/Screenshots`),示例设置可以是这样: + +![添加一个新的文件系统硬件][7] + +下面是上述配置的 XML 设置。你可以在 XML 标签中找到它。 + +``` + + + + + + +
+ +``` + +点击“完成”。在 virt-manager 主窗口中,右键点击虚拟机,点击运行,启动虚拟机。确保点击“显示图形控制台”(如果虚拟机没有显示,点击工具条上的监视器图标)。 + +在客户机中,创建一个你想挂载主机文件夹的文件夹。在这个例子中,我使用了 /mnt/pictures。 + +``` +sudo mkdir /mnt/pictures +``` + +最后,使用你在上述步骤中创建的标签将主机文件夹挂载到这个新文件夹。使用下面的命令在终端做这件事。确保根据你的系统改变下面命令中的标签和文件夹名称。 + +``` +sudo mount -t virtiofs mount_tag_pictures /mnt/pictures +``` + +现在你可以在主机和客户机之间的 virt-manager 中无缝地浏览文件夹和添加/删除项目。 + +![从 virt-manager 客户机访问主机文件][8] + +### 总结 + +我希望这个方案能帮助你从客户机上访问主机文件和文件夹。记住,你的用户 ID,也就是用来启动 virt-manager 应用的用户,应该有同样的权限来访问主机文件夹。 + +如果你遇到任何错误,上述指南帮助了你,请在下面留言。 + +_[参考][9]_ + + +-------------------------------------------------------------------------------- + +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 From 2219f58926488dd45edcacc86c7423b41db19576 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 19 Jan 2023 08:43:27 +0800 Subject: [PATCH 189/357] translating --- sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md | 2 +- ...older Between Guest and Host in virt-manager (KVMQemulibvirt).md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 index 7bed4b5c37..bf5af72851 100644 --- 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 @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/java-loops" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " diff --git a/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md index 91234d436a..cca25c3286 100644 --- a/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md +++ b/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md @@ -91,7 +91,7 @@ via: https://www.debugpoint.com/share-folder-virt-manager/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From e5386010186f4f0362d975a641df5f693db70e90 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Thu, 19 Jan 2023 11:05:00 +0800 Subject: [PATCH 190/357] Eighth translations request (#28455) * Update 20190331 Codecademy vs. The BBC Micro.md * first commit * h * b * b2 * h2 * translation request * merge * file add * file add --- ... meets academic publishing- Platinum open access journals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md index 91c7df4d12..6ccfafb514 100644 --- a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md +++ b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/5/platinum-open-access-academic-journals" [#]: author: "Joshua Pearce https://opensource.com/users/jmpearce" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "CanYellow" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 563684cfd43260ae6023272426e629b5b98a16af Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 19 Jan 2023 11:39:26 +0800 Subject: [PATCH 191/357] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Tingze-G 感谢您,完成了第一篇翻译贡献! --- ... apt remove vs apt purge What’s the Difference.md | 91 ++++++++++--------- 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md index 3fa294485a..fc072680f5 100644 --- a/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md +++ b/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md @@ -2,103 +2,103 @@ [#]: via: "https://itsfoss.com/apt-remove/" [#]: author: "Abhishek Prakash https://itsfoss.com/" [#]: collector: "lkxed" -[#]: translator: "Tngze-G" -[#]: reviewer: " " +[#]: translator: "Tingze-G" +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " apt remove 和 apt purge: 有什么区别? ====== -如果你想在Ubuntu服务器上卸载软件,可以使用 +![][0] + +如果你想 [在 Ubuntu 上使用终端卸载软件][1],可以使用: ``` sudo apt remove package_name ``` -但是在很多论坛,你可能会看到别人说,如果你想彻底删除软件就用the apt purge。 +但是在很多论坛,你可能会看到别人说,如果你想彻底删除软件就用 `apt purge`。 -你可能会觉得很困惑,因为apt purge 和apt remove 看起来是一样的。 +你可能会觉得很困惑,因为 `apt purge` 和 `apt remove` 看起来是一样的。 ``` sudo apt purge package_name ``` -为什么会有两个如此像的命令删除安装包呢?两者之间有什么不同呢?下面将为您揭晓 +为什么会有两个如此像的命令来删除软件包呢?两者之间有什么不同呢?下面将为你揭晓。 -### apt-remove和 apt-purge有什么不同? +### apt-remove 和 apt-purge 有什么不同? -apt-remove 和 apt-purge相同之处就是都可以卸载安装包, 但是运行apt-purge 除了可以删除安装包之外,还可以清除相关的配置文件。这是两者之间唯一的不同点。要注意的是这两条命令都不能删除用户家目录中相关的应用程序文件。 - -你是否遇到过这样的情况,卸载一个软件然后重新安装,却发现之前的设置都还在。 -这是因为用 apt remove 不能删除该软件的相关配置文件。 +`apt-remove` 和 `apt-purge` 的相同之处就是都可以卸载软件包,但是运行 `apt-purge` 除了可以删除安装包之外,还可以清除相关的配置文件。这是两者之间唯一的不同点。要注意的是这两条命令都不能删除用户主目录中相关的应用程序文件。 +你是否遇到过这样的情况,卸载一个软件然后重新安装,却发现之前的设置都还在。这是因为用 `apt remove` 不能删除该软件的相关配置文件。 #### 哪些东西被删除了?哪些还在? -我用这两个命令分别卸载一下mplayer这个软件,看看卸载之后残留什么文件。 -我分享一个使用apt remove和apt purge两个命令分别卸载mplayer这个软件的实际例子。重点是看每次操作后还残余哪些文件。 +我分享一个使用 `apt remove` 和 `apt purge` 两个命令分别卸载 mplayer 这个软件的实际例子。重点是看每次操作后还残余哪些文件。 -这是删除前的文件 +这是删除前的文件: ![mplayer before removal][2] -现在运行 apt remove 这个命令 +现在运行 `apt remove` 这个命令: ![apt uninstall package ubuntu][3] -下面的是还残留在系统中的文件 +下面的是还残留在系统中的文件: ![files after mplayer removal][4] -我们可以看到,有两个地方残留着mplayer的文件: /etc 和 /home/abhishek. +我们可以看到,有两个地方残留着 mplayer 的文件: `/etc` 和 `/home/abhishek`。 -这次我们重新安装mplayer,然后用apt purge 来卸载软件。 +这次我们重新安装 mplayer,然后用 `apt purge` 来卸载软件。 ![apt purge command][5] -现在让我们看看与mplayer相关的文件 +现在让我们看看与 mplayer 相关的文件: ![files after mplayer removal][6] -我们可以看到/etc目录下的文件已经没有了。 +我们可以看到 `/etc` 目录下的文件已经没有了。 -但是在家目录中的文件呢?apt purge会删除它们吗? +但是在主目录中的文件呢?`apt purge` 会删除它们吗? -答案是否定的。apt命令不会删除家目录中的配置文件。所以它们仍然在系统中,除非你手动删除。但是这些文件所占的空间真的很小,几乎不占磁盘空间。 +答案是否定的。`apt` 命令不会删除主目录中的配置文件。所以它们仍然在系统中,除非你手动删除。但是这些文件所占的空间真的很小,几乎不占磁盘空间。 -值得注意的是,不是所有的软件在家目录或者 /etc目录下都有配置文件。 +值得注意的是,不是所有的软件在主目录或者 `/etc` 目录下都有配置文件。 -#### 使用 apt remove 或者 apt purge的效果 +#### 使用 apt remove 或者 apt purge 的效果 -我能想到的一个实际例子就是discord, 你用deb文件 [在Ubuntu上安装了Discord][7]. 然后登录自己的账号,之后又卸载并重新用deb文件安装。 +我能想到的一个实际例子就是 Discord,你用 deb 文件 [在 Ubuntu 上安装了 Discord][7]。然后登录自己的账号,之后又卸载并重新用 deb 文件安装。 -现在如果你打开Discord,你会发现你的账号自动登录了。是不是觉得很奇怪? +现在如果你打开 Discord,你会发现你的账号自动登录了。是不是觉得很奇怪? +这是个功能,像一些软件,比如 Discord、VirtualBox,它们会提供更新,就是卸载现在的版本然后下载新的(尽管你不知道它内部怎么进行的),但是它在卸载的时候,这些软件的配置文件没有被删除,所以等你打开这些软件的时候就会自动登录。 -这个现象,就像是一些软件,比如Discord,VirtualBox,它们会提供更新,就是卸载现在的版本然后下载新的(尽管你不知道它内部怎么进行的),但是它在卸载的时候,这些软件的配置文件没有被删除,所以等你打开这些软件的时候就会自动登录。 +当你想卸载一个软件,但是想保留你过去使用该软件留下的配置文件的时候,你就可以用 `apt remove`。 -当你想卸载一个软件,但是想保留你过去使用该软件留下的配置文件的时候,你就可以用apt remove。 -但是,有时候用它不能满足你的需求,比如当你没有配置好一个软件的时候,你想要重新开始,这个时候用apt purge就比较合适。 +但是,有时候用它不能满足你的需求,比如当你没有配置好一个软件的时候,你想要重新开始,这个时候用 `apt purge` 就比较合适。 -#### 运行apt purge 是否可以删除通配符? +#### 运行 apt purge 是否可以用通配符删除? -当你删除一个包的时候,它会提示removing package-name*. 这意味着它会删除以这个包名开头的所有文件 +当你删除一个包的时候,它会提示 `removing package-name*`。这意味着它会删除以这个包名开头的所有文件。 ![apt purge wild card][8] -我在文档中没有找到关于这个问题的答案 (i.e. man page)。 所以我自己做了一个小测试,我安装了espeak和espeak-ng这两个软件, espeak这个包按理说是可以扩展到espeak-ng。 +我在手册页之类的文档中没有找到关于这个问题的答案。所以我自己做了一个小测试,我安装了 espeak 和 espeak-ng 这两个软件,espeak* 应该可以通配扩展到 espeak-ng。 -但是当我用apt purge 删除espeak包时,espeak-ng包还在,没有被一并删除。因此,这似乎是有一种防止通配符的扩展的机制。 +但是当我用 `apt purge` 删除 espeak 包时,espeak-ng 包还在,没有被一并删除。因此,这似乎是有一种防止通配符的扩展的机制。 -### 那么,你应该使用apt remove还是apt purge呢? +### 那么,你应该使用 apt remove 还是 apt purge 呢? -大部分人很常使用apt purge。 +很少有人会一直使用 `apt purge`。 -在我看来,一般清况下,用apt remove 就可以了,但是当你想删除那些自定义配置文件时,你就得用apt purge。 -不管是用apt remove 还是 apt purge, 你都需要从用户的家目录中删除残余的配置文件,并运行apt autoremove 来清除任何依赖的包。 +在我看来,一般清况下,用 `apt remove` 就可以了,但是当你想删除那些自定义配置文件时,你就得用 `apt purge`。 -现在到你啦。你现在对apt remove和apt purge的区别有更了解吗?你更喜欢使用哪一个呢? +不管是用 `apt remove` 还是 `apt purge`,你都需要从用户的主目录中删除残余的配置文件,并运行 `apt autoremove` 来清除任何依赖的包。 + +现在到你啦。你现在对 `apt remove` 和 `apt purge` 的区别更加了解吗?你更喜欢使用哪一个呢? -------------------------------------------------------------------------------- @@ -107,17 +107,18 @@ via: https://itsfoss.com/apt-remove/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] 译者:[Tingze-G](https://github.com/Tingze-G) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://itsfoss.com/ [b]: https://github.com/lkxed [1]: https://itsfoss.com/apt-remove/ -[2]: https://itsfoss.com/wp-content/uploads/2022/11/mplayer-before-removal.png -[3]: https://itsfoss.com/wp-content/uploads/2022/11/apt-uninstall-package-ubuntu.png -[4]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-mplayer-removal.png -[5]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-command.png -[6]: https://itsfoss.com/wp-content/uploads/2022/11/files-after-apt-purge.png +[2]: https://itsfoss.com/content/images/wordpress/2022/11/mplayer-before-removal.png +[3]: https://itsfoss.com/content/images/wordpress/2022/11/apt-uninstall-package-ubuntu.png +[4]: https://itsfoss.com/content/images/wordpress/2022/11/files-after-mplayer-removal.png +[5]: https://itsfoss.com/content/images/wordpress/2022/11/apt-purge-command.png +[6]: https://itsfoss.com/content/images/wordpress/2022/11/files-after-apt-purge.png [7]: https://itsfoss.com/install-discord-linux/ -[8]: https://itsfoss.com/wp-content/uploads/2022/11/apt-purge-wild-card.png +[8]: https://itsfoss.com/content/images/wordpress/2022/11/apt-purge-wild-card.png +[0]: https://img.linux.net.cn/data/attachment/album/202301/19/113744ucqk6f69t4hbi8h8.jpg \ No newline at end of file From 913d0e6c50c478051fd2457fd0122f623c975d92 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 19 Jan 2023 11:41:39 +0800 Subject: [PATCH 192/357] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Tingze-G 本文首发地址:https://linux.cn/article-15458-1.html 您的 LCTT 专页:https://linux.cn/lctt/Tingze-G 请注意一下排版,也不能丢失文内链接,可以参照我的校对。 --- ...23.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md (98%) diff --git a/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/published/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md similarity index 98% rename from translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md rename to published/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md index fc072680f5..9280c9f794 100644 --- a/translated/tech/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md +++ b/published/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "Tingze-G" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15458-1.html" apt remove 和 apt purge: 有什么区别? ====== From 211f1dff8279e21aecc24fa7a274b020ece88470 Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Thu, 19 Jan 2023 11:53:20 +0800 Subject: [PATCH 193/357] translated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除了source/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md; 添加了translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md. --- ...tu on Windows Using VirtualBox [Complete Guide].md | 241 ------------------ ...tu on Windows Using VirtualBox [Complete Guide].md | 241 ++++++++++++++++++ 2 files changed, 241 insertions(+), 241 deletions(-) delete mode 100644 sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md create mode 100644 translated/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 deleted file mode 100644 index abe5942ad6..0000000000 --- a/sources/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md +++ /dev/null @@ -1,241 +0,0 @@ -[#]: 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 diff --git a/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md new file mode 100644 index 0000000000..2916547f27 --- /dev/null +++ b/translated/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: "ZhangZhanhaoxiang" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 VirtualBox 在 Windows 上安装 Ubuntu[完整指南] +====== + +**本教程将指导您用最简单的步骤在 Windows 端的 Oracle VirtualBox 上安装 Ubuntu 桌面。** + +[VirtualBox][1] 是 Oracle 的一款流行的虚拟化软件,可用于 Linux、mac 和 Windows 系统。它是灵活的,并提供了许多功能来实现您的虚拟化。这是在 Windows 中体验 Ubuntu 而不安装它的最佳且简单的方法。然而,我强烈建议将 Ubuntu 以双引导的方式安装在物理机上,从而更好地体验 Ubuntu。 + +下面列出的步骤假设您是第一次在 Windows 中安装 Ubuntu。因此,这些步骤有点描述性,也有点冗长。此外,以下步骤适用于 Windows 10 和 Windows 11 作为主机。 + +### 目录 + +- [先决条件][2] +- [下载 Ubuntu ISO 和 VirtualBox 安装文件][3] +- [在 Windows(Host) 上安装 VirtualBox][4] +- [在 VirtualBox 上安装 Ubuntu(Guest)][5] +- [客体机额外的安装和提示][6] + +### 你需要什么 + +- 可上网的 PC +- 用于安装的 Ubuntu Linux ISO 映像文件 +- 安装了 VirtualBox 的 Windows 系统 + +### 使用 VirtualBox 在 Windows 上安装 Ubuntu + +#### 下载并安装必要的东西 + +- 从以下链接下载 Ubuntu Linux 桌面 ISO 映像文件。 + +[下载 Ubuntu 桌面][7] + +- 此外,请从下面的官方网站下载 Oracle VirtualBox 安装程序。 + +[下载 VirtualBox][8] + +![VirtualBox for Windows 的下载位置][9] + +#### 如何安装和配置 VirtualBox + +Windows 中的 VirtualBox 需要 Microsoft Visual C++ 2019 Redistrobutiable package。你必须先安装它。从以下链接下载软件包(X64 架构): + +[下载][10] + +![下载 VirtualBox 的依赖项][11] + +![安装 VirtualBox 的依赖项][12] + +- 完成以上安装后,从以下链接下载最新的 Python 包。Python 绑定也是 Windows 端 VirtualBox 安装所需的依赖项。 + +[下载 Python for Windows][13] + +- 然后,启动 VirtualBox 安装程序并按照屏幕上的说明进行安装。 +- 安装后,重新启动 Windows 系统。 + +#### 为 Ubuntu 设置虚拟机 + +- 从开始菜单启动 VirtualBox。 + +![从开始菜单中选择 VirtualBox][14] + +- 在 VirtualBox 窗口工具栏上,单击 **新建**。 +- 在 **创建 VirtualBox** 窗口中,输入虚拟机的名称。它可以是标识此版本 Ubuntu 的任何名称。 +- 保持 **文件夹名称** 不变。这是创建虚拟机文件的路径。 +- 在 ISO Image 一栏,浏览您下载的 Ubuntu ISO 文件。 +- 然后选择无人值守安装(Unattended installation)。如果不选择此选项,将在虚拟机中创建一个 [默认用户 id(vboxuser)和密码][15]。让我们暂时不要管它。 + +![单击新建][16] + +![选择 ISO 文件][17] + +- 单击 Hardware(硬件)并调整虚拟机所需的 RAM。一般的经验是,VM 的 RAM 大小应该小于主机系统中的物理 RAM。我建议对于 8 GB RAM 系统的虚拟机使用 2 GB 到 4 GB。对于 4 GB RAM,拖动滑块(或键入)使其为 4096 MB(即 4×1024)。 +- 选择 2 或 4 核处理器。 +- 单击“硬盘”选项,并保持文件位置不变。 +- 为 Ubuntu 安装提供至少 20 GB 到 25 GB 的容量。 +- 硬盘文件类型值保持为 VDI(VirtualBox 磁盘映像) +- 不要选择 pre-allocate full size(预分配完整大小)。 +- 最后,单击 Finish 完成。 + +![选择硬件][18] + +![选择硬盘][19] + +- 您应该在 VirtualBox 的左侧面板上看到一个新条目,其中包含一个 Ubuntu 22.04 条目(您之前设置的名称)。 +- 选择条目并单击开始以引导到虚拟机 + +![在 VirtualBox 中启动 Ubuntu][20] + +#### 使用 VirtualBox 安装 Ubuntu + +- 成功引导后,您应该看到以下屏幕,其中显示了安装 Ubuntu 的各种选项。选择 **尝试或安装 Ubuntu**。 +- 在欢迎屏幕中,单击 **尝试 Ubuntu**。过了一会儿,你会看到下面的 Ubuntu LIVE 桌面。如果要更改分辨率,请右键单击桌面并选择显示设置。并将分辨率更改为 1400×900。 +- 在桌面上,双击“**安装 Ubuntu**…”。 + +![选择尝试 Ubuntu][21] + +![Ubuntu LIVE 桌面][22] + +- 在下一组屏幕中,根据需要选择语言和键盘布局。 +- 安装屏幕为您提供所需的安装类型。选择“正常安装”,然后在“其他选项”下选择两个选项。 +- 由于您是在虚拟磁盘空间中安装的,即它只是一个文件,因此您可以安全地选择“擦除磁盘并安装 Ubuntu”选项。 +- 点击立即安装并继续。 + +![选择语言][23] + +![选择键盘布局][24] + +![选择安装选项][25] + +![安装类型][26] + +![将更改写入磁盘][27] + +- 然后选择地区,添加姓名、用户和密码。这将是安装后登录 Ubuntu 的用户 id 和密码。 +- 单击“继续”开始安装。等到它完成。 + +![创建用户帐户][28] + +![Ubuntu 安装完成][29] + +安装完成后,单击“立即重新启动”。等待几秒钟,您将看到一个登录屏幕。使用用户 id 和密码登录。您应该看到 Ubuntu 桌面在 Windows 端 VirtualBox 中作为 VM 运行。 + +![登录 Ubuntu][30] + +![使用 Virtualbox 在 Windows 中运行的 Ubuntu][31] + +### 安装后配置和提示(可选) + +#### 安装客体机增强项 + +成功安装后,应为 Windows 主机和 Ubuntu 客体机安装 **VirtualBox 客体机增强项**。客体机增强项是一组需要安装在客体 VM(即 Ubuntu)内的软件包,以启用 **共享文件夹、双向复制 / 粘贴、自动更改分辨率** 和许多类似功能。 + +要安装它,请引导到 Ubuntu。从 VirtualBox 菜单中,选择“设备 > 插入客体机增强 CD 映像”。必要的软件包将安装在 Ubuntu 中。 + +![从菜单中选择客人添加][32] + +打开文件管理器并打开装入的文件夹,如下所示。然后右键单击 > 选择“在终端中打开”。 + +然后运行以下命令: + +``` +sudo ./VBoxLinuxAdditions.run +``` + +![打开已挂载的光盘并选择带有终端的选项][33] + +![VirtualBox 为 Windows 主机添加客体机增强项][34] + +完成上述命令后,重新启动 Ubuntu VM。 + +#### 启用 Windows 和 Ubuntu 之间的复制和粘贴 + +- 要在 Windows 和 Ubuntu 系统之间启用复制和粘贴,请从菜单中选择“设备 > 共享剪贴板 > 双向”。 + +![启用共享剪贴板][35] + +#### 关闭 Ubuntu VM + +- 理想情况下,您应该从自己的关机菜单中关闭 VM。但是,您也可以从 VirtualBox 主窗口关闭。右键单击 VM 名称并选择“关闭”>“关机”。 + +![关闭虚拟机][36] + +#### 如何删除 Ubuntu 并删除所有数据 + +- 如果要完全删除虚拟机(例如 Ubuntu)及其数据,请选择“删除”和“删除所有文件”。 + +![选择删除以移除 VM][37] + +![选择删除选项][38] + +### 结语 + +在本教程中,您学习了使用 VirtualBox 在 Windows(10 或 11)上安装 Ubuntu 的最简单方法。此外,您还学习了几步安装后配置 Ubuntu VM 的基本步骤。您可以对 VirtualBox 中的其他任何 Linux 发行版使用上述步骤。 + +如果您有任何疑问,欢迎在下面发表评论。 + +[下一篇:如何在 Windows 上安装 Python[ 初学者指南]][39] + +[_ 使用 Mastodon?关注我们的 floss.social/@debugpoint_][40] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) +校对:[校对者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 9445982f55c7c8d1a8542692d21bbb009fedec74 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 19 Jan 2023 23:59:09 +0800 Subject: [PATCH 194/357] RP @lxbwolf https://linux.cn/article-15460-1.html --- ...6 tips for building an effective DevOps culture.md | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) rename {translated/tech => published}/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md (60%) diff --git a/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/published/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md similarity index 60% rename from translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md rename to published/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md index 8307a8248d..d16f52a06b 100644 --- a/translated/tech/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md +++ b/published/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md @@ -3,34 +3,38 @@ [#]: author: "Yauhen Zaremba https://opensource.com/users/yauhen-zaremba" [#]: collector: "lkxed" [#]: translator: "lxbwolf" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15460-1.html" 构建高效的 DevOps 文化的 6 个技巧 ====== -你为什么要构建 [DevOps][1] 文化?开发和运营团队的精简协作有很多好处。效率是首要目标:提高新软件部署的速度,减少等待的时间。培养同事之间的信任可以提升员工的满意度,激发新的创新,并对盈利能力产生积极的影响。 +> 无论你是刚刚开始在你的组织中使用 DevOps,还是仅仅想改善你现有的文化,请考虑这些技巧以及它们与你组织的未来的关系。 -[DevOps][2] 是一个很广泛的范畴,大家的理解也见仁见智。每个公司对于如何实行 DevOps 也各不相同。这种意见的多样性实际上是一件好事--这么多的观点对于建立更强大的团队是很有用的。本指南将探讨在 DevOps 文化中鼓励同事之间更好地合作的最高技巧。 +![][0] -下面每个部分从不同的视角介绍 DevOps 文化,并争取将它引入你的工作中去。 +你为什么要构建 [DevOps][1] 文化?开发团队和运维团队的精简协作有很多好处。效率是首要目标:提高新软件部署的速度,减少等待的时间。培养同事之间的信任可以提升员工的满意度,激发新的创新,并对盈利能力产生积极的影响。 + +[DevOps][2] 是一个很广泛的思想,大家的理解也见仁见智。每个公司对于如何实行 DevOps 也各不相同。这种意见的多样性实际上是一件好事 —— 这么多的观点对于建立更强大的团队是很有用的。本指南将探讨在 DevOps 文化中鼓励同事之间更好地合作的最高技巧。 + +下面每个部分从不同的视角介绍 DevOps 文化,并探讨了将它引入员工队伍的方法。 ![DevOps includes collaboration, workflow, infosec, and iteration.][3] -### 流程的持续开发 +### 流程的持续发展 -DevOps 文化的这一核心原则使它与许多其他类型的工作区别开来。DevOps 哲学说,犯错是有积极意义的,因为这表明你在尝试新的想法。 +DevOps 文化的这一核心原则使它与许多其他类型的工作场所的风气区别开来。DevOps 哲学说,犯错是有积极意义的,因为这表明你在尝试新的想法。 DevOps 文化的核心是不停地创造。实际上,这意味着当测试结果显示事情由于你的改动而变坏时,不要懊恼。我们要认识到,进化的过程不是线性的,通往成功的道路也从来不是一条直线。 -DevOps 专家[Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你的团队尝试不寻常的任务,以得到新的领悟。 +DevOps 专家 [Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你的团队尝试不寻常的任务,以得到新的领悟。 -你的组织应该以利润为导向吗?你能允许你的团队尝试一些新东西(非指个人兴趣项目)吗?持续的流程开发意味着对升级目前的方法持开放态度。优秀的销售领导懂得,结果比出勤率更重要,因此,关注团队的工作方式而不是工作量的多少始终是关键。 +你的组织应该以利润为导向吗?你能允许你的团队尝试一些新东西(非指个人兴趣项目)吗?持续的流程发展意味着对升级目前的方法持开放态度。优秀的销售领导懂得,结果比出勤率更重要,因此,关注团队的工作方式而不是工作量的多少始终是关键。 ### 随时提供反馈并积极寻求反馈 -成员之间增加信任是蓬勃发展的 DevOps 文化的另一个关键特征。无论你的员工是在学习如何建立联盟网络联系,还是试图设计他们的下一个 [UX][5] 调查,每个人都应该对他们工作的反馈持开放态度。但是,除非你的团队成员尊重彼此的意见,并相信反馈是本着善意的精神提出的,否则这永远不会发生。 +成员之间增加信任是蓬勃发展的 DevOps 文化的另一个关键特征。无论你的员工是在学习如何建立联盟网络联系,还是试图设计他们的下一个 [用户体验][5] 调查,每个人都应该对他们工作的反馈持开放态度。但是,除非你的团队成员尊重彼此的意见,并相信反馈是本着善意的精神提出的,否则这永远不会发生。 这种文化听起来可能是很难培养的;事实上,一些公司会比其他公司更努力地实现这一点。诚然,给予和接受反馈的成功很大程度上取决于员工的个性。在招聘过程中,也可以对此进行筛选。 @@ -40,19 +44,19 @@ DevOps 专家[Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你 ### 不断改进 -在同事之间增加智力信任的基础上,你的团队应该寻找方法来改善其工作。DevOps 的性质意味着软件开发团队将比传统方法更迅速地进行部署。 +在同事之间增加对智力信任的基础上,你的团队应该寻找方法来改善其工作。DevOps 的性质意味着软件开发团队将比传统方法更迅速地进行部署。 -这种开放的改进文化可以对开发和运维以外的部门产生积极的影响。你也可以自己去探索,企业还有哪些领域会受到积极的影响。 +这种开放的改进文化可以对开发和运维以外的部门产生积极的影响。你也可以自己去探索企业还有哪些领域会受到积极的影响。 留意培训和提高技能的机会。即使一个培训课程没有广告上说的那么突出,但有机会与行业专家建立联系,并与未来建立联系,这可以提高你的组织内的思想多样性。 ### 为以后的开发保存当前的想法 -频繁使用的 [Git][7] 账户应该是你的 DevOps 工具链的一部分。你可以用 Git 作为软件开发和其他相关项目中产生的脚本的共同仓库。Git 作为 "版本控制" 工具而被熟知,Git 允许程序员保存他们工作的迭代、复用或改进其他人的工作。 +频繁使用的 [Git][7] 账户应该是你的 DevOps 工具链的一部分。你可以用 Git 作为软件开发和其他相关项目中产生的脚本的共同仓库。Git 作为 “版本控制” 工具而被熟知,Git 允许程序员保存他们工作的迭代、复用或改进其他人的工作。 -你的目标是有能力保留好的想法供将来使用。某个方法由于某种原因没有成功。然而,那套想法在当时是错误的,并不意味着它在未来永远无法成为有用的东西。 +你的目标是能够保留好的想法以供将来使用。某个方法由于某种原因没有成功。然而,那套想法在当时是错误的,并不意味着它在未来永远无法成为有用的东西。 -由于 DevOps 的整个重点在于生产环境中的软件的端到端所有权,因此保存开发的迭代真正支持这一原则。你希望看到对手头的软件测试项目的持续关注和投入。 +由于 DevOps 的整个重点在于生产环境中的软件的端到端所有权,因此节省开发的迭代真正支持这一原则。你希望看到对手头的软件测试项目的持续关注和投入。 一个简单的方法是要求开发者在开发者合同和最终项目报告中包含对未来工作的想法。确保技术服务经理知道他们应该要求提供在建设过程中出现的旁门左道的想法的例子。意识到这些小创新的人越多,在需要的时候就越有可能有人记住一个。 @@ -60,24 +64,23 @@ DevOps 专家[Gene Kim][4] 主张勇于承担风险和进行实验。鼓励你 目标是对彼此的工作角色以及它们之间的相互关系有一个共同的理解。你可以通过几个简单的方法实现这一目标,用一句话概括:坐在一起。邀请其他团队参加你们的会议,完整地分享用户反馈报告。一起吃午饭,一起计划虚拟的快乐时光,一般来说,要确保你的同事都在一起。大约 90% 的拥有成熟的 DevOps 协议的团队报告说,他们清楚地了解自己对其他团队的责任,而在不成熟的 DevOps 团队中,只有大约 46% 的工作者清楚地了解自己的责任。 -虽然与志同道合的人结成小团体,只与被雇来执行与你相同任务的员工一起玩耍是很诱人的,但这对整个企业来说是很糟糕的。无论你喜欢与否,所有的人都是多面手,能够在一系列的情况下贡献自己的独特才能。 +虽然与志同道合的人结成小团体,只与被雇来执行与你相同任务的员工在一起是很诱人的,但这对整个企业来说是很糟糕的。无论你喜欢与否,所有的人都是多面手,能够在一系列的情况下贡献自己的独特才能。 -密切协作的想法是尊重任何人对其周围正在进行的产品或工作流程提出改进建议的能力。如果你与公司内的其他部门保持一定的距离,你将会错过无数次分享智慧想法的机会。毕竟,你往往在交流中学习得最好。 +密切协作的理念是尊重任何人对其周围正在进行的产品或工作流程提出改进建议的能力。如果你与公司内的其他部门保持一定的距离,你将会错过无数次分享智慧想法的机会。毕竟,你往往在交流中学习得最好。 ### 致力于自动化 -你应该以提高效率和加速流程的方式,将单调的和重复的任务变为自动化。每个行业都有无聊的--说得直白一点,愚蠢的--每天或每周都要进行的工作。 +你应该以提高效率和加速流程的名义,寻求将单调的和重复的任务变为自动化。每个行业都有无聊的 —— 说得直白一点,就是愚蠢的 —— 每天或每周都要进行的工作。 -无论是手工将数据从一页复制到另一页,还是手工打出音频记录,每个级别的工作人员都应该坚持让机器在可能的情况下承担这些负担。现实是自动化技术每年都在进步,操作流程也应该如此。[自动化测试][8] 对 DevOps 非常关键,它是 CALMS 框架的第二个原则(其中的 “C”代表“文化”)。 - -你怎样才能实现这一点?邀请员工公开表达他们认为工作的哪些方面可以自动化,然后--这里是关键的部分--支持实现自动化所需的设施。这可能意味着每年花 600 美元订阅一个软件程序、一套完整的企业应用现代化解决方案或开发人员的两天时间来建立一个新的工具在内部使用。 +无论是手工将数据从一页复制到另一页,还是手工打出音频记录,每个级别的工作人员都应该坚持让机器在可能的情况下承担这些负担。现实是自动化技术每年都在进步,操作流程也应该如此。[自动化测试][8] 对 DevOps 非常关键,它是 CALMS 框架的第二个原则(其中的 “C” 代表 “文化”)。 +你怎样才能实现这一点?邀请员工公开表达他们认为工作的哪些方面可以自动化,然后 —— 这里是关键的部分 —— 支持实现自动化所需的设施。这可能意味着每年花 600 美元订阅一个软件程序、一套完整的企业应用现代化解决方案,或开发人员用两天时间来建立一个在内部使用新工具。 无论哪种方式,你都应该评估自动化的好处,考虑你可以为每个人节省多少时间。DevOps 的统计数据不断表明,现代公司通过整合这些有益的原则,年复一年地得到了很大的改善。 ### 探索成功的新工作方式 -文化转变不会在一夜之间发生。不过,你越早开始,就越早看到结果。根据我的经验,当变化是对以前的真正改进时,人们会接受它。DevOps 为这种改进提供了一个框架。无论你是刚刚在你的组织中开始使用 DevOps,还是仅仅想改善你现有的文化,请考虑以上几点以及它们与你组织的未来的关系。 +文化转变不会在一夜之间发生。不过,你越早开始,就越早看到结果。根据我的经验,当变化真正对以前进行了改进时,人们会接受它。DevOps 为这种改进提供了一个框架。无论你是刚刚在你的组织中开始使用 DevOps,还是仅仅想改善你现有的文化,请考虑以上几点以及它们与你组织的未来的关系。 -------------------------------------------------------------------------------- @@ -86,7 +89,7 @@ via: https://opensource.com/article/23/1/tips-effective-devops-culture 作者:[Yauhen Zaremba][a] 选题:[lkxed][b] 译者:[lxbwolf](https://github.com/lxbwolf) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -100,3 +103,4 @@ via: https://opensource.com/article/23/1/tips-effective-devops-culture [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 +[0]: https://opensource.com/sites/default/files/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png \ No newline at end of file From 7da35136b021ad8b18b5d4312ee8dc8908965906 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 20 Jan 2023 09:42:58 +0800 Subject: [PATCH 195/357] =?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 --- ...21213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md | 2 +- 1 file changed, 1 insertion(+), 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 529dffde10..dc3b81881c 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 @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/unicode-linux/" [#]: author: "Sylvain Leroux https://www.yesik.it/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From d3b757b0fa4f37490c264fc0ccd2cd27591fd730 Mon Sep 17 00:00:00 2001 From: Cubik Date: Thu, 19 Jan 2023 21:17:21 -0500 Subject: [PATCH 196/357] =?UTF-8?q?[=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90][?= =?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 | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 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 4fdfa8508a..2b86065ffe 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 @@ -138,15 +138,15 @@ CachyOS 是一个滚动发布的发行版,因此您可以期待它在 2023 年 ![risios][24] -In a sea of Arch and Ubuntu-based Linux distros, [risiOS][25] is a rare sight to see. +在基于 Arch 和 Ubuntu 的 Linux 发行版的海洋中,[risiOS][25]是一个少见的情况。 -Based on Fedora Linux, the project saw its beginnings in Seattle, USA. +该项目基于 Fedora Linux,其起源于美国西雅图。 -It uses the **GNOME desktop environment** to provide users with a highly customizable experience with a **customized ZSH version**. +它使用 **GNOME 桌面环境** 以为用户提供了一个高度可定制的体验,同时还提供了 **自定义的 ZSH 版本**。 -If you want to try a Fedora-based distro, this can be something new for you! +如果你希望尝试一个基于 Fedora 的发行版,这可能是你的新选择! -risiOS gets a stable release with minor updates pushed in between. It has much more to give in 2023. +risiOS 会在稳定版本中间推送一些小更新。在 2023 年,它还有更多的东西可以提供给你。 [risiOS][25] @@ -154,17 +154,17 @@ risiOS gets a stable release with minor updates pushed in between. It has much m ![exodia os][26] -Another Arch-based Linux distro!#$**? +#$**!又是一个基于 Arch 的 Linux 发行版? -Yes. 🤭 Well, it looks like this year, we have had enough of Arch-based distros, which is not necessarily bad! +是的。🤭 好吧,看起来今年我们已经有足够多的基于 Arch 的发行版了,这并不一定是坏事! -Meet [Exodia OS][27], an Arch-based Linux distro that aims to be highly customizable for users in cybersecurity fields. +认识一下 [Exodia OS][27],一个基于 Arch 的 Linux 发行版,旨在为安全领域的用户提供高度可定制的体验。 -Its feature set includes pre-installed **tools for all cybersecurity fields, TUI Apps, ElKowars wacky widgets (EWW), zsh, and more**. +其功能包括预安装的**适用于所有网络安全领域的工具、命令行界面应用、ElKowars wacky widgets (EWW)、zsh 等**。 -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. +他们为三个不同的使用场景提供了三个版本。您可以期待他们在 2023 年继续推送必要的更新和功能添加。 [Exodia OS][27] @@ -172,15 +172,15 @@ They offer three releases for different use cases. You can expect them to keep p ![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]. +乍一看,你可能会认为这是 Windows 7,但如果仔细观察,你会发现这是 [Kumandar Linux][29]。 -It is based on **Debian 11 and uses a customized version of XFCE**. +它基于**Debian 11,并使用自定义的 XFCE 版本**。 -The name stands for 'Commander' in English and pays homage to the developer's first computer, the [Commodore VIC20][30]. +该名称在中文中的含义为 “指挥官”,并致敬了开发人员的第一台电脑 [Commodore VIC20][30]。 -If you liked the Windows 7 experience but wanted the same thing on Linux. Then you can give this a try! +如果你喜欢 Windows 7,但想在 Linux 上体验同样的体验,那么你可以试试! -Currently, only the early-release candidate has been released. But you can expect a stable release in 2023, hopefully! +目前,该系统只发布了发布候选版本。但是,您可以期待在 2023 年发布稳定版本,希望如此! [Kumander][29] @@ -188,27 +188,27 @@ Currently, only the early-release candidate has been released. But you can expec ![ubuntu unity][31] -Declared as an official flavor of Ubuntu [earlier this year][32], Ubuntu Unity is a remix of Ubuntu. +[今年早些时候][32] 宣布为 Ubuntu 的官方版本,Ubuntu Unity 是 Ubuntu 的混合版本。 -It features the **Unity desktop interface** used in Ubuntu from 2010-2017, which was dropped in favor of GNOME. +它使用了 2010-2017 年 Ubuntu 中使用的 Unity 桌面界面,该界面后来被 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 的用户可以试试这个系统。它提供了 LTS 和非 LTS 版本。 [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. +或许 2023 年会有惊喜占据头版,或者一些现有的发行版会尝试一些不同的东西。 -Until then. +Until then. # 不太确定如何翻译 -_💬 Do tell me what distribution you are excited about in 2023?_ +_💬 请告诉我你在 2023 年期待着哪些发行版?_ -------------------------------------------------------------------------------- From ed81c0e26e44467ddebed381269ea39e3be5df06 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 20 Jan 2023 19:02:56 +0800 Subject: [PATCH 197/357] RP @wxy https://linux.cn/article-15461-1.html --- ... Learn to code with my retro computer program.md | 215 ++++++++++++++++++ ... Learn to code with my retro computer program.md | 210 ----------------- 2 files changed, 215 insertions(+), 210 deletions(-) create mode 100644 published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md delete mode 100644 sources/tech/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md diff --git a/published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md b/published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md new file mode 100644 index 0000000000..e7a5addcd4 --- /dev/null +++ b/published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md @@ -0,0 +1,215 @@ +[#]: 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: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15461-1.html" + +用复古电脑程序 Toy CPU 学习低级编程 +====== + +![][0] + +> 我写了一个名为 “Toy CPU” 的教育性复古计算机程序,以便我的学生能够学习机器语言。 + +我兼职教授大学课程,包括一个对所有专业开放的一般计算机主题的课程。这是一门入门课程,向学生讲授技术是如何运作的,以消除围绕计算的神秘感。 + +虽然不是计算机科学课程,但这门课的一个部分涉及计算机编程。我通常用非常抽象的术语谈论编程,所以不会让听众听不懂。但是今年,我想让我的学生以 “老派” 的方式做一些需要 “动手” 的编程。同时,我又想保持简单,以便让每个人都能跟上。 + +我喜欢将我的课程结构化,以显示你是如何从 “那里” 到 “这里” 的。理想情况下,我会让我的学生学习如何编写一个简单的程序。然后,我将从这里开始,展示现代编程是如何让开发人员创建更复杂的程序的。我决定尝试一种非常规的方法 —— 教学生学习终极的低级别编程语言:机器语言。 + +### 机器语言编程 + +早期的个人电脑如 Apple II(1977 年)、TRS-80(1977 年)和 IBM PC(1981 年)让用户用键盘输入程序,并在屏幕上显示结果。但计算机并不总是带有屏幕和键盘。 + +Altair 8800 和 IMSAI 8080(均为 1975 年制造)要求用户使用面板上的 “开关和灯” 输入程序。你可以用机器语言输入指令,使用一组开关,机器会点亮 LED 灯以代表每个二进制指令的 1 和 0。 + +![Altair 8800 计算机的图片][1] + +对这些早期机器进行编程,需要了解被称为 “操作码opcode” (操作代码的简称)的机器语言指令,以执行基本操作,如将两个数字相加或将一个值存储到计算机的存储器中。我想向我的学生展示程序员是如何通过开关和灯,手工输入一系列指令和内存地址的。 + +然而,在这门课上,使用实际的 Altair 8800 就有点太复杂了。我需要一些简单的、任何初级水平的学生都能掌握的东西。理想情况下,我希望能找到一个简单的 “业余” 复古计算机,其工作原理与 Altair 8800 相似,但我无法找到一个价格低于 100 美元的合适的 “类似 Altair” 的设备。我找到了几个 “Altair” 软件模拟器,但它们忠实地再现了 Altair 8800 的操作码,这对我的需求来说太过沉重。 + +我决定编写我自己的 “教育” 复古计算机。我称它为 “Toy CPU”。你可以在我的 [GitHub 代码库][2] 上找到它,包括几个可以运行的版本。第一版是一个实验性的原型,运行在 [FreeDOS][3] 上。第二版是一个更新的原型,在 Linux 上用 [ncurses][4] 运行。版本 3 是一个 FreeDOS 程序,在图形模式下运行。 + +### Toy CPU 的编程 + +Toy CPU 是一个非常简单的复古计算机。它只有 256 字节的内存和一个最小化的指令集,其目的是在复制 “开关和灯” 编程模式的同时保持简单化。它的界面模仿 Altair 8800,有一系列 8 个 LED 灯,分别代表计数器(程序的 “行号”)、指令、累积器(用于临时数据的内部存储器)和状态。 + +当你启动 Toy CPU 时,它通过清除内存来模拟 “启动”。当它启动时,它也会在屏幕右下方的状态灯中显示 “INI”(初始化)。“PWR”(电源)灯亮表示 Toy CPU 已被打开。 + +![Toy CPU 的启动屏幕][5] + +当 Toy CPU 准备好让你进入一个程序时,它通过状态灯指示 “INP”(“输入”模式),并让你从程序的计数器 0 开始。Toy CPU 的程序总是从计数器 0 开始。 + +在 “输入” 模式下,用上下方向键显示不同的程序计数器,按回车键编辑当前计数器上的指令。当你进入 “编辑” 模式时,Toy CPU 的状态灯上会显示 “EDT”(“编辑” 模式)。 + +![Toy CPU 编辑屏幕][6] + +Toy CPU 有一张速查表,被 “贴” 在显示屏的前面。它列出了 Toy CPU 可以处理的不同操作码。 + +- `00000000`(`STOP`):停止程序执行。 +- `00000001`(`RIGHT`):将累加器中的位向右移动一个位置。值 `00000010` 变成 `00000001`,`00000001` 变成 `00000000`。 +- `00000010`(`LEFT`):将累加器中的位向左移动一个位置。值 `01000000` 变成 `10000000`,`10000000` 变成 `00000000`。 +- `00001111`(`NOT`):对累加器进行二进制非操作。例如,值 `10001000` 变成 `01110111`。 +- `00010001`(`AND`):对累加器用存储在某一地址的值进行二进制与操作。该地址被存储在下一个计数器中。 +- `00010010`(`OR`):对累积器用存储在某一地址的值进行二进制或运算。 +- `00010011`(`XOR`):对累加器用存储在某一地址的值进行二进制异或运算。 +- `00010100`(`LOAD`):将一个地址的值加载(复制)到累加器中。 +- `00010101`(`STORE`): 存储(复制)累加器中的值到一个地址。 +- `00010110`(`ADD`):将存储在某一地址的数值加入到累加器中。 +- `00010111`(`SUB`):从累积器中减去储存在某一地址的数值。 +- `00011000`(`GOTO`):转到(跳到)一个计数器地址。 +- `00011001`(`IFZERO`):如果累加器为零,转到(跳到)一个计数器地址。 +- `10000000`(`NOP`):空操作,可以安全地忽略。 + +当处于 “编辑” 模式时,使用左右方向键选择操作码中的一个位,然后按空格键在关闭(0)和开启(1)之间翻转数值。当你完成编辑后,按回车键回到 “输入” 模式。 + +![Toy CPU 输入模式屏幕][7] + +### 一个示例程序 + +我想通过输入一个简短的程序来探索 Toy CPU,将两个数值相加,并将结果存储在 Toy CPU 的内存中。实际上,这执行的是算术运算 `A+B=C`。要创建这个程序,你只需要几个操作码: + +- `00010100`(`LOAD`) +- `00010110`(`ADD`) +- `00010101`(`STORE`) +- `00000000`(`STOP`) + +`LOAD`、`ADD` 和 `STORE` 指令需要一个内存地址,这个地址总是在下一个计数器的位置。例如,程序的前两条指令是: + +``` +计数器 0:00010100 +计数器 1:某个内存地址,第一个值 A 存放在那里 +``` + +计数器 0 中的指令是 `LOAD` 操作,计数器 1 中的值是你存储某个值的内存地址。这两条指令一起将内存中的数值复制到 Toy CPU 的累加器中,在那里你可以对该数值进行操作。 + +将一个数字 `A` 装入累加器后,你需要将数值 `B` 加到它上面。你可以用这两条指令来做: + +``` +计数器 2:00010110 +计数器 3:存储第二个值 B 的内存地址 +``` + +假设你把值 `1`(`A`)装入累加器,然后把值 `3`(`B`)加到它上面。现在累加器的值是 `4`。现在你需要用这两条指令把数值 `4` 复制到另一个内存地址(`C`): + +``` +计数器 4:00010101 +计数器 5:一个内存地址(C),我们可以在那里保存新的值 +``` + +把这两个值加在一起后,现在可以用这条指令结束程序: + +``` +计数器 6: 00000000 +``` + +计数器 6 之后的任何指令都可以供程序作为存储内存使用。这意味着你可以用计数器 7 的内存来储存值 `A`,计数器 8 的内存来储存值 `B` ,计数器 9 的内存来储存值 `C`。你需要将这些分别输入到 Toy CPU 中: + +``` +计数器 7:00000001(1) +计数器 8:00000011(3) +计数器 9:00000000(0,以后会被覆盖) +``` + +在弄清了所有指令和 `A`、`B` 和 `C` 的内存位置后,现在可以将完整的程序输入到 Toy CPU 中。这个程序将数值 1 和 3 相加,得到 4: + +``` +计数器 0:00010100 +计数器 1:00000111(7) +计数器 2:00010110 +计数器 3:00001000(8) +计数器 4:00010101 +计数器 5:00001001(9) +计数器 6:00000000 +计数器 7:00000001(1) +计数器 8:00000011(3) +计数器 9:00000000(0,以后会被覆盖) +``` + +要运行程序,在 “输入” 模式下按下 `R` 键。Toy CPU 将在状态灯中显示 “RUN”(“运行” 模式),并从计数器 0 开始执行你的程序。 + +Toy CPU 有一个明显的延迟,所以你可以看到它执行程序中的每一步。随着程序的进行,你应该看到计数器从 `00000000`(0)移动到 `00000110`(6)。在计数器 1 之后,程序从内存位置 7 加载数值 `1`,累积器更新为 `00000001`(1)。在计数器 3 之后,程序将加数值 `3`,并更新累加器显示 `00000100`(4)。累加器将保持这种状态,直到程序在计数器 5 之后将数值存入内存位置 9,然后在计数器 6 结束。 + +![在运行模式下的 Toy CPU][8] + +### 探索机器语言编程 + +你可以使用 Toy CPU 来创建其他程序,并进一步探索机器语言编程。通过用机器语言编写这些程序来测试你的创造力。 + +### 一个在累积器上闪灯的程序 + +你能点亮累加器上的右四位,然后是左四位,然后是所有的位吗?你可以用两种方法之一来写这个程序。 + +一种直接的方法是,从不同的内存地址加载三个数值,像这样: + +``` +计数器 0:LOAD +计数器 1:“右边” +计数器 2:LOAD +计数器 3:“左边” +计数器 4:LOAD +计数器 5:“所有” +计数器 6:STOP +计数器 7:00001111(“右边”) +计数器 8:11110000(“左边”) +计数器 9:11111111(“全部”) +``` + +写这个程序的另一种方法是尝试使用 `NOT` 和 `OR` 二进制操作。这样可以得到一个更小的程序: + +``` +计数器 0:LOAD +计数器 1:“右边” +计数器 2:NOT +计数器 3:OR +计数器 4:“右边” +计数器 5:STOP +计数器 6:00001111(“右边”) +``` + +### 从一个数字开始倒数 + +你可以把 Toy CPU 作为一个倒数计时器。这个程序行使 `IFZERO` 测试,只有当累加器为零时,程序才会跳转到一个新的计数器: + +``` +计数器 0:LOAD +计数器 1:“初始值” +计数器 2:IFZERO(这也是倒计时的“开始”) +计数器 3:“结束” +计数器 4:SUB +计数器 5:“1” +计数器 6:GOTO +计数器 7:“开始” +计数器 8:STOP +计数器 9:00000111(“初始值”) +计数器 10:00000001(“1”) +``` + +Toy CPU 是学习机器语言的一个好方法。我在入门课程中使用了 Toy CPU,学生们说他们发现写第一个程序很困难,但写下一个程序就容易多了。学生们还表示,用这种方式编写程序其实很有趣,他们学到了很多关于计算机实际工作的知识。Toy CPU 既具有教育性,也很有趣味性! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/learn-machine-language-retro-computer + +作者:[Jim Hall][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/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 +[0]: https://opensource.com/sites/default/files/lead-images/retro_old_unix_computer.png \ No newline at end of file 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 deleted file mode 100644 index 3bb59671ba..0000000000 --- a/sources/tech/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md +++ /dev/null @@ -1,210 +0,0 @@ -[#]: 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 6541679f7b9781e3fb0c4e5560cab4d10d21386b Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Fri, 20 Jan 2023 21:05:01 +0800 Subject: [PATCH 198/357] translated --- ... 11 tips for writing a good Git commit message.md | 185 ------------------ ... 11 tips for writing a good Git commit message.md | 185 ++++++++++++++++++ 2 files changed, 185 insertions(+), 185 deletions(-) delete mode 100644 sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md create mode 100644 translated/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 deleted file mode 100644 index ae6acb59d1..0000000000 --- a/sources/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md +++ /dev/null @@ -1,185 +0,0 @@ -[#]: 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 diff --git a/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md b/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md new file mode 100644 index 0000000000..f78aab08dc --- /dev/null +++ b/translated/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: "ZhangZhanhaoxiang" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +编写好 Git 提交消息的 11 个技巧 +====== + +最近,当需要更新时,我一直在密切关注从产品和服务获得的变更日志。以下是一些示例: + +- 修复了一些错误。 +- 进行了一些可访问性改进。 +- 我们已经进行了改进并修复了错误,以实现更顺畅地运行。 + +当我想到我作为一名初级开发人员发出的一些最初的承诺信息时,我不得不沮丧地垂下头: + +- 用鼠标点了一下,现在一切似乎都正常了。 +- 执行了程序员 X 告诉我的操作,现在横幅是蓝色的。 + +这可能令人沮丧!我向我们的贡献者群体提出了以下问题: + +- 什么是好的 Git 提交消息? +- 什么是坏的 Git 提交消息? +- 你认为一个项目应该有哪些关于提交消息所写内容的规则? + +以下是他们的答案: + +### 易阅读的文笔是关键 + +与你写任何东西一样,你应该考虑谁会阅读它。然后相应地调整信息的数量和深度。 + +提高你的自然语言和写作技能对于软件开发的顺利职业生涯至关重要。重要的不仅仅是代码。 + +**—[Camilla Conte][1]** + +### 具有描述性,不要假设 + +我花了很多时间在 OpenStack[2] 社区中进行合作,与我在像“野外”一样随意的其他项目中看到的相比,它的代码审查员有一些相当严格的标准。 + +我撰写一条可靠的提交消息的时间通常要比编写实际的代码实现或修复程序的时间长得多。有时,提交消息所需的时间可能会比它们解释的差异长很多倍。 + +总结一些贡献者指导: + +- 描述为什么要做出改变,而不仅仅是改变了什么 +- 第一个提交行是最重要的(就像电子邮件的主题行) +- 不要自认为审查人员了解你正在修复的原始问题 +- 不要自认为审查者可以访问外部 web 服务或网站(总结缺陷报告和其他相关讨论) +- 不要假设代码是不言自明的和自我记录的(尽管没有必要重复您在代码注释中也提出的观点) +- 不要只包含与更改的早期修订相关的信息(我们希望贡献者将修订压缩在一起,并相应地编辑其提交消息)。 + +《OpenStack 贡献者指南》中有一个关于该主题的简短章节:[https://docs.openstack.org/contributors/common/git.html#commit-messages][3] + +**—[Jeremy Stanley][4]** + +### 你未来的自己会感谢你 + +我非常同意杰里米的观点。1000 份地支持。 + +Jeremy 说:“描述为什么要做出改变,而不仅仅是改变了什么。” + +想象一下,你是旁观者,在遥远的未来,试图理解这个提交。 + +正如老话所说,设身处地为他人着想。 + +**—[Leigh Morresi][5]** + +### 使用 bug 的 ID + +我建议在提交消息的开头添加 bug ID,以便稍后使用 [`grep` 命令][6] 更容易跟踪提交。 + +例如: + +``` +$ git commit -m "BZ#19xxxxx +``` + +要写出深思熟虑的提交,请考虑以下事项: + +- 我为什么要做这些更改? +- 我的更改产生了什么影响? +- 为什么有更改的必要? +- 更改的依据是什么? + +**—[Agil Antony][7]** + +### 讲述整个故事 + +我喜欢想象每个提交消息都有一个隐藏的前缀,上面写着“By applying this(通过应用这个)”。 + +一个好的提交消息包括将要发生的事情以及原因。仅仅有工作任务清单作参考是不够的,因为这分散了信息;Git 是去中心化的。作为一名软件开发人员,我想知道为什么当前要考虑做出更改。正在解决的具体问题是什么?考虑(并放弃)了哪些替代解决方案?在创建变更集的过程中发现了哪些影响当前内容的意外情况? + +缩短提交消息没有什么用。你未来的自己和未来的同事会感激你深入解释问题,以及为什么这个变更集是解决方案。认真学习和利用那些有丰富“生活经验”的“烹饪”博客。然而,在此,仅仅是把生活经验替换成了项目的问题罢了(LCTT 译注:意思是要认真学习和模仿优秀、详细的 commit)。 + +**—[Lisa Seelye][8]** + +### 但不要过于冗长 + +一个好的 git 提交消息包含有关所做操作的信息,而不要包含其他信息。例如,如果您需要更新.gitignore,只需写“updated .gitignore”即可。人们可以自行深入到提交本身中了解更多细节。它不需要冗长。 + +令人反感的提交消息类似于“哦,废话”或“试试这个”。当然,我对此感到内疚,但这对于任何需要看一眼提交的人来说都没有任何帮助。 + +提交信息的规则非常主观。他们可能因领导和团队而异。但至少要提供一些有关提交的上下文信息。特别是如果它是一个大的更改。没有人有时间浏览 1000 多个具有重大更改历史的文件。 + +**—[Miriam Goldman][9]** + +### 使用现在时 + +我喜欢用现在时而不是将来时的术语编写项目经理风格的提交消息(例如,“add”而不是“added”)。然而,这通常只有在频繁提交时才有可能。当你面临最后期限时,你能记住的只有“我是如何做的”而已。然而,写得好的提交不仅有助于合作者,而且有助于提交者回忆历史。 + +**—[Chris Okpada][10]** + +### 不要依赖链接 + +我想提醒同事的一件事是,你不仅仅是向给你的提交作批准的人解释。你还将向未来的开发人员和用户解释,他们会发现这提交有利有弊,或者指责操作,并试图了解其相关性。 + +如果提供的唯一的上下文是指向某个外部系统的链接,并且在未来很长一段时间内,它所链接的系统不再使用,或者该用户无法访问,那么您的提交消息将变得无用,也相当于是空白的。 + +我经常去挖掘一些开源项目的 Git 历史,发现有些提交消息无非就是一个 bug ID,或者是某个公司内部的和专用缺陷跟踪器的链接。 + +不要依赖链接! + +**—[Jeremy Stanley][4]** + +### 清晰简洁的变更日志 + +作为一名发行沟通经理,我经常阅读整个发行版。我还与开发人员会面,讨论任何尚未明确的领域。然后我很早就测试了这个版本。之后,我将通过寻找变更日志和相应的修订或新内容来撰写发布帖子。 + +变更日志是开发人员的个人提醒,但也有相应的提议和问题。您应该适当地将产品名称大写,使用拼写检查器,与标点符号和句子结构保持一致。首席开发人员也应该校对这些。您的客户,即开发人员,正在阅读这些内容。在运行更新之前,他们应该了解哪些信息能更好地为客户服务? + +**—[Courtney Robertson][11]** + +### 具体一点 + +作为一个频繁发布的管理者,我喜欢将组件命名为提交的消息,以及对更改内容的简要描述。在我们忘记了你聪明的分支名称之后,还可以参考一下这项工作的请求来自何处,这有助于将修复程序联系在一起。 + +- “fix fatal error”并不是理想的提交。 + +- “ISS-304: Fix fatal error in Login Access Control function for users with the Partner role”更好。 + +- “ISS-304: Login Access Control: fix fatal error in getPartnerId()”也是更好。 + +我可以查看 Git 提交、分支、合并提交之间的整个关系,并检查更改的各个行和文件。但我在发布过程中没有这样的时间。我希望能够回到项目管理工具中这项工作的来源,了解哪些组件正在被更改,以及以何种方式进行更改。 + +**—[Ryan Price][12]** + +### 让它成为一种习惯 + +我最喜欢犯的错误是“在我切换分支之前提交”,因为我必须处理其他更紧急的事情。有时候,我需要把我目前的工作提交给一个完全不同的项目。我的经理的策略是让我们像平时一样工作。但当我们重新启动时,他希望我们在有意义的地方压缩提交,并编写更好的消息。我不能说我们总是这样做,但他的方法确实有道理。 + +我也有很多“这是坏的,不知道为什么”类型的消息(哈哈),我尝试了一些东西,但想在尝试其他东西之前提交该尝试,以防方法 A 比方法 B 更接近解决问题。我已经写了 10 多年了。 + +**—[RachieVee][13]** + +你生活中的提交信息建议或提示是什么?让我们在评论中知道。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/git-commit-message + +作者:[AmyJune Hineline][a] +选题:[lkxed][b] +译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) +校对:[校对者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 db3054221199472d359f74e7c76b1d2c9a7ae978 Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Fri, 20 Jan 2023 21:21:51 +0800 Subject: [PATCH 199/357] translating --- sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 2f59cf6dcc..d241b3a04d 100644 --- a/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md +++ b/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/java-methods" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "ZhangZhanhaoxiang" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8ff00c49bdc1e4e4ef3619844f41aa4e9c06671b Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Fri, 20 Jan 2023 22:22:27 +0800 Subject: [PATCH 200/357] translated --- ...30110.3 ⭐️⭐️ How to use methods in Java.md | 187 ------------------ ...30110.3 ⭐️⭐️ How to use methods in Java.md | 187 ++++++++++++++++++ 2 files changed, 187 insertions(+), 187 deletions(-) delete mode 100644 sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md create mode 100644 translated/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 deleted file mode 100644 index d241b3a04d..0000000000 --- a/sources/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md +++ /dev/null @@ -1,187 +0,0 @@ -[#]: 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: "ZhangZhanhaoxiang" -[#]: 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 - diff --git a/translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md b/translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md new file mode 100644 index 0000000000..494d882dd3 --- /dev/null +++ b/translated/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: "ZhangZhanhaoxiang" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Java 中使用方法 +====== + +Java 中的方法(在许多其他编程语言中称为“函数”)是被组合在一起并标记为可重用的代码的一部分。方法很有用,因为它们允许您在不重写相同代码的情况下执行相同的操作或一系列操作,这不仅意味着您的工作量减少,还意味着出现问题时需要维护和调试的代码减少。 + +类中存在一个方法,因此标准 Java 样板代码适用: + +``` +package com.opensource.example; + +public class Example { + // 在此写代码 +} +``` + +在这样一个简单的单文件应用程序中,包定义并不是绝对必要的,但它是一个很好的习惯,而且大多数 IDE 都强制执行它。 + +默认情况下,Java 会寻找在类中运行的“main”方法。方法可以是公有的或私有的,也可以是静态的或非静态的,但 main 方法必须是公有的和静态的,Java 编译器才能识别和使用它。当方法是公有的时,它可以从类外部执行。要在程序启动时调用“Example”类,其“main”方法必须是可访问的,因此将其设置为“public”。 + +下面是两个方法的简单演示:一个“main”方法在调用“Example”类时默认执行,另一个“report”方法接受“main”的输入并执行简单操作。 + +为了模拟任意数据输入,我使用了 if-then 语句,该语句根据您启动应用程序的时间在两个字符串之间进行选择。换句话说,“main”方法首先设置一些数据(在现实生活中,这些数据可以来自用户输入,也可以来自应用程序其他地方的其他方法),然后“调用”“report”方法,将处理后的数据作为输入提供: + +``` +package com.opensource.example; + +public class Example { + public static void main(String[] args) { + // 生成一些数据 + long myTime = System.currentTimeMillis(); + String weather; + + if ( myTime%2 == 0 ) { + weather = "party"; + } else { + weather = "apocalypse"; + } + + // 调用其他方法 + report(weather); + } + + private static void report(String day) { + System.out.printf("Welcome to the zombie %s\n", day); + } +} +``` + +运行代码: + +``` +$ java ./Example.java +Welcome to the zombie apocalypse +$ java ./Example.java +Welcome to the zombie party +``` + +请注意,同一“report”方法有两个不同的结果。当然,在这个简单的演示中,不需要第二种方法。模拟数据生成的 if-then 语句可能生成了相同的结果。但是,当一个方法执行一项复杂的任务时,比如将图像调整为缩略图,然后使用调整后的图像在屏幕上生成小部件,那么附加组件的“费用”就很有意义了。 + +### 何时使用 Java 方法 + +很难知道何时使用方法,何时只将数据发送到 [Java 流][1]或循环中。如果你面临这个决定,答案通常是使用一种方法。原因如下: + +- 方法开销少。它们不会给代码增加处理开销。 +- 方法减少代码的行数。 +- 方法是特定的。查找名为“resizeImage”的方法通常比查找隐藏在从驱动器加载图像的函数中某个循环中的代码更容易。 +- 方法是可重用的。当您第一次编写方法时,您可能会 _认为_ 它只对应用程序中的一个任务有用。然而,随着应用程序的编写,您可能会发现自己正在使用一种您认为“已完成”的方法。 + +### 函数式编程与面向对象编程 + +函数式编程利用方法作为执行任务的主要构造。创建一个方法,该方法接受一种数据,处理该数据,并输出新数据。将许多方法串在一起,您就拥有了一个动态且功能强大的应用程序。像 C 和 [Lua][2] 这样的编程语言就是这种编码风格的例子。 + +用代码完成任务的另一种方式是 Java 使用的面向对象模型。在面向对象编程中,方法是模板的组成部分。您可以创建对象,而不是将数据从一个方法发送到另一个方法,并可以通过使用它们的方法来更改它们。 + +从面向对象的角度来看,这是一个简单的 zombie apocalypse(僵尸末日)演示程序。在函数方法中,我使用一种方法生成数据,另一种方法使用该数据执行操作。面向对象的等价物是具有表示工作单元的类。这个示例应用程序向用户显示一条当天的消息,宣布这一天会有 zombie party(僵尸派对)或 zombie apocalypse。编写一个“day”对象,然后查询该对象以了解其特性是有意义的。作为演示面向对象构造的不同方面的借口,新的示例应用程序还将统计有多少僵尸出现在 party 上(或 apocalypse)。 + +Java 为每个类使用一个文件,因此要创建的第一个文件是“Day.Java”,它用作 Day 对象: + +``` +package com.opensource.example; + +import java.util.Random; + +// 类 +public class Day { + public static String weather; + public int count; + +// 构造方法 + public Day() { + long myTime = System.currentTimeMillis(); + + if ( myTime%2 == 0 ) { + weather = "paradise"; + } else { + weather = "apocalypse"; + } + } + +// 方法 + public String report() { + return weather; + } + + public int counter() { + Random rand = new Random(); + count = count + rand.nextInt(100); + + return(count); + } +} +``` + +在“类”部分中,创建了两个域:“weather”和“count”。weather 是静态的。在一天的过程中(在这种假想的情况下),weather 不会改变。要么是 party,要么是 apocalypse,持续了一整天。然而,僵尸的数量在一天中会增加。 + +在“构造方法”部分,确定当天的天气。它是作为一个 [构造方法][3] 完成的,因为它只在类最初被调用时发生一次。 + +在“方法”部分,“report”方法只返回由构造方法确定和设置的天气报告。然而,“counter”方法生成一个随机数,并将其添加到当前僵尸计数中。 + +换句话说,这个类做了三件不同的事情: + +- 表示应用程序定义的“day”。 +- 设置当天不变的天气报告。 +- 设置一天中不断增加的僵尸数量。 + +要使用这所有,请创建第二个文件: + +``` +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()); + } +} +``` + +因为现在有两个文件,所以使用 Java IDE 运行代码是最简单的,但是如果不想使用 IDE,可以创建自己的 [JAR 文件][4]。运行代码以查看结果: + +``` +Welcome to a zombie apocalypse +Welcome to a zombie apocalypse +There are 35 zombies out today. +UPDATE: 67 zombies. UPDATE: 149 zombies. +``` + +无论调用“report”方法多少次,“weather”都保持不变,但调用“counter”方法的次数越多,僵尸的数量就会增加。 + +### Java 方法 + +方法(或函数)是编程中的重要组成。在 Java 中,您可以将它们作为函数式编程的单个类的一部分使用,也可以在面向对象编程的类之间使用它们。两种类型的编程对于解决同一个问题有不同的视角,因此没有对与错之分。通过反复尝试,积累一点经验,你会知道哪一个最适合某个特定的问题。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/java-methods + +作者:[Seth Kenlon][a] +选题:[lkxed][b] +译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) +校对:[校对者 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 f0a7360d559347dca4dd6bcc03a0dba5778c934d Mon Sep 17 00:00:00 2001 From: Cubik Date: Fri, 20 Jan 2023 09:35:35 -0500 Subject: [PATCH 201/357] =?UTF-8?q?[=E7=A7=BB=E5=8A=A8=E7=BF=BB=E8=AF=91][?= =?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 --- .../20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md (100%) diff --git a/sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md similarity index 100% rename from sources/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md rename to translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md From 459607a7c0dd5561bbef340cf5cc239125efe202 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 21 Jan 2023 11:57:02 +0800 Subject: [PATCH 202/357] R @Cubik65536 --- ...️ 11 New Distros to look forward to in 2023.md | 152 +++++++++--------- 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index 2b86065ffe..d460e07895 100644 --- a/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -3,26 +3,26 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "Cubik65536" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 2023 年值得期待的 11 个新发行版 ====== -你对 2023 年有什么期待?试试这些发行版吧! +> 你对 2023 年有什么期待?试试这些发行版吧! ![2023 年值得期待的 11 个新发行版][1] 是时候向 2022 年说再见了!📆 -2022 年有很多发行版发布,有些比其他的更出色。 +2022 年有很多发行版发布,其中有一些非常出色。 -随着更加关注用户体验和性能方面的趋势,Linux 发行版在过去的一年中有了显著的发展。 +随着人们越来越关注用户体验和性能,Linux 发行版在过去的一年中有了显著的发展。 -对于你,最终用户,你现在有几个选择。你可以尝试一些 [对初学者友好的选项][2] 或者尝试一些 [高级用户的发行版][3]。 +对于你我这样的最终用户,可以有几个选择。你可以尝试一些 [对初学者友好的选项][2] 或者尝试一些 [面向资深用户的发行版][3]。 -在本文中,我将重点介绍一些你可以尝试的新发行版。这些发行版可能不一定能取代现有的流行发行版。但是,如果你想尝试一些新的东西,可以随意浏览列表。 +在本文中,我将重点介绍一些你可以尝试一下看看的新发行版。这些发行版可能不一定能取代现有的流行发行版。但是,如果你想尝试一些新的东西,可以试试列表中的这些。 所以,你在 2023 年可以期待什么?🤔 @@ -30,183 +30,183 @@ > 💡 新的发行版可能不适合生产环境。如果你不介意尝试新的东西,可以尝试这些选项。 -### 1. Vanilla OS +### 1、Vanilla OS -![vanilla os][4] +![Vanilla OS][4] -Ubuntu 的发行版,是 [Bottles][5] 的创建者 Mirko Brombin 的心血结晶。 +Vanilla OS 是一个基于 Ubuntu 的发行版,它是 [Bottles][5] 的创建者 Mirko Brombin 的心血结晶。 -它旨在提供一个具有**干净,原生的 GNOME 体验,以及按需不变性**和优秀的首次安装体验。 +它旨在提供一个具有**干净、原生的 GNOME 体验,以及按需不变性on-demand immutability**和优秀的首次安装体验。 -> LCTT 译注:按需不变性(on-demand immutability),指一个可以按需启用的功能,用于确保系统文件不会被随意更新。 +> LCTT 译注:按需不变性on-demand immutability,指一个可以按需让文件不可更改的功能,用于确保系统文件不会被随意更新。 可参考 [此链接](https://documentation.vanillaos.org/docs/almost/)。 如果你想尝试一些新的东西并且想尝试一下按需不变性这个令 Vanilla OS 如此独特的功能,可以尝试一下这个发行版。 -它还没有,在一段时间内也不会收到稳定版本,并且准备在 2023 年收到许多改进。 +它还没有稳定版本,在一段时间内也不会有,预计将在 2023 年进行许多改进。 -[Vanilla OS][6] +> **[Vanilla OS][6]** -### 2. XeroLinux +### 2、XeroLinux -![xeroxlinux][7] +![XeroLinux][7] -Steve,也就是 TechXero,开始了 [XeroLinux][8] 作为一个兴趣项目,这个项目并不是一个主流发行版,也没有各种花里胡哨的东西。 +这个兴趣项目 [XeroLinux][8] 是 Steve(即 TechXero)启动的,这个项目并不打算成为一个主流发行版,也没有各种花里胡哨的东西。 -Arch Linux 的 **'养眼' 版本** 提供了令人愉快的开箱即用体验和一些令人兴奋的功能。 +这个 “养眼” 版的 Arch Linux 衍生版提供了令人愉快的开箱即用体验和一些令人兴奋的功能。 -如果你想要一个更加易用的 Arch Linux 体验,可以尝试这个。 +如果你希望获得更加易用的 Arch Linux 体验,可以尝试这个。 **从 2023 年 1 月起**,XeroLinux 将切换到每月发布的计划。所以,你可以期待 2023 年有很多更新! -[XeroLinux][9] +> **[XeroLinux][9]** -### 3. Crystal Linux +### 3、Crystal Linux -![crystal linux][10] +![Crystal Linux][10] Crystal Linux 是一个即将发布的基于 Arch 的发行版,它希望**提供一个易于使用的桌面体验,以及现代 Linux 技术**。 在目前的状态下,它可能不适合新手,而具有 Linux 使用经验的人更有可能喜欢它。 -所以,就目前而言,我建议已经熟悉 Linux 的用户尝试一下 Crystal Linux。 +所以,就目前而言,我建议已经熟悉 Linux 的用户可以尝试一下 Crystal Linux。 我预计 Crystal Linux 将在 2023 年有一个稳定版本,该版本将具有许多功能和改进,而这些功能和改进都是基于目前可用的 [beta 版本][12]。 -[Crystal Linux][12] +> **[Crystal Linux][12]** -### 4. TUXEDO OS +### 4、TUXEDO OS -![tuxedo os][13] +![TUXEDO OS][13] -[TUXEDO OS][14] 是一个由 TUXEDO Computers(一个专注 Linux 的硬件制造商)提供的基于 Ubuntu 的发行版。 +[TUXEDO OS][14] 是一个由 TUXEDO 计算机公司(一个专注 Linux 的硬件制造商)提供的基于 Ubuntu 的发行版。 -它提供了 KDE Plasma 桌面环境,还有一些额外的功能,例如 **TUXEDO Control Center** 用于微调硬件,以及 **TUXEDO Tomte**,一个用于解决驱动程序与缺少软件包的问题的配置服务。 +它提供了 KDE Plasma 桌面环境,还有一些额外的功能,例如用于微调硬件的 **TUXEDO 控制中心**,以及一个用于解决驱动程序与缺少软件包的问题的配置服务 **TUXEDO Tomte**。 如果你想要一个**不同的 KDE 驱动的体验**,我建议你尝试一下。 -最开始,它仅仅被用作 TUXEDO 笔记本和台式电脑的预装系统提供。 +最开始,它只作为预装系统在 TUXEDO 的笔记本和台式电脑上提供。 -但是后来,它在 2022 年 9 月收到了一个通用版本,称为“TUXEDO OS 1”。它将在 2023 年收到许多更新。 +但是后来,它在 2022 年 9 月获得了一个通用版本,称为 “TUXEDO OS 1”。它将在 2023 年获得大量更新。 -[TUXEDO OS][15] +> **[TUXEDO OS][15]** -### 5. EuroLinux +### 5、EuroLinux -![euro linux][16] +![EuroLinux][16] -一个具有**企业级特性**的,基于 RHEL 的发行版就是 [EuroLinux][17]。它在一个可靠的包中提供了稳定性和安全性。 +[EuroLinux][17] 是一个具有**企业级特性**的、基于 RHEL 的发行版。它以可靠的软件包提供了稳定性和安全性。 -基于 **RHEL 9**,它可以提供与其他 [基于 RHEL 的服务器发行版][18](如 Rocky Linux,CentOS,AlmaLinux 等)的无缝兼容性。 +它基于 **RHEL 9**,可以提供与其他 [基于 RHEL 的服务器发行版][18](如 Rocky Linux,CentOS,AlmaLinux 等)的无缝兼容性。 -它旨在通过在屏幕底部实现半透明菜单栏,以熟悉的用户界面布局吸引 Windows 和 macOS 用户。 +它旨在以熟悉的用户界面布局吸引 Windows 和 macOS 用户,在屏幕底部提供了一个半透明的菜单栏。 -你应该尝试一下,因为整体包都很合适,可以同时满足 Linux 和 Windows/macOS 用户。 +你应该尝试一下,因为整个软件包相当充分,可以同时满足 Linux 和 Windows/macOS 用户的需要。 它现在已经发布了稳定版本,也在 2023 年有更新计划。 -[EuroLinux Desktop][19] +> [EuroLinux][19] -### 6. Zinc +### 6、Zinc -![zinc][20] +![Zinc][20] -[Zinc][21] 是一个 **基于 Ubuntu 的发行版**,它已经为提供独特的体验进行了调整。现有的 Ubuntu 用户可能会惊讶于它所提供的内容。 +[Zinc][21] 是一个 **基于 Ubuntu 的发行版**,经过了调整后提供了一个独特的体验。现有的 Ubuntu 用户可能会惊讶于它所提供的内容。 -基于 **Xubuntu** 的最新 LTS 版本,使用了 XFCE 桌面环境,并对其进行了许多改进,例如集成的 Linux AppImage 支持,deb-get 包安装程序,BTRFS 作为默认文件系统等。 +它基于 **Xubuntu** 的最新 LTS 版本,使用了 XFCE 桌面环境,并对其进行了许多改进,例如集成的 Linux AppImage 支持、deb-get 包安装程序、BTRFS 作为默认文件系统等。 如果你正确的配置了它,它可以成为你的日用操作系统的替代品。 -它遵循稳定的发布模式,因此您可以期待 2023 年的重大更新! +它遵循稳定的发布模式,因此你可以期待 2023 年的重大更新! -[Zinc][21] +> **[Zinc][21]** -### 7. CachyOS +### 7、CachyOS -![cachyos][22] +![CachyOS][22] [CachyOS][23] 尝试使 **Arch Linux 变得对初学者更加友好**,让任何人都可以使用。它很受欢迎,因为它具有高度的可定制性,而且还拥有最新的软件。 -它旨在为您提供一个快速、安全且易于使用的操作系统。 +它旨在为你提供一个快速、安全且易于使用的操作系统。 该操作系统适用于想要试验和尝试新事物的用户。 -CachyOS 是一个滚动发布的发行版,因此您可以期待它在 2023 年收到大量更新。 +CachyOS 是一个滚动发布的发行版,因此你可以期待它在 2023 年获得大量更新。 -[CachyOS][23] +> **[CachyOS][23]** -### 8. risiOS +### 8、risiOS -![risios][24] +![risiOS][24] -在基于 Arch 和 Ubuntu 的 Linux 发行版的海洋中,[risiOS][25]是一个少见的情况。 +在基于 Arch 和 Ubuntu 的 Linux 发行版的海洋中,[risiOS][25] 是一道难得的风景。 该项目基于 Fedora Linux,其起源于美国西雅图。 -它使用 **GNOME 桌面环境** 以为用户提供了一个高度可定制的体验,同时还提供了 **自定义的 ZSH 版本**。 +它使用 **GNOME 桌面环境** 为用户提供了一个高度可定制的体验,同时还提供了 **自定义的 ZSH 版本**。 如果你希望尝试一个基于 Fedora 的发行版,这可能是你的新选择! -risiOS 会在稳定版本中间推送一些小更新。在 2023 年,它还有更多的东西可以提供给你。 +risiOS 会在稳定版本间隔中推送一些小更新。在 2023 年,它还有更多的东西可以提供给你。 -[risiOS][25] +> **[risiOS][25]** -### 9. Exodia OS +### 9、Exodia OS -![exodia os][26] +![Exodia OS][26] -#$**!又是一个基于 Arch 的 Linux 发行版? + #$**!又是一个基于 Arch 的 Linux 发行版? -是的。🤭 好吧,看起来今年我们已经有足够多的基于 Arch 的发行版了,这并不一定是坏事! +是的。🤭 好吧,看起来今年我们已经受够了基于 Arch 的发行版了,这并不一定是坏事! 认识一下 [Exodia OS][27],一个基于 Arch 的 Linux 发行版,旨在为安全领域的用户提供高度可定制的体验。 -其功能包括预安装的**适用于所有网络安全领域的工具、命令行界面应用、ElKowars wacky widgets (EWW)、zsh 等**。 +其功能包括**为各种网络安全领域预装的工具、命令行界面应用、ElKowars wacky widgets (EWW)、Zsh 等**。 如果你是一个网络安全专家或爱好者,你可以试试! -他们为三个不同的使用场景提供了三个版本。您可以期待他们在 2023 年继续推送必要的更新和功能添加。 +他们为三个不同的使用场景提供了三个版本。你可以期待他们在 2023 年继续推送必要的更新和功能添加。 -[Exodia OS][27] +> **[Exodia OS][27]** -### 10. Kumandar Linux +### 10、Kumandar Linux -![kumander linux][28] +![Kumandar Linux][28] 乍一看,你可能会认为这是 Windows 7,但如果仔细观察,你会发现这是 [Kumandar Linux][29]。 -它基于**Debian 11,并使用自定义的 XFCE 版本**。 +它基于**Debian 11,并使用自定义的 XFce 版本**。 -该名称在中文中的含义为 “指挥官”,并致敬了开发人员的第一台电脑 [Commodore VIC20][30]。 +该名称在中文中的含义为 “指挥官”,以向开发者的第一台电脑 [Commodore VIC20][30] 致敬。 如果你喜欢 Windows 7,但想在 Linux 上体验同样的体验,那么你可以试试! -目前,该系统只发布了发布候选版本。但是,您可以期待在 2023 年发布稳定版本,希望如此! +目前,该系统只发布了早期的候选版本。但是,你可以期待在 2023 年发布稳定版本,希望如此! -[Kumander][29] +> **[Kumander][29]** -### 11. Ubuntu Unity +### 11、Ubuntu Unity -![ubuntu unity][31] +![Ubuntu Unity][31] -[今年早些时候][32] 宣布为 Ubuntu 的官方版本,Ubuntu Unity 是 Ubuntu 的混合版本。 +[今年早些时候][32],Ubuntu Unity 被宣布为 Ubuntu 的官方版本,是 Ubuntu 的一个翻版。 -它使用了 2010-2017 年 Ubuntu 中使用的 Unity 桌面界面,该界面后来被 GNOME 取代。 +它使用了 2010 - 2017 年间 Ubuntu 中使用的 Unity 桌面界面,该界面后来被 Canonical 使用 GNOME 取代。 开发工作如火如荼,年轻的首席开发人员正在推动更新和增加新功能。 想要尝试不同风格的 Ubuntu 的用户可以试试这个系统。它提供了 LTS 和非 LTS 版本。 -[Ubuntu Unity][33] +> **[Ubuntu Unity][33]** -**所以,总结一下。** +### 总结 即使有了这份全面的清单,我也可能遗漏了一些。 🤔 但是。 -或许 2023 年会有惊喜占据头版,或者一些现有的发行版会尝试一些不同的东西。 +或许 2023 年会有惊喜的发布占据头版,或者一些现有的发行版会尝试一些不同的东西。 -Until then. # 不太确定如何翻译 +但在那之前, _💬 请告诉我你在 2023 年期待着哪些发行版?_ @@ -217,7 +217,7 @@ via: https://news.itsfoss.com/new-distros-2023/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] 译者:[Cubik65536](https://github.com/Cubik65536) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 35681358bfe5a33183c85dfb518b137f75e055ad Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 21 Jan 2023 11:57:47 +0800 Subject: [PATCH 203/357] P @Cubike65536 https://linux.cn/article-15463-1.html --- ...221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md (99%) diff --git a/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md similarity index 99% rename from translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md rename to published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index d460e07895..0176293a36 100644 --- a/translated/tech/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "Cubik65536" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15463-1.html" 2023 年值得期待的 11 个新发行版 ====== From 084dcb645ac9784071183e68292a729972e6f082 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 21 Jan 2023 12:02:21 +0800 Subject: [PATCH 204/357] R --- ...20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md index 0176293a36..f519817f2e 100644 --- a/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md +++ b/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md @@ -104,7 +104,7 @@ Crystal Linux 是一个即将发布的基于 Arch 的发行版,它希望**提 它现在已经发布了稳定版本,也在 2023 年有更新计划。 -> [EuroLinux][19] +> **[EuroLinux][19]** ### 6、Zinc From 057bbe15a7162828903959400c9164970d364d99 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 21 Jan 2023 12:32:00 +0800 Subject: [PATCH 205/357] RP @geekpi https://linux.cn/article-15464-1.html --- ...rs GNOME Extension to help Colorblind Users.md | 50 +++++++++++-------- 1 file changed, 28 insertions(+), 22 deletions(-) rename {translated/tech => published}/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md (70%) diff --git a/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/published/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md similarity index 70% rename from translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md rename to published/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md index 1efd79e614..3aeae6f96a 100644 --- a/translated/tech/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md +++ b/published/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md @@ -3,38 +3,46 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15464-1.html" Colorblind Filters:帮助色盲用户的 GNOME 扩展 ====== -**一个不错的 GNOME 扩展:Colorblind Filters,它为色盲用户带来了许多选项。** +![][0] + +> 一个不错的 GNOME 扩展:Colorblind Filters,它为色盲用户带来了许多调整选项。 无障碍是计算和操作系统的一个重要方面。它包括对视力障碍、色盲和许多其他健康症状的管理设置。流行的 Linux 桌面环境,如 GNOME 和 KDE Plasma,具有无障碍设置,以帮助所有这些情况。 感谢 GNOME 扩展生态系统,有大量的专门扩展可以帮助这些用户。我遇到的其中一个扩展是[“Colorblind Filters”][1]。 - ### Colorblind Filters – GNOME 扩展 根据维基百科,_"色盲通常涉及无法区分红色和绿色的深浅。遗传性色盲症没有治疗方法。如果色盲是由其他疾病引起的,治疗潜在的原因会有帮助。"_。 -因此,你有选项来调整你的 Linux 桌面上的设置是很重要的。 +因此,你有可以调整你的 Linux 桌面设置的选项是很重要的。 #### 设置扩展程序和 Flatpak -首先,确保你已经启用了 Flatpak 和 GNOME 扩展。并且安装了扩展管理器。你可以参考这个关于如何[设置 flatpak][2]和启用 [GNOME 扩展][3]的详细指南,或者从终端运行以下命令(对于 Ubuntu、Linux Mint 等)。 +首先,确保你已经启用了 Flatpak 和 GNOME 扩展。并且安装了扩展管理器。你可以参考这个关于如何 [设置 flatpak][2] 和启用 [GNOME 扩展][3] 的详细指南,或者从终端运行以下命令(对于 Ubuntu、Linux Mint 等)。 ``` -sudo apt install flatpaksudo apt install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +sudo apt install flatpak +sudo apt install gnome-software-plugin-flatpak +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +reboot + ``` 对于 Fedora 用户,使用以下命令。 ``` -sudo dnf install flatpaksudo dnf install gnome-software-plugin-flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot +sudo dnf install flatpak +sudo dnf install gnome-software-plugin-flatpak +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +reboot ``` 完成后,安装扩展管理器: @@ -53,19 +61,16 @@ flatpak install com.mattjakeman.ExtensionManager ![Colorblind Filters 扩展托盘图标][5] -右键点击眼睛图标以获得更多设置。这个扩展带来了色盲收集、模拟和额外选项的所有必要定制。目前有以下选项: - -- 红色盲 -- 绿色盲 -- 蓝黄色盲 +右键点击眼睛图标以获得更多设置。这个扩展带来了色盲集合、模拟和额外选项的所有必要定制。目前有以下选项: - 纠正和模拟(具有高对比度) - -- GBR 和 BRG 的通道混合器 -- 亮度反转 -- 颜色反转 - + - 红色盲 + - 绿色盲 + - 蓝黄色盲 - 额外的调整 + - GBR 和 BRG 的通道混合器 + - 亮度反转 + - 颜色反转 ![Colorblind Filters - 选项][6] @@ -73,9 +78,9 @@ flatpak install com.mattjakeman.ExtensionManager ### 总结 -我认为苹果的 macOS 和 iOS 已经实现了比 Windows 或 Linux 更好的无障碍。然而,Linux 桌面在这些应用和扩展方面也不落后。另外,还有一些专门的 Linux 发行版,如“[Accessible Coconut][7]”,它是为专门的需求而建立的。 +我认为苹果的 macOS 和 iOS 已经实现了比 Windows 或 Linux 更好的无障碍。然而,Linux 桌面在这些应用和扩展方面也不落后。另外,还有一些专门的 Linux 发行版,如 “[Accessible Coconut][7]”,它是为专门的需求而建立的。 -我希望 Colorblind gnome 扩展对你日常使用 Linux 和 GNOME 桌面有帮助。 +我希望 Colorblind GNOME 扩展对你日常使用 Linux 和 GNOME 桌面有帮助。 干杯。 @@ -86,7 +91,7 @@ via: https://www.debugpoint.com/colorblind-filters-gnome-extension/ 作者:[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/) 荣誉推出 @@ -99,3 +104,4 @@ via: https://www.debugpoint.com/colorblind-filters-gnome-extension/ [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/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/21/122942m49s8o25s9ai6szs.jpg \ No newline at end of file From 27837a313a853bd4175cdd132e4b44e994d08fa6 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Sat, 21 Jan 2023 13:03:43 +0800 Subject: [PATCH 206/357] translated --- ...⭐️ Battle of the Texts and the Unicode Savior.md | 154 +++++++++--------- 1 file changed, 78 insertions(+), 76 deletions(-) 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 dc3b81881c..a3229479d0 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 @@ -7,127 +7,129 @@ [#]: publisher: " " [#]: url: " " -Battle of the Texts and the Unicode Savior +文字间的战斗与其救世主 Unicode ====== -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. +- 键盘上没有的印刷符号, +- 平假名日文字符, +- 为符合平文式罗马字标准,日本首都的名字中的头顶长音符号两个字母 "o", +- 以及最后,用西里尔字母拼写的名字德米特里。 -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. +在很长一段时间里,计算机将每个字符作为 0 到 255 之间的数字储存(这正好是一个字节的长度)。但这用来代表人类书写所用到的全部字符是远远不够的。而解决这个问题的诀窍在于,取决于你住在地球上的哪一块区域,系统会分别使用不同的对照表。 -Here is the [ISO 8859-15][2] correspondence table commonly used in France: +这里有一张在法国常被广泛使用的对照表 [ISO 8859-15][2]: ![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: +如果你住在俄罗斯,你的电脑大概会使用 [KOI8-R][4] 或是 [Windows-1251][5] 来进行编码。现在让我们假设我们在使用后者: ![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. +对于 128 之前的数字,两张表格是一样的。这个范围与 [US-ASCII][7] 相对应,这是不同字符表格之间的最低兼容性。而对于 128 之后的数字,这两张表格则完全不同了。 -For example, according to Windows-1251, the string _“said Дмитрий”_ is stored as: +比如,依据 Windows-1251,字符串 _“said Дмитрий”_ 会被储存为: ``` 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. +让我们来举一个例子,就以字符 Д 为例。按照 Windows-1251,Д 的数字编码为 196 (c4)。储存在文件里的只有数字 196。而正是这同样的数字在 ISO8859-15 中与 Ä 相对应。这就是为什么我的电脑错误地认为字形 Ä 就是应该被显示的字形。 ![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. +多提一句,你依然可以时不时地看到一些错误配置的网站展示,或由[用户邮箱代理][9]发出的对收件人电脑所使用的字符编码做出错误假设的邮件。这样的故障有时被称为乱码(LCTT译注:原文用词为 [mojibake][10], 源自日语 _文字化け_)。好在这种情况在今天已经越来越少见了。 ![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 +### Unicode 拯救了世界 -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. +我解释了不同国家间交换文件时会遇到的编码问题。但事情还能更糟,同一个国家的不同生产商未必会使用相同的编码。如果你在 80 年代用 Mac 和 PC 互传过文件你就懂我是什么意思了。 -Is it a coincidence or not, the [Unicode][12] project started in 1987, led by people of Xerox and … Apple. +也不知道是不是巧合,[Unicode][12] 项目始于 1987 年,主导者来自施乐Xerox和……苹果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. +这个项目的目标是定义一套通用字符集来允许同一段文字中_同时_出现人类书写会用到的任何文字。最初的 Unicode 项目被限制在 65536 个不同字符(每个字符用 16 位表示,即每个字符两字节)。这个数字已被证实是远远不够的。 -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. +于是,在 1996 年 Unicode 被扩展以支持高达 100 万不同的[代码点][13]。粗略来说,一个“代码点”可被用来识别字符表中的一个条目。Unicode 项目的一个核心工作就是将世界上正在被使用(或曾被使用)的字母,符号,标点符号以及其他文字仓管起来,并给每一项条目分配一个代码点用以准确分辨对应的字符。 -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. +这是一个庞大的项目:让你有个大致了解,发布于 2017 年的 Unicode 版本 10 定义了超过 136,000 个字符覆盖了 139 种现代和历史上的语言文字。 -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. +随着如此庞大数量的可能性,一个基本的编码会需要每个字符 32 位(即 4 字节)。但对于主要使用 US-ASCII 范围内字符的文字,每个字符 4 字节意味着 4 倍多的储存需求以及 4 倍多的带宽用以传输这些文字。 ![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. +所以除了 [UTF-32][15],Unicode 联盟还定义了更加节约空间的 [UTF-16][16] 和 [UTF-8][17] 编码,分别使用了 16 位和 8 位。但只有 8 位该如何储存超过 100,000 个不同的值呢?事实是,你不能。但这其中窍门在于用一个代码值(UTF-8 中的 8 位数以及 UTF-16 中的 16 位数)来储存最常用的一些字符。再用几个代码值储存最不常用的一些字符。所以说 UTF-8 和 UTF-16 是_可变长度_编码。尽管这样也有缺陷,UTF-8 是空间与时间效率之间一个不赖的妥协。更不用提 UTF-8 可以向后兼容大部分 Unicode 之前的 1 字节编码,因为 UTF-8 被特别设计成任何有效的 US-ASCII 文件就是有效的 UTF-8 文件。你也可以说,UTF-8 是 US-ASCII 的超集。而在今天已经找不到不用 UTF-8 编码的理由了。当然除非你书写主要用的语言需要多字节编码,或是你不得不与一些保留系统打交道。 -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 和 UTF-8 编码。特别注意 UTF-8 使用了一字节来储存拉丁字母表中的字符,但它使用了两字节来存储西里尔字母表中的字符。这是 Windows-1251 西里尔编码储存同样字符所需空间的两倍。 ![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… +啊……知道一些你的电脑的能力与局限以及其底层机制也无伤大雅嘛。特别是我们马上就要说到 Unicode 和十六进制。现在嘛……我们再在聊点历史。真的就一点,我保证…… -… 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). +……就说从 80 年代起,电脑键盘曾经有过 [compose 键][20](有时候也被标为 "multi" 键)就在 shift 键的下边。当按下这个键时,你会进入“组合compose”模式。一旦在这个模式下,你便可以通过输入助记符来输入你键盘上没有的字符。比如说,在组合模式下,输入 RO 便可生成字符 ®(当作是 O 里面有一个 R 就能很容易记住)。 ![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. +现在很难在现代键盘上看到 compose 键了。这大概是因为占据主导地位的 PC 不再用它了。但是在 Linux 上(可能还有其他系统)你可以模拟 compose 键。这项设置可以通过 GUI 开启,在大多数桌面环境下调用“键盘”控制面板:但具体的步骤取决于你的桌面环境以及版本。如果你成功启用了那项设置,不要犹豫在评论区分享你在你电脑上所采取的具体步骤。 -As for myself, for now, I will assume you use the default Shift+AltGr combination to emulate the compose key. +(LCTT 译注:如果有读者想要尝试,建议将 compose 键设为大写锁定键,或是别的不常用的键,Ctrl 和 Alt 会被大部分 GUI 程序优先识别为功能键。还有一些我自己试验时遇到过的问题,在开启 compose 键前要确认大写锁定是关闭的,输入法要切换成英文,组合模式下输入大小写敏感。我试验的系统是 Ubuntu 22.04 LTS。) -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. +至于我自己嘛,我现在先假设你用的就是默认的 Shift+AltGr 组合来模拟 compose 键。 -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. +那么,作为一个实际例子,尝试输入 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK指左双角引号?(LCTT译注:Guillemet,是法语和一些欧洲语言中的引号,与中文的书名号不同),你可以输入 Shift+AltGr<<(你在敲助记符时不需要一直按着 Shift+AltGr)。如果你成功输入了这个符号,你自己应该也能猜到要怎么输入 _RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK指右双角引号_ 了。 -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. +来看看另一个例子,试试 Shift+AltGr--- 来生成一个 EM DASH长破折号(LLCT 译注:中文输入法的长破折号由两个 EM DASH 组成)。要做到这个,你需要按下主键盘上的的[连字符减号][22]键而非数字键盘上的那个。 -On the console, you can check the list of supported compose key by using the `dumpkeys` command: +值得注意的是 "compose" 键在非 GUI 环境下也能工作。但是取决于你使用的是 X11 控制台还是只显示文字的控制台,它们所支持的 compose 按键顺序并不相同。 + +在控制台上,你可以通过命令 `dumpkeys` 来查看支持的 compose 按键列表(LCTT 译注:可能需要 root 权限): ``` 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] +在 GUI 下,compose 键是在 Gtk/X11 层被实现的。想要知道 Gtk 所支持的助记符,可以查看页面:[https://help.ubuntu.com/community/GtkComposeTable][23] -### Is there a way to avoid relying on Gtk for character composition? +### 我们可以避免对 Gtk 字符组合的依赖吗? -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. +或许我是个纯粹主义者,但是我为 Gtk 这种对 compose 键进行硬编码的方式感到悲哀。毕竟,不是所有 GUI 应用都会使用 Gtk 库。而且我如果想要添加我自己的助记符的话就只能重新编译 Gtk 了。 -Hopefully, there is support for character composition at X11-level too. Formerly, through the venerable [X Input Method (XIM)][24]. +幸好在 X11 层也有对字符组合的支持。在以前则是通过令人尊敬的 [X 输入法 (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. +这个方法在比起基于 Gtk 的字符组合能够在更加底层的地方工作,同时具备优秀的灵活性并兼容很多 X11 应用。 -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: +比如说,假设我只是想要添加 --> 组合来输入字符 → (U+2192 RIGHTWARDS ARROW朝右箭头),我只需要新建 `~/.XCompose` 文件并写入以下代码: ``` cat > ~/.XCompose << EOT @@ -139,78 +141,78 @@ include "%L" EOT ``` -Then you can test by starting a new X11 application, forcing libraries to use XIM as input method: +然后你就可以启动一个新的 X11 应用,强制函数库使用 XIM 作为输入法,并开始测试: ``` 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`. +新的组合排序应该可以在你刚启动的应用里被输入了。我鼓励你通过 `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: +在你的 `~/.profile` 中加入以下两行来将 XIM 设为你所有应用的默认输入法。这些改动会在下一次你登陆电脑时生效: ``` 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. +这挺酷的,不是吗?这样你就可以随意的加入你想要的组合排序。而且在默认的 XIM 设置中已经有几个有意思的了。试一下输入 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: +但我不得不提到两个缺陷。XIM 已经比较老了而且只适合我们这些不太需要多字节输入法的人。其次,当你用 XIM 作为输入法的时候,你就不能利用 Ctrl+Shift+u 加上代码点来输入 Unicode 字符了。什么?等一下?我还没聊过那个?让我们现在来聊一下吧: -### What if there is no compose key sequence for the character I need? +### 如果我需要的字符没有对应的 compose 键排序该怎么办? -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. +Compose 键是一个不错的工具,它可以用来输入一些键盘上没有的字符。但默认的组合集有限,而切换 XIM 并为一个你一生仅用一次的字符来定义一个新的组合排序十分麻烦。 -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: +但这能阻止你在同一段文字里混用日语,拉丁语,还有西里尔字符吗?显然不能,这多亏了 Unicode。比如说,名字 あゆみ 由三个字母组成: -- the [HIRAGANA LETTER A (U+3042)][25] -- the [HIRAGANA LETTER YU (U+3086)][26] -- and the [HIRAGANA LETTER MI (U+307F)][27] +- [HIRAGANA LETTER A平假名字母 あ (U+3042)][25] +- [HIRAGANA LETTER YU平假名字母 ゆ (U+3086)][26] +- 以及 [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? +我在上文提及了 Unicode 字符的正式名称,并遵循了全部用大写拼写的规范。在它们的名字后面,你可以找到它们的 Unicode 代码点,位于括号之间并写作 16 位的十六进制数字。这让你想到什么了吗? -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. +- Ctrl+Shift+u,然后 XXXX(你想要的字符的_十六进制_代码点)然后回车。 -As a shorthand, if you don’t release Ctrl+Shift while entering the code point, you won’t have to press Enter. +作为一种简写方式,如果你在输入代码点时不松开 Ctrl+Shift,你就不用敲回车。 -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. +不幸的是,这项功能的实现是在软件库层而非 X11 层,所以对其支持在不同应用间并不统一。以 LibreOffice 为例,你必须使用主键盘来输入代码点。而在基于 Gtk 的应用则接受来自数字键盘的输入。 -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! +最后,当我跟在我的 Debian 系统上的控制台打交道时,我发现了一个类似的功能,但它需要你按下 Alt+XXXXX 而 XXXXX 是你想要的字符的代码点写作_十进制_。我很好奇这究竟是 Debian 独有的功能还是因为我使用的 locale 是 en_US.UTF-8。如果你对此有更多信息,我会很愿意在评论区读到它们的! -| GUI | Console | Character | +| GUI | 控制台 | 字符 | | :- | :- | :- | | 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. +最后值得一提的是,想要不(必须)依赖 compose 键来输入键组合还有一个更简单的方法。 -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. +你的键盘上的某些键是专门用来创造字符组合的。这些键叫做[死键][28]。这是因为当你按下它们一次,看起来什么都没有发生。但它们会悄悄地改变你下一次按键所产生的字符。这个行为的灵感来自于机械打字机:在使用机械打字机时,按下一个死键会印下一个字符,但不会移动字盘。于是下一次按键则会在同一个地方印下另一个字符。视觉效果就是两次按键的组合。 -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. +我们在法语里经常用到这个。举例来说,想要输入字母 “ë” 我必须按下死键 ¨ 然后再按下 e 键。同样地,西班牙人的键盘上有着死键 ~。而在北欧语系下的键盘布局,你可以找到 ° 键。我可以念很久这份清单。 ![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ō. +显然,不是所有键盘都有所有死键。实际上,你的键盘上是找不到大部分死键的。比如说,我猜在你们当中只有小部分人——如果真的有的话——有死键 ¯ 来输入 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 “ō”. +那么,我们的第一个选择是利用 Compose- 来生成长音符号(你键盘上有的连字符减号)。按下时屏幕上什么都不会出现,但当你接着按下 o 键你就能看到 “ō”。 -The list of dead keys that Gtk can produce using the compose mode can be found [here][30]. +Gtk 在组合模式下可以生成的一系列死键都能在[这里][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. +另一个解决方法则是利用 Unicode 字符 COMBINING MACRON组合长音符号 (U+0304),然后字母 o。我把细节都留给你。但如果你好奇的话,你会发现你打出的结果有着微妙的不同,你并没有真地打出 LATIN SMALL LETTER O WITH MACRON小写拉丁字母 O 带长音符号。如果我在上一句的结尾用了大写拼写,这应该可以提示你寻找通过 Unicode 组合字符按更少的键输入 ō 的方法……现在我将这些留给你的聪明才智去解决了。 -### 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! +赢了也没有奖励,或许来自同伴的惊叹能够满足你! -------------------------------------------------------------------------------- @@ -218,7 +220,7 @@ via: https://itsfoss.com/unicode-linux/ 作者:[Sylvain Leroux][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[yzuowei](https://github.com/yzuowei) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 42aa7328bf5e5c7e2f1bb9cd87e9f91d3dcf2a87 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Sat, 21 Jan 2023 13:04:44 +0800 Subject: [PATCH 207/357] translated --- ...0221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md (100%) diff --git a/sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md similarity index 100% rename from sources/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md rename to translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md From 464032ffc5e142a2e170f417d94bfab4d4a274f4 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 21 Jan 2023 13:50:53 +0800 Subject: [PATCH 208/357] translated --- ...nstall Python on Windows [Beginner’s Guide].md | 147 ------------------ ...nstall Python on Windows [Beginner’s Guide].md | 141 +++++++++++++++++ 2 files changed, 141 insertions(+), 147 deletions(-) delete mode 100644 sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md create mode 100644 translated/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 deleted file mode 100644 index cc06a6ceef..0000000000 --- a/sources/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md +++ /dev/null @@ -1,147 +0,0 @@ -[#]: 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: "geekpi" -[#]: 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 diff --git a/translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md b/translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md new file mode 100644 index 0000000000..1a4b13d51f --- /dev/null +++ b/translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md @@ -0,0 +1,141 @@ +[#]: 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: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Windows 上安装 Python(初学者指南) +====== + +**这个简单的指南演示了如何在 Windows 上下载和安装 Python。** + +这篇文章是用最新的 Python 3.11 稳定版测试的。 + +在学习如何在 Windows 上安装 Python 之前,你可能想看看如何在 Linux 发行版(如 Ubuntu)上[轻松安装][1] 。如果你打算成为一名开发者,最好在 Linux 中尝试 Python。既然如此,你可能想看看[如何在 Windows 之外安装 Linux(如 Ubuntu)][2]。 + +Python 是一种流行的通用编程语言,在过去十年中成为开发者的选择。而且它的受欢迎程度与日俱增。它被广泛用于网络开发、复杂系统、数据科学、机器学习和所有科学领域。 + +你可能遇到的 Python 有两个版本。Python2 目前已经不支持了。而 Python3 系列是持续支持的版本。 + +### 检查 Python 是否已经安装 + +在 Windows 上安装它之前,你应该检查它是否已经安装。一般来说,它应该没有安装,不像在 Ubuntu (和其他 Linux 发行版)中,Python 是预先安装的。 + +从开始菜单中,打开“命令提示符”。 + +并输入以下内容: + +``` +python --version +``` + +如果 Python 是可用的,它将显示一个包含版本细节的信息。 + +### 下载并安装 Python + +打开下面的 Python 官方下载页面。 + +[下载 Python][3] + +![如何定位 Python 安装][4] + +在顶部,你应该看到当前的稳定版本。点击下载链接。如果你正在寻找任何特定的版本,在这个页面上向下滚动,在 “Python releases by version number:” 的标签下下载特定的版本。 + +下载后,进入下载文件夹,运行安装程序。 + +按照屏幕上的指示进行安装。 + +![安装 Python 第 1 步][5] + +![安装 Python 第 2 步][6] + +安装完成后,验证 Python 的版本。 + +### 验证 Python 版本 + +从开始菜单,打开“命令提示符”,运行以下命令。 + +``` +python --version +``` + +![Windows 上的 Python 版本][7] + +你应该看到你的系统当前安装的 Python 包的版本。另外,你也可以运行下面的程序来获得一个 Python 交互式 shell。 + +``` +python +``` + +你可以用 CTRL+Z 和回车键退出这个 shell。 + +### 检查 PATH 变量 + +你应该用 Python 的可执行位置检查系统变量 PATH。这应该是使用安装程序自动更新的。 + +从开始菜单中,搜索“系统变量”并打开它。 + +![打开环境变量设置][8] + +在“系统属性”对话框中,点击“高级>环境变量”。在用户变量部分,对照路径变量,检查 Python 的安装位置是否存在。请参考下面的图片作为指导。 + +如果你看到所有的路径都存在,你就可以运行你的 Python 项目了。 + +![检查 Windows 中的 Python 环境 PATH 值][9] + +### 创建并运行你的第一个 Python 程序 + +一个额外的步骤,这里是你如何编码和运行你的第一个 Python 程序。你可以使用任意[推荐的 Python 编辑器][10]来编写你的程序。 + +下面是一个简单的程序,它在控制台中输出文本“debugpoint.com”。 + +``` +# Sample Python program +print("debugpoint.com") +``` + +用任意名字保存文件。这里我把它保存为 “hello.py”,放在 E 盘。.py 是 Python 源码的扩展名。 + +要运行这个程序,请打开命令提示符,在 E 盘中执行以下内容。 + +``` +python hello.py +``` + +**输出** + +![在 Windows 中运行一个简单的 Python 程序][11] + +### 结束语 + +我希望这个简单的初学者指南能够帮助你在 Windows 中安装 Python,验证安装并运行你的第一个程序。 + +如果你遇到问题,请在下面的评论栏中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/install-python-windows/ + +作者:[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/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 \ No newline at end of file From 2705000f1cd684fa0b2e5301202338d2344c7d0c Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 21 Jan 2023 13:55:37 +0800 Subject: [PATCH 209/357] translating --- ... Document with BookStack, an open source Confluence alternative.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 0b63928629..1d79a34124 100644 --- 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 @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/bookstack-open-source-documentation" [#]: author: "Dan Brown https://opensource.com/users/ssddanbrown" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5bc40a0c09ba15aa4de3aad46401b1b4dfea46de Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 22 Jan 2023 12:01:58 +0800 Subject: [PATCH 210/357] RP @geekpi https://linux.cn/article-15466-1.html --- ...ok Offline English Dictionary App for GNOME.md | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) rename {translated/tech => published}/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md (65%) diff --git a/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/published/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md similarity index 65% rename from translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md rename to published/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md index 830e1e4b65..cf053b9cb9 100644 --- a/translated/tech/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md +++ b/published/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md @@ -3,14 +3,16 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15466-1.html" Wordbook:适用于 GNOME 的离线英语词典应用 ====== -**遇见 Wordbook – 一个 GNOME 桌面的离线词典应用。** +![][0] + +> 遇见 Wordbook:一个 GNOME 桌面的离线词典应用。 我们大多在谷歌、DDG 或其他搜索引擎上搜索单词信息,如含义、同义词、反义词等。 @@ -20,15 +22,15 @@ Wordbook:适用于 GNOME 的离线英语词典应用 ### Wordbook:离线词典应用 -这个应用在本质上是非常基本的。但以它的能力完成了它的工作。Wordbook 目前支持一个英译英字典。在其核心部分,它使用 [Open English WordNet 数据库][2]进行定义。Open English Wordnet 是 [Princeton Wordnet项目][3] 的一个开源分叉。 +这个应用在本质上是非常基础的,但它的能力足以完成工作。Wordbook 目前支持一个**英英字典**。在其核心部分,它使用 [Open English WordNet 数据库][2] 进行定义。Open English Wordnet 是 [Princeton Wordnet项目][3] 的一个开源复刻。 -Wordbook 应用还可以使用 [eSpeak][4] – 一个免费和开源的语音合成器来发音。 +Wordbook 应用还可以使用 [eSpeak][4] – 一个自由开源的语音合成器来发音。 ![Wordbook - 英译英词典应用][5] -然而,在第一次运行时,它需要一次性上网,以下载离线数据。就这些了。其他值得注意的功能包括实时搜索、双击搜索和带有 HTML 标记的自定义定义。 +然而,在第一次运行时,它需要一次性上网,以下载离线数据。仅此而已。其他值得注意的功能包括实时搜索、双击搜索和带有 HTML 标记的自定义定义。 -Wordbook是一个 [GNOME 应用][6],使用现代 GTK4 和 libadwaita 构建。因此,它与 GNOME 桌面的浅色和深色主题整合得很好。你也可以使用 Wordbook 的随机单词功能来学习新单词以增加你的词汇量。 +Wordbook 是一个 [GNOME 应用][6],使用现代的 GTK4 和 libadwaita 构建。因此,它与 GNOME 桌面的浅色和深色主题整合得很好。你也可以使用 Wordbook 的随机单词功能来学习新单词以增加你的词汇量。 ### 安装 @@ -44,7 +46,7 @@ flatpak install com.github.fushinari.Wordbook 我希望你在学校或商业工作中使用这个小小的应用。如果你在写论文和较长的段落,离线特性是很方便的。 -你知道其他Linux的离线字典吗?请在评论栏里告诉我们。 +你知道其他 Linux 的离线字典吗?请在评论栏里告诉我们。 -------------------------------------------------------------------------------- @@ -53,7 +55,7 @@ via: https://www.debugpoint.com/wordbook-offline-dictionary/ 作者:[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/) 荣誉推出 @@ -66,4 +68,5 @@ via: https://www.debugpoint.com/wordbook-offline-dictionary/ [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 \ No newline at end of file +[8]: https://floss.social/@debugpoint +[0]: https://img.linux.net.cn/data/attachment/album/202301/22/120052z1e0bg1ynyanors2.jpg \ No newline at end of file From 443c319ccfb3eb2adaec4d8e7764c8cc05baf3c8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 22 Jan 2023 18:04:46 +0800 Subject: [PATCH 211/357] R Part 1 --- .../20190331 Codecademy vs. The BBC Micro.md | 103 +++++++----------- 1 file changed, 39 insertions(+), 64 deletions(-) diff --git a/translated/talk/20190331 Codecademy vs. The BBC Micro.md b/translated/talk/20190331 Codecademy vs. The BBC Micro.md index bd4d9e8813..f0e1dc7469 100644 --- a/translated/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/translated/talk/20190331 Codecademy vs. The BBC Micro.md @@ -3,61 +3,62 @@ [#]: author: "Two-Bit History https://twobithistory.org" [#]: collector: "lujun9972" [#]: translator: "CanYellow" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -[BBC Micro][T2] 比之 [Codecademy][T1] +BBC Micro 比之 Codecademy ====== -20世纪70年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业霸主的神秘而笨重的机器。少数狂热的爱好者注意到了这是多么吸引人并争相购买了属于自己的计算机。对更多的人而言,微形计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺一台家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,在他身后,他的显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它与之类似的广告表明世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 +20 世纪 70 年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业级霸主的神秘而笨重的机器。少数狂热的爱好者注意到了它是多么的吸引人,并争相购买了属于自己的计算机。对更多的人而言,微型计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺,家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,而在他的身后,他的那些显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它类似的广告在暗示:世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 -在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20世纪70年代对英国来说都是平平无奇的十年,通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇1979年的政府报告焦虑:没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[1][1]。英国似乎已经在计算机技术的角逐中落后了——所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 +在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20 世纪 70 年代对英国来说都是平平无奇的十年,通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇 1979 年的政府报告担心:没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[^1]。英国似乎已经在计算机技术的角逐中落后了 —— 所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 -BBC(英国广播公司)——由政府建立的公共服务广播公司——作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感来解决英国的国家竞争力问题。BBC 发起了 [_Computer Literacy Project(计算机认知计划)_][T3],该计划包括多个教育方向的努力:几部电视系列片,一些相关书籍,一张支持团队网络以及一款名为 BBC Micro 的特别定制的微型计算机。该项目是如此成功以致于到1983年[ BYTE 杂志][T4]的一名编辑写道:“与美国相比,有更多的英国人对微型计算机感兴趣。”[2][2] 这名编辑惊讶于英国的 Fifth Personal Computer World Show(第五届个人电脑世界展) 比当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由 _Computer Literacy Project_ 制作的第一部电视系列片的一集并最终售出了150万台 BBC Micro 微型计算机。[3][3] +由英国政府建立的公共服务广播公司英国广播公司(BBC)作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感,来解决英国的国家竞争力问题。BBC 发起了 “[计算机认知计划][T3]Computer Literacy Project”,该计划包括多个教育方向的努力:几部电视连续剧,一些相关书籍,一张支持团队网络以及一款名为 [BBC Micro][T2] 的特别定制的微型计算机。该项目是如此成功,以致于 1983 年 《[BYTE][T4]》杂志的一位编辑写道:“与美国相比,英国人对微型计算机感兴趣的比例更高。”[^2] 这位编辑惊讶于在英国举办的 “第五届个人电脑世界展Fifth Personal Computer World Show” 的人数比参加当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由该计划制作的第一部电视连续剧,并最终售出了 150 万台 BBC Micro 微型计算机。[^3] -去年,一份包括了由 _Computer Literacy Project_ 出版的所有材料与制作的每一部电视系列片的[档案][4]发布在了互联网上。我抱着极大的兴趣观看这些电视系列片并试图想象在20世纪80年代早期学习电脑使用是什么图景。不过我发现更有兴趣的是时年是如何教授电脑使用的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 Codecademy 这样的通过新技术的运用进行交互式编程教学的网站。我们可能假定这种方式比80年代的呆板的电视系列片更高效,不过真的是这样吗? +去年,一份包含了由计算机认知计划所制作的每部电视连续剧和所有出版资料的 [档案][4] 被发布在了互联网上。我抱着极大的兴趣观看这些电视连续剧,并试图想象在 20 世纪 80 年代早期学习电脑使用是什么样子。但事实证明,更有趣的是计算机是如何被教授的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 [Codecademy][T1] 这样的网站,通过新技术的运用进行交互式编程教学。我们可能假定这种方式比 80 年代的呆板的电视连续剧更高效,不过真的是这样吗? -### [Computer Literacy Project][T3] (计算机认知计划) +### 计算机认知计划 -微型计算机革命始于1975年 [Altair 8800][5] 的发布。两年后,Apple II,TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978年,BBC 在一部名为["Now the Chips Are Down"][T5](《芯片来了》)(译者注:对于非英国区域的读者,可以在[这里][T6]观看该纪录片) 的纪录片中探讨了这种新的机器必将带来的剧烈的社会变革。 +微型计算机革命始于 1975 年 [Altair 8800][5] 的发布。仅仅两年后,Apple II、TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978 年,BBC 在一部名为 《[芯片来了][T5]Now the Chips Are Down》(LCTT 译注:对于非英国区域的读者,可以在 [这里][T6] 观看该纪录片)的纪录片中探讨了这些新机器必将会带来的剧烈的社会变革。 -该纪录片充满担忧。在前5分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放以及屏幕上绿色的电脉冲在放大后的芯片上起舞,解说员进一步说这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。纪录片继续探讨了机器人如何用于汽车自动化组装以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它斥责了英国政府在应对未来的大规模失业的准备上做得不够。 +该纪录片充满担忧。在前 5 分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放,屏幕上绿色的电脉冲围绕着放大后的芯片上起舞,解说员进一步说,这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。该纪录片继续探讨了机器人如何用于汽车自动化组装,以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它指责英国政府在应对未来的大规模失业的准备上做得不够。 -该纪录片据信可能在英国议会上展示过。[4][6] 包括工业署和人力服务委员会在内的一些政府代表开始有兴趣尝试提高英国公众对计算机的认识。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份历数微电子技术在工业制造、人力关系与办公室工作等领域最终将意味着哪些方面的重大改变的研究报告。70年代末,BBC 决定制作一部帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”的十集电视系列片[5][7] 。这一努力最终成为了一个与_Adult Literacy Project_(成人扫盲计划)相似的多媒体项目。_Adult Literacy Project_是 BBC 此前进行的一项涉及电视系列片以及辅助课程的帮助两百万人提高他们的阅读能力的项目。 +该纪录片据信可能在英国议会上展示过。[^4] 包括工业署和人力服务委员会在内的一些政府代表开始对尝试提高英国公众对计算机的认识感兴趣。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份报告,历数了微电子技术在工业制造、劳动关系与办公室工作等领域的哪些方面将发生重大改变。70 年代末,BBC 决定制作一部十集电视连续剧,帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”[^5]。这一努力最终成为了一个与“成人扫盲计划Adult Literacy Project”相似的多媒体项目。成人扫盲计划是 BBC 此前进行的一项工作,包括一部电视连续剧以及补充课程,帮助两百万人提高他们的阅读能力。 -_Computer Literacy Project_ 背后的制作方热衷于以“实操”示例为特色的电视系列片。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子不得不都是基于 BASIC 语言的,因为这是在几乎所有的微型计算机上都使用的编程语言 (实际是整个交互界面(shell))。但是制作方面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言——BBC BASIC——以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机并依照示例操作而不需要担心软硬件上的差异带来的问题。 +计算机认知计划背后的制作方热衷于以“实操”示例为特色的电视连续剧。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子必须使用 BASIC 语言,因为这是在几乎所有的微型计算机上都使用的编程语言(实际是整个 交互界面shell)。但是制作者面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言 —— BBC BASIC,以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机,并依照示例操作,而不需要担心软硬件上的差异带来的问题。 -BBC 的制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。_Computer Literacy Project_的技术顾问也是如此建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的(他们可能没有完全那样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[6][8] +BBC 的电视制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范,并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。计算机认知计划的技术顾问还建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的方言(他们可能没有确切地这样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[^6] -BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名:艾康电脑)制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 Sinclair Research 公司的 [Clive Sinclair][T7] 的申请,Sinclair Research 公司凭借 Sinclair ZX80 微型计算机的推出在1980年将微型计算机的大众市场引入了英国。Sinclair 公司的新产品,ZX81,虽然更便宜但是性能不足以满足 BBC 的要求。Acorn 的新型的内部称为 Proton 原型计算机更加昂贵但是性能更好,更具备扩展性,BBC 对此印象深刻。该型号的计算机从未作为 Proton 进行营销与销售,Acorn 公司代之以 BBC Micro 的名称在1981年12月发布。BBC Micro 又被亲切地称为“The Beeb”,你可以以235英磅的价格购得其16k内存的版本或者以335英磅的价格获得其32k内存的版本。 +BBC 最终决定由一家位于剑桥的名为 Acorn Computers 的公司制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 [Clive Sinclair][T7] 的申请,他经营着一家 Sinclair Research 公司。1980 年,Sinclair 公司通过 Sinclair ZX80 为英国带来了微型计算机的大众市场。Sinclair 公司的新产品 ZX81 虽然更便宜,但是性能不足以满足 BBC 的要求。Acorn 的新型电脑(内部被称为 Proton)的原型机更加昂贵,但是性能更好,更具备扩展性。BBC 对此印象深刻。该型号的计算机从未以 “Proton” 的名字上市或销售过,因为它在 1981 年 12 月以 “BBC Micro” 的名字发布了。BBC Micro 又被亲切地称为 “The Beeb”,你可以以 235 英磅的价格购得其 16k 内存的版本,或者以 335 英磅的价格获得其 32k 内存的版本。 -1980年,Acorn 是英国计算机工业的失败者,但是 BBC Micro 成就了 Acorn 公司的传统。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM”如今表示“Advanced RISC Machine”(先进 RISC 架构设备),然而最初它代表的是“Acorn RISC Machine”(Acorn RISC 架构设备)。ARM 架构背后的 ARM Holding(ARM 公司) 就是 Acorn 公司在1990年之后的延续。 +1980 年,Acorn 在英国计算机行业处于劣势,但是 BBC Micro 帮助 Acorn 公司创立了遗产。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM” 如今表示 “先进 RISC 架构设备Advanced RISC Machine”,然而最初它代表的是 “Acorn RISC 架构设备Acorn RISC Machine”。ARM 架构背后的 ARM 控股公司就是 Acorn 公司在 1990 年之后的延续。 -![Picture of the BBC Micro.][9] _BBC Micro 的一幅拙劣图片,我摄于美国加州山景城(Mountain View)的计算机历史博物馆(Computer History Museum)_ +![Picture of the BBC Micro.][9] +_BBC Micro 的一幅拙劣图片,我摄于美国加州山景城的计算机历史博物馆Computer History Museum_ -### 名为“The Computer Programme”(计算机程序)的电视系列片 +### 《计算机程序》电视连续剧 -十几个不同的电视系列片最终作为_Computer Literacy Project_的一部分创作出来。第一部作品是一部名为 _The Computer Programme_(计算机程序) 的十集电视系列片。该系列片在1982年初播出了十周。一百万人每周晚上收看该节目,另有25万人收看该节目在每周日与周一下午的重播。 +作为计算机认知计划的一部分,最终制作了十几部不同的电视连续剧。第一部作品是一部名为 《计算机程序The Computer Programme》 的十集电视连续剧。该连续剧在 1982 年初播出了十周。每周晚上有一百万人收看该节目,另有有 25 万人在每周日与周一的下午收看该节目的重播。 -这一电视节目有两名主持人,Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演具有大型计算机编程职业经验的专家,这是一个启发性的配置。该节目造就了[略显尴尬的过渡][10]——Serle 经常直接从与 McNaught-Davis 的对话中过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,它将更难以理解。 +该电视节目由两名主持人主持:Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演专家,他具有专业的大型计算机编程经验。这是一个启发性的方式,有些 [略显笨拙的过渡][10] —— Serle 经常直接从与 McNaught-Davis 的对话中,过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言,并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,那么它的亲和力就会差很多。 -该节目也在努力展示计算在普通人生活中的实际应用。到80年代早期,家庭电脑已经开始与小孩子和电子游戏联系在一起。_Computer Literacy Project_ 的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣[7][11]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一名购买了一台 Commodore PET 电脑用于辅助管理她的糖果店的女性。这名名叫 Phyllis 的女性受访者看上去大约60多岁,她在使用 PET 完成她的会计工作上不存在任何问题,甚至开始使用 PET 为其他企业做计算工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢电脑工作。画面接着变成了对一名青少年的采访,他介绍了他是如何修改 _[Breakout][T8]_ 这款电子游戏以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果人群中的 Phyllis 也会使用电脑,那么你当然也可以。 +该节目也在努力展示计算在普通人生活中的实际应用。到 80 年代早期,家庭电脑已经开始与年轻男孩和电子游戏联系在一起。计算机认知计划的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣 [^7]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一位女性,她购买了一台 Commodore PET 电脑用于辅助管理她的糖果店。这位名叫 Phyllis 的女性受访者看上去大约 60 多岁,但她在使用 PET 完成她的会计工作上没有任何问题,甚至已经开始使用 PET 为其他企业做计算机工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢计算机工作。这次采访倒是可以换成对一名青少年的采访,介绍了他是如何修改 《[Breakout][T8]》 这款电子游戏,以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果普罗大众中的 Phyllis 都会使用电脑,那么你当然也可以。 -虽然该节目的特色是大量的 BASIC 编程,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中有一个关于[Jacquard][T9]织机(译注:中文网络译为雅卡尔提布机)的讨论。Jacquard 织机实现了两件事。其一,它揭示了计算机并不仅仅基于过去发明的神秘技术——计算的一些基本原则可以上溯到两百年前,就跟你可以在纸上打孔来控制纺织机的想法一样简单。其二,经线与纬线的交织用于解释选择二进制(即纬线是从上方还是下方穿过经线)是如何在重复了一次又一次之后足以产生巨大变化的。当然,节目接下来继续讨论信息是如何使用二进制存储的。 +虽然该节目以大量的 BASIC 编程为特色,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中,有一个关于 [Jacquard][T9] 织机(LCTT 译注:中文网络译为雅卡尔提布机)的延伸讨论,主要是两个方面:其一,它揭示了计算机并不仅仅基于昨天发明的神秘技术 —— 计算的一些基本原则可以上溯到两百年前,就跟你可以在卡片上打孔来控制纺织机的想法一样简单;其二,经线与纬线的交织用来证明二元选择(即纬线是从上方还是下方穿过经线)在不断重复时足以产生巨大变化。当然,节目接下来继续讨论信息是如何使用二进制存储的。 -在该节目中接下来是有关一件能够播放在一卷长长的分段的打孔卡片上编码的音乐的蒸汽风琴的小节。这个类比用以解释 BASIC 中的子程序。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在工作室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下而插入一个回到第一次播放副歌的分段的指令,这就是子程序。这是一个绝妙的解释并将可能在听众的脑海中久久挥之不去。 +在该节目中接下来是一个蒸汽管风琴的章节,该管风琴能够演奏编码在一卷长长的、分段的打孔卡片的音乐。这个类比用以解释 BASIC 中的 子程序subroutine。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在演播室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下,并以某种方式添加一条指令,回到第一次播放副歌的原始分段,这就是子程序。这是一个绝妙的解释,它在人们的脑海中的印象非常深刻。 -我仅仅摘录了一些例子,不过我认为总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原则使计算机不再神秘。这一节目本可以致力于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在1983年写就的一篇回忆文章中,_Computer Literacy Project_的总制作人 John Radcliffe 如是写道: +我仅仅摘录了一些例子,不过我认为,总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原理,使计算机不再神秘。这一节目本可以专注于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在 1983 年写就的一篇回忆文章中,计算机认知计划的总制作人 John Radcliffe 如是写道: -> 如果计算机将如我们所相信的那样重要,对这一主题的真正理解对每个人都很重要,可能会几乎与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来…… 我们相信一旦人们掌握了这些原则,简单地说,它们将可以进一步深入该主题。 +> 如果计算机将如我们所相信的那样重要,对这一新主题的真正理解对每个人都很重要,也许与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,尽管我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来……。我们相信,一旦人们掌握了这些最简单的原则,它们将可以进一步深入该主题。 -接下来, Radcliffe writes 又以类似的方式写道: +后来,Radcliffe 又以类似的口吻写道: -> 围绕着这一电视系列片的主要阐释目标有很多的争论。一个思想流派认为在使用微型计算机上的实用细节上给予建议对本项目而言尤为重要。但我们已经有了结论,如果这一电视系列片能够拥有可持续性的教育价值,它必须成为一条通过解释计算原则来进入真实的计算世界的路径。这必须通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 +> 围绕着这一系列节目的主要阐释目标有很多争论。一派人认为,在使用微型计算机上的实际细节上给予建议,对本项目而言尤为重要。但我们的结论是,如果该系列节目要拥有可持续性的教育价值,它就必须通过对计算原理的解释,成为进入真实计算世界的一种方式。这需要通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 -我喜爱这一系列片,尤其是其中关于小型机与大型机的部分。_Computer Literacy Project_ 背后的制作方旨在帮助英国找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 +我喜爱这一连续剧,尤其是其中关于小型机与大型机的部分。计算机认知计划背后的制作方旨在帮助英国人找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 ### 今天的计算机认知 @@ -67,33 +68,13 @@ BBC 最终决定由坐落于剑桥的 Acorn Computers 公司(中文网络译名 我最近浏览了 Codecademy 的 “Code Foundations”(编程基础) 课程。如果你对编程感兴趣(而不是网页开发或者数据科学)并且没有任何编程经验,这是 Codecademy 推荐你学习的课程。里面有几节关于计算机科学史的课时,不过都是流于表面而没有深入研究。(感谢上帝,一位高尚的互联网秩序义务维护者指出了其中存在的一个特别恶劣的错误)。该课程的主要目的是教授你编程语言的通用结构要素:变量、函数、控制流、循环等。换句话说,该课程聚焦于为了开始理解编程术语中的模式你所需要知道的内容。 -公平地看,Codecademy 也提供其他内容深入的课程。但是即使是如 “Computer Science Path”(计算机科学之路) 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这就是重点—— Codecademy 的主要特点就是提供给你一些交互式的带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动 _Computer Literacy Project_ 的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[8][13]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? +公平地看,Codecademy 也提供其他内容深入的课程。但是即使是如 “Computer Science Path”(计算机科学之路) 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这就是重点—— Codecademy 的主要特点就是提供给你一些交互式的带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动计算机认知计划的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[8][13]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? 我一直在大声鼓吹“一般原则”,因此让我再解释下我认为的一般原则是什么以及为什么它们如此重要。J. Clark Scott 出了一本有关计算机的书,书名为 _But How Do It Know?_(但是它怎么知道)。这个书名来自书的序言里的一则笑话:一个店员向人群推销保温瓶,说保温瓶可以让热食始终是热的,冷食始终是冷的。一名听众对这个新发明感到惊讶,问道,但是它怎么知道(根据你给它的食物类型的不同选择做相应的事情呢)?笑点在于保温瓶当然不能感知食物的温度然后据此做出决定——保温瓶仅仅制作成保证冷食必然保持冷的,热食必然保持热的就可以了。人们也以(笑话中的那个听众)一样的方式看待计算机,相信计算机就是能够基于提供给它们的代码“选择”做一件事或者另一件事的数字大脑。但是了解一些有关计算机如何工作的知识,哪怕是很初级水平的理解,也能让(人们理解中的)计算机摆脱(做判断的)侏儒。这就是为什么 Jacquard 织机是一个很好的有助理解的例子。一开始它似乎是一种难以置信的设备,它读取打孔卡片,然后以某种方式“知道”编织正确的样式。现实是显而易见的:每一行孔都对应一根线,而一行中有孔的地方对应着提起的线。理解了这些虽然不会有助于你用电脑完成新的事情,但是将使你自信于你不是在跟某些神秘事物打交道。我们应当尽快将这种自信的感受传授给初学者。 唉,真实存在的问题是可能没有人想要了解 Jacquard 织机。根据 Codecademy 如何强调他们教授的专业应用来判断,很多人开始使用 Codecademy 可能是因为他们相信这有助于“提升”他们的职业生涯。他们没有来由地相信首要的问题是理解编程的专业术语,因此他们才想要 “Learn to code”。他们想要在他们所拥用的每天晚上晚餐与就寝之间的一两个小时里尽快做这件事。Codecademy 毕竟只是一门投其所好的生意而非一些有关18世纪就发明了的机器的间接说明。 -另一方面,_Computer Literacy Project_ 是供职于 BBC 的一群制作人与公务员所认为的将电脑使用教给国民的最好的方式。我承认因为这一群人教会大众他们无法以己之力所能求得的事物而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用电脑,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所言][14],我怀疑在计算机已经变得相对简单的时代里学习使用电脑是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 _The Computer Programme_ 这样的尽己所能不仅仅教授编程而且教授计算机是为什么又是如何运行程序的节目。在看完 _The Computer Programme_ 之后,你可能并不能理解电脑屏幕上的所有编程术语,但是实际上你并不需要,因为你知道无论“代码”是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能理解了编程术语的一些味道,但是对你来说一台电脑仍然只是一台能够以某种方式将编程术语转化为运行的软件的魔法机器。这并不是计算机认知。 - - - 1. Robert Albury and David Allen, Microelectronics, report (1979). [↩︎][18] - - 2. Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, . [↩︎][19] - - 3. John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20]. [↩︎][21] - - 4. David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, . [↩︎][22] - - 5. ibid. [↩︎][23] - - 6. Williams, 51. [↩︎][24] - - 7. Radcliffe, 11. [↩︎][25] - - 8. Radcliffe, 5. [↩︎][26] - - - +另一方面,计算机认知计划 是供职于 BBC 的一群制作人与公务员所认为的将电脑使用教给国民的最好的方式。我承认因为这一群人教会大众他们无法以己之力所能求得的事物而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用电脑,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所言][14],我怀疑在计算机已经变得相对简单的时代里学习使用电脑是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 _The Computer Programme_ 这样的尽己所能不仅仅教授编程而且教授计算机是为什么又是如何运行程序的节目。在看完 _The Computer Programme_ 之后,你可能并不能理解电脑屏幕上的所有编程术语,但是实际上你并不需要,因为你知道无论“代码”是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能理解了编程术语的一些味道,但是对你来说一台电脑仍然只是一台能够以某种方式将编程术语转化为运行的软件的魔法机器。这并不是计算机认知。 -------------------------------------------------------------------------------- @@ -108,32 +89,26 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [a]: https://twobithistory.org [b]: https://github.com/lujun9972 -[1]: tmp.zNBs2lK4Ca#fn:1 -[2]: tmp.zNBs2lK4Ca#fn:2 -[3]: tmp.zNBs2lK4Ca#fn:3 [4]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/ [5]: https://twobithistory.org/2018/07/22/dawn-of-the-microcomputer.html -[6]: tmp.zNBs2lK4Ca#fn:4 -[7]: tmp.zNBs2lK4Ca#fn:5 -[8]: tmp.zNBs2lK4Ca#fn:6 [9]: https://twobithistory.org/images/beeb.jpg [10]: https://twitter.com/TwoBitHistory/status/1112372000742404098 -[11]: tmp.zNBs2lK4Ca#fn:7 [12]: https://twitter.com/TwoBitHistory/status/1111305774939234304 -[13]: tmp.zNBs2lK4Ca#fn:8 [14]: https://twobithistory.org/2018/09/02/learning-basic.html [15]: https://twitter.com/TwoBitHistory [16]: https://twobithistory.org/feed.xml [17]: https://twitter.com/TwoBitHistory/status/1091148050221944832?ref_src=twsrc%5Etfw -[18]: tmp.zNBs2lK4Ca#fnref:1 -[19]: tmp.zNBs2lK4Ca#fnref:2 [20]: https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards%20Computer%20Literacy.pdf -[21]: tmp.zNBs2lK4Ca#fnref:3 -[22]: tmp.zNBs2lK4Ca#fnref:4 -[23]: tmp.zNBs2lK4Ca#fnref:5 -[24]: tmp.zNBs2lK4Ca#fnref:6 -[25]: tmp.zNBs2lK4Ca#fnref:7 -[26]: tmp.zNBs2lK4Ca#fnref:8 + + +[^1]: Robert Albury and David Allen, Microelectronics, report (1979).  +[^2]: Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, .  +[^3]: John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20].  +[^4]: David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, .  +[^5]: ibid.  +[^6]: Williams, 51.  +[^7]: Radcliffe, 11.  +[^8]: Radcliffe, 5.  [T1]: https://www.codecademy.com/ [T2]: https://bbcmicro.computer/ From 460733acc10181a477a8bee2b1de89e6ea44c569 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 22 Jan 2023 18:43:42 +0800 Subject: [PATCH 212/357] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @ZhangZhanhaoxiang 感谢您,完成了第一篇翻译贡献! --- ... 11 tips for writing a good Git commit message.md | 113 +++++++++--------- 1 file changed, 58 insertions(+), 55 deletions(-) diff --git a/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md b/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md index f78aab08dc..4b4c9955d5 100644 --- a/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md +++ b/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md @@ -3,29 +3,33 @@ [#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" [#]: collector: "lkxed" [#]: translator: "ZhangZhanhaoxiang" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -编写好 Git 提交消息的 11 个技巧 +编写好 Git 提交信息的 11 个技巧 ====== +![][0] + +> 我请社区的开源从业者分享了他们关于编写有用的 Git 提交信息的建议。 + 最近,当需要更新时,我一直在密切关注从产品和服务获得的变更日志。以下是一些示例: - 修复了一些错误。 - 进行了一些可访问性改进。 -- 我们已经进行了改进并修复了错误,以实现更顺畅地运行。 +- 我们已经进行了改进,并修复了错误,以实现更顺畅地运行。 -当我想到我作为一名初级开发人员发出的一些最初的承诺信息时,我不得不沮丧地垂下头: +当我想到我还是一名初级开发人员写的一些首次提交信息时,我不得不沮丧地垂下头: - 用鼠标点了一下,现在一切似乎都正常了。 - 执行了程序员 X 告诉我的操作,现在横幅是蓝色的。 -这可能令人沮丧!我向我们的贡献者群体提出了以下问题: +这可真令人沮丧!我向我们的贡献者们提出了以下问题: -- 什么是好的 Git 提交消息? -- 什么是坏的 Git 提交消息? -- 你认为一个项目应该有哪些关于提交消息所写内容的规则? +- 什么是好的 Git 提交信息? +- 什么是坏的 Git 提交信息? +- 你认为一个项目应该有哪些关于提交信息所写内容的规则? 以下是他们的答案: @@ -33,44 +37,44 @@ 与你写任何东西一样,你应该考虑谁会阅读它。然后相应地调整信息的数量和深度。 -提高你的自然语言和写作技能对于软件开发的顺利职业生涯至关重要。重要的不仅仅是代码。 +提高你的自然语言和写作技能对于软件开发的职业生涯顺利发展至关重要。重要的不仅仅是代码。 -**—[Camilla Conte][1]** +—— [Camilla Conte][1] ### 具有描述性,不要假设 -我花了很多时间在 OpenStack[2] 社区中进行合作,与我在像“野外”一样随意的其他项目中看到的相比,它的代码审查员有一些相当严格的标准。 +我在 [OpenStack][2] 社区中花了很多时间合作,与我在像“野外”的其他随意的项目中看到的相比,它的代码审查者有一些相当严格的标准。 -我撰写一条可靠的提交消息的时间通常要比编写实际的代码实现或修复程序的时间长得多。有时,提交消息所需的时间可能会比它们解释的差异长很多倍。 +我花在撰写一条可靠的提交信息的时间,往往要比编写实际的代码实现或修复程序的时间长得多。有时,提交信息可能会比它们解释的代码变化长很多倍。 总结一些贡献者指导: - 描述为什么要做出改变,而不仅仅是改变了什么 - 第一个提交行是最重要的(就像电子邮件的主题行) -- 不要自认为审查人员了解你正在修复的原始问题 -- 不要自认为审查者可以访问外部 web 服务或网站(总结缺陷报告和其他相关讨论) -- 不要假设代码是不言自明的和自我记录的(尽管没有必要重复您在代码注释中也提出的观点) -- 不要只包含与更改的早期修订相关的信息(我们希望贡献者将修订压缩在一起,并相应地编辑其提交消息)。 +- 不要假设审查者了解你正在修复的原始问题 +- 不要假设审查者可以访问外部 Web 服务或网站(总结缺陷报告和其他相关讨论) +- 不要假设代码是不言自明的和自我说明的(尽管没有必要重复你在代码注释中也提出的观点) +- 不要只包含与更改的早期修订相关的信息(我们希望贡献者将修订压扁在一起,并相应地编辑其提交信息)。 -《OpenStack 贡献者指南》中有一个关于该主题的简短章节:[https://docs.openstack.org/contributors/common/git.html#commit-messages][3] +《OpenStack 贡献者指南》中有一个关于该主题的 [简短章节][3]。 -**—[Jeremy Stanley][4]** +—— [Jeremy Stanley][4] -### 你未来的自己会感谢你 +### 未来的你会感谢自己 -我非常同意杰里米的观点。1000 份地支持。 +我非常同意 Jeremy 的观点。+1000。 Jeremy 说:“描述为什么要做出改变,而不仅仅是改变了什么。” -想象一下,你是旁观者,在遥远的未来,试图理解这个提交。 +想象一下,你是旁观者,在遥远的未来试图理解这个提交。 正如老话所说,设身处地为他人着想。 -**—[Leigh Morresi][5]** +—— [Leigh Morresi][5] -### 使用 bug 的 ID +### 使用 bug ID -我建议在提交消息的开头添加 bug ID,以便稍后使用 [`grep` 命令][6] 更容易跟踪提交。 +我建议在提交信息的开头添加 bug ID,这样在以后使用 [grep 命令][6] 跟踪提交信息时就会更方便。 例如: @@ -85,77 +89,75 @@ $ git commit -m "BZ#19xxxxx - 为什么有更改的必要? - 更改的依据是什么? -**—[Agil Antony][7]** +—— [Agil Antony][7] ### 讲述整个故事 -我喜欢想象每个提交消息都有一个隐藏的前缀,上面写着“By applying this(通过应用这个)”。 +我喜欢想象每个提交信息都有一个隐藏的前缀,上面写着 “By applying this(通过应用这个)”。 -一个好的提交消息包括将要发生的事情以及原因。仅仅有工作任务清单作参考是不够的,因为这分散了信息;Git 是去中心化的。作为一名软件开发人员,我想知道为什么当前要考虑做出更改。正在解决的具体问题是什么?考虑(并放弃)了哪些替代解决方案?在创建变更集的过程中发现了哪些影响当前内容的意外情况? +一个好的提交信息包括将要发生的事情以及原因。仅仅有工单作参考是不够的,因为这分散了信息;Git 是去中心化的。作为一名软件开发人员,我想知道为什么当前要考虑做出更改。正在解决的具体问题是什么?考虑(并放弃)了哪些替代解决方案?在创建变更集的过程中发现了哪些影响当前内容的意外情况? -缩短提交消息没有什么用。你未来的自己和未来的同事会感激你深入解释问题,以及为什么这个变更集是解决方案。认真学习和利用那些有丰富“生活经验”的“烹饪”博客。然而,在此,仅仅是把生活经验替换成了项目的问题罢了(LCTT 译注:意思是要认真学习和模仿优秀、详细的 commit)。 +缩短提交信息没有什么好处。你未来的自己和未来的同事会感激你深入地解释了问题,以及为什么这个变更集是解决方案。认真学习和利用那些内容丰富的“烹饪”博客。然而,在此,仅仅是把生活经验替换成了项目的问题罢了(LCTT 译注:意思是要认真学习和模仿优秀、详细的提交信息)。 -**—[Lisa Seelye][8]** +—— [Lisa Seelye][8] ### 但不要过于冗长 -一个好的 git 提交消息包含有关所做操作的信息,而不要包含其他信息。例如,如果您需要更新.gitignore,只需写“updated .gitignore”即可。人们可以自行深入到提交本身中了解更多细节。它不需要冗长。 +一个好的 Git 提交信息包含有关所做操作的信息,而不要包含其他信息。例如,如果你需要更新 `.gitignore`,只需写 “更新了 .gitignore” 即可。人们可以自行深入到提交本身中了解更多细节。它不需要冗长。 -令人反感的提交消息类似于“哦,废话”或“试试这个”。当然,我对此感到内疚,但这对于任何需要看一眼提交的人来说都没有任何帮助。 +糟糕的提交信息类似于“哦,糟糕”或“试试这个”。当然,我也曾经犯过这样的错误,但这对于任何需要一目了然地查看提交信息的人来说都没有任何帮助。 -提交信息的规则非常主观。他们可能因领导和团队而异。但至少要提供一些有关提交的上下文信息。特别是如果它是一个大的更改。没有人有时间浏览 1000 多个具有重大更改历史的文件。 +提交信息的规则非常主观。他们可能因领导和团队而异。但至少要提供一些有关提交的上下文信息。特别是如果它是一个大的更改。没有人有时间浏览 1000 多个具有大量更改历史的文件。 -**—[Miriam Goldman][9]** +—— [Miriam Goldman][9] ### 使用现在时 -我喜欢用现在时而不是将来时的术语编写项目经理风格的提交消息(例如,“add”而不是“added”)。然而,这通常只有在频繁提交时才有可能。当你面临最后期限时,你能记住的只有“我是如何做的”而已。然而,写得好的提交不仅有助于合作者,而且有助于提交者回忆历史。 +我喜欢项目经理风格的提交信息,用现在时而不是将来时的术语编写(例如,“添加” 而不是“已添加”)。然而,这通常只有在频繁提交时才有可能。当你面临最后期限时,你能记住的只有“我是如何做的”而已。然而,写得好的提交不仅有助于合作者,而且有助于提交者回忆历史。 -**—[Chris Okpada][10]** +—— [Chris Okpada][10] ### 不要依赖链接 -我想提醒同事的一件事是,你不仅仅是向给你的提交作批准的人解释。你还将向未来的开发人员和用户解释,他们会发现这提交有利有弊,或者指责操作,并试图了解其相关性。 +我想提醒同事们的一件事是,你不仅仅是向给你的提交作批准的人解释。你还要向未来的开发人员和用户解释,他们在使用 bisect 或 blame 定位问题时发现了这个提交,并试图了解其相关性。 -如果提供的唯一的上下文是指向某个外部系统的链接,并且在未来很长一段时间内,它所链接的系统不再使用,或者该用户无法访问,那么您的提交消息将变得无用,也相当于是空白的。 +如果提供的唯一的上下文是指向某个外部系统的链接,并且在未来很长一段时间内,它所链接的系统不再使用,或者该用户无法访问,那么你的提交信息将变得无用,可能还不如空白。 -我经常去挖掘一些开源项目的 Git 历史,发现有些提交消息无非就是一个 bug ID,或者是某个公司内部的和专用缺陷跟踪器的链接。 +我经常去挖掘一些开源项目的 Git 历史,发现有些提交信息无非就是一个 Bug ID,或者是某个公司内部的和专用的缺陷跟踪器的链接。 不要依赖链接! -**—[Jeremy Stanley][4]** +—— [Jeremy Stanley][4] ### 清晰简洁的变更日志 -作为一名发行沟通经理,我经常阅读整个发行版。我还与开发人员会面,讨论任何尚未明确的领域。然后我很早就测试了这个版本。之后,我将通过寻找变更日志和相应的修订或新内容来撰写发布帖子。 +作为一名发布沟通经理,我会经常阅读整个发布版块。我还会与开发人员会面,讨论任何尚未明确的领域。然后我提前测试了版本。之后,我将通过寻找变更日志和相应的修订或新内容来撰写发布文章。 -变更日志是开发人员的个人提醒,但也有相应的提议和问题。您应该适当地将产品名称大写,使用拼写检查器,与标点符号和句子结构保持一致。首席开发人员也应该校对这些。您的客户,即开发人员,正在阅读这些内容。在运行更新之前,他们应该了解哪些信息能更好地为客户服务? +变更日志是开发人员的个人提醒,但也有相应的提议和工单。你应该适当地将产品名称大写,使用拼写检查器,与标点符号和句子结构保持一致。首席开发人员也应该校对这些。你的客户,即开发人员,正在阅读这些内容。在运行更新之前,他们应该了解哪些信息能更好地为客户服务? -**—[Courtney Robertson][11]** +—— [Courtney Robertson][11] ### 具体一点 -作为一个频繁发布的管理者,我喜欢将组件命名为提交的消息,以及对更改内容的简要描述。在我们忘记了你聪明的分支名称之后,还可以参考一下这项工作的请求来自何处,这有助于将修复程序联系在一起。 +作为一个经常性的发布经理,我喜欢带有组件名称的提交的信息,以及对更改内容的简要描述。在我们忘记了你聪明的分支名称之后,还可以参考一下这项工作的请求来自何处,这有助于将修复程序联系在一起。 -- “fix fatal error”并不是理想的提交。 +- “修复致命错误”并不是理想的提交。 +- “ISS-304: 修复具有合作伙伴角色的用户在登录访问控制功能中的致命错误”更好。 +- “ISS-304: 登录访问控制:修复 `getPartnerId()` 的致命错误”也更好。 -- “ISS-304: Fix fatal error in Login Access Control function for users with the Partner role”更好。 +我可以查看 Git 提交、分支、合并提交之间的整个关系,并检查更改的各个行和文件。但我在发布过程中没有这样的时间。我希望能够在项目管理工具回溯这项工作的源头,了解哪些组件正在被更改,以及以何种方式进行更改。 -- “ISS-304: Login Access Control: fix fatal error in getPartnerId()”也是更好。 - -我可以查看 Git 提交、分支、合并提交之间的整个关系,并检查更改的各个行和文件。但我在发布过程中没有这样的时间。我希望能够回到项目管理工具中这项工作的来源,了解哪些组件正在被更改,以及以何种方式进行更改。 - -**—[Ryan Price][12]** +—— [Ryan Price][12] ### 让它成为一种习惯 -我最喜欢犯的错误是“在我切换分支之前提交”,因为我必须处理其他更紧急的事情。有时候,我需要把我目前的工作提交给一个完全不同的项目。我的经理的策略是让我们像平时一样工作。但当我们重新启动时,他希望我们在有意义的地方压缩提交,并编写更好的消息。我不能说我们总是这样做,但他的方法确实有道理。 +我最喜欢犯的错误是“在我切换分支之前提交”,因为我必须处理其他更紧急的事情。有时候,我需要把我目前的工作提交给一个完全不同的项目。我的经理的策略是让我们像平时一样工作。但当我们变基时,他希望我们在有意义的地方压扁提交,并编写更好的信息。我不能说我们总是这样做,但他的方法确实有道理。 -我也有很多“这是坏的,不知道为什么”类型的消息(哈哈),我尝试了一些东西,但想在尝试其他东西之前提交该尝试,以防方法 A 比方法 B 更接近解决问题。我已经写了 10 多年了。 +我也有很多“这个坏了,不知道为什么”类型的信息(哈哈),我尝试了一些东西,但想在尝试其他东西之前提交该尝试,以防方法 A 比方法 B 更接近解决问题。我已经写了 10 多年了。 -**—[RachieVee][13]** +—— [RachieVee][13] -你生活中的提交信息建议或提示是什么?让我们在评论中知道。 +你的提交信息建议或提示是什么?让我们在评论中知道。 -------------------------------------------------------------------------------- @@ -164,7 +166,7 @@ via: https://opensource.com/article/22/12/git-commit-message 作者:[AmyJune Hineline][a] 选题:[lkxed][b] 译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -183,3 +185,4 @@ via: https://opensource.com/article/22/12/git-commit-message [11]: https://opensource.com/users/courtneyrdev [12]: https://opensource.com/users/liberatr [13]: https://opensource.com/users/rachievee +[0]: https://img.linux.net.cn/data/attachment/album/202301/22/184300vcsqmm85ub1ssh4b.jpg \ No newline at end of file From 8a75295763efcdc5b15bce0e9aa666822a58f198 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 22 Jan 2023 18:44:44 +0800 Subject: [PATCH 213/357] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @ZhangZhanhaoxiang 本文首发地址:https://linux.cn/article-15467-1.html 您的 LCTT 专页:https://linux.cn/lctt/ZhangZhanhaoxiang --- ...28.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md (99%) diff --git a/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md b/published/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md similarity index 99% rename from translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md rename to published/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md index 4b4c9955d5..74a7de54a8 100644 --- a/translated/tech/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md +++ b/published/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "ZhangZhanhaoxiang" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15467-1.html" 编写好 Git 提交信息的 11 个技巧 ====== From a46a78fa2fc7eb78af2033a2568930c473c19255 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 23 Jan 2023 13:23:34 +0800 Subject: [PATCH 214/357] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @CanYellow 翻译的很好很细心。有一点小建议,不要使用太长的句子,尽可能的分成短句,这样有利于阅读 —— 当然,原文如此,我们拆分有时候也不是很顺畅。 --- .../20190331 Codecademy vs. The BBC Micro.md | 62 ++++++++++--------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/translated/talk/20190331 Codecademy vs. The BBC Micro.md b/translated/talk/20190331 Codecademy vs. The BBC Micro.md index f0e1dc7469..95f226cf35 100644 --- a/translated/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/translated/talk/20190331 Codecademy vs. The BBC Micro.md @@ -7,74 +7,76 @@ [#]: publisher: " " [#]: url: " " -BBC Micro 比之 Codecademy +上世纪的 BBC Micro 和如今的 Codecademy ====== +![][0] + 20 世纪 70 年代末期,计算机突然成为了某种普罗大众能够买回家的商品;而此前的几十年间,它一直只是听命于企业级霸主的神秘而笨重的机器。少数狂热的爱好者注意到了它是多么的吸引人,并争相购买了属于自己的计算机。对更多的人而言,微型计算机的到来引发了对未来的无助焦虑。同时期的杂志上的一则广告承诺,家用计算机将“让您的孩子在学校享有不公平的优势”。广告中展示了一位打着领带,身着时髦的西装外套的男孩子急切地举手回答问题,而在他的身后,他的那些显得不那么聪明的同学们闷闷不乐地望着他。这则广告以及其它类似的广告在暗示:世界正在疾速改变,而如果你不立即学习如何使用这些令人生畏的新设备之一,你和你的家人就会被时代所抛弃。 在英国,这些焦虑转化为政府高层对国家竞争力的担忧。从各种意义上,20 世纪 70 年代对英国来说都是平平无奇的十年,通胀与失业率高企。与此同时,一系列的罢工让伦敦陷于一次又一次的停电中。一篇 1979 年的政府报告担心:没有跟上计算机技术浪潮将“为我们糟糕的工业表现平添又一个影响因素”[^1]。英国似乎已经在计算机技术的角逐中落后了 —— 所有的大型的计算机公司都是美国的,而集成电路则在日本和中国台湾制造。 -由英国政府建立的公共服务广播公司英国广播公司(BBC)作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感,来解决英国的国家竞争力问题。BBC 发起了 “[计算机认知计划][T3]Computer Literacy Project”,该计划包括多个教育方向的努力:几部电视连续剧,一些相关书籍,一张支持团队网络以及一款名为 [BBC Micro][T2] 的特别定制的微型计算机。该项目是如此成功,以致于 1983 年 《[BYTE][T4]》杂志的一位编辑写道:“与美国相比,英国人对微型计算机感兴趣的比例更高。”[^2] 这位编辑惊讶于在英国举办的 “第五届个人电脑世界展Fifth Personal Computer World Show” 的人数比参加当年的西海岸电脑展的人数更多。超过六分之一的英国人观看了由该计划制作的第一部电视连续剧,并最终售出了 150 万台 BBC Micro 微型计算机。[^3] +由英国政府建立的公共服务广播公司英国广播公司(BBC)作出了一个大胆的举动,决定通过帮助英国人战胜他们对计算机的反感,来解决英国的国家竞争力问题。BBC 发起了 “[计算机认知计划][T3]Computer Literacy Project”,该计划包括多个教育方向的努力:几部电视连续剧、一些相关书籍、一个支持团队网络以及一款名为 [BBC Micro][T2] 的特别定制的微型计算机。该项目是如此成功,以致于 1983 年 《[BYTE][T4]》杂志的一位编辑写道:“与美国相比,英国人对微型计算机感兴趣的比例更高。”[^2] 这位编辑惊讶于在英国举办的 第五届个人计算机世界展Fifth Personal Computer World Show 的人数比参加当年的西海岸计算机展的人数更多。超过六分之一的英国人观看了由该计划制作的第一部电视连续剧,并最终售出了 150 万台 BBC Micro 微型计算机。[^3] -去年,一份包含了由计算机认知计划所制作的每部电视连续剧和所有出版资料的 [档案][4] 被发布在了互联网上。我抱着极大的兴趣观看这些电视连续剧,并试图想象在 20 世纪 80 年代早期学习电脑使用是什么样子。但事实证明,更有趣的是计算机是如何被教授的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编程”。我们拥有诸如 [Codecademy][T1] 这样的网站,通过新技术的运用进行交互式编程教学。我们可能假定这种方式比 80 年代的呆板的电视连续剧更高效,不过真的是这样吗? +去年,一份包含了由计算机认知计划制作的每一部电视连续剧和所有出版资料的 [档案][4] 被发布在了互联网上。我抱着极大的兴趣观看了这些电视连续剧,并试图想象在 20 世纪 80 年代早期学习计算机使用是什么样子。但事实证明,更有趣的是计算机是如何被教授的。今天,我们仍然担心技术发展使人们落伍。富有的科技企业家与政府花费大量的资金试图教孩子们“编码”。我们拥有诸如 [Codecademy][T1] 这样的网站,通过新技术的运用进行交互式编程教学。我们可能假定这种方式比 80 年代的呆板的电视连续剧更高效,不过真的是这样吗? ### 计算机认知计划 -微型计算机革命始于 1975 年 [Altair 8800][5] 的发布。仅仅两年后,Apple II、TRS-80 以及 Commodore PET 都相继发布。全新的计算机的销量爆发式增长。1978 年,BBC 在一部名为 《[芯片来了][T5]Now the Chips Are Down》(LCTT 译注:对于非英国区域的读者,可以在 [这里][T6] 观看该纪录片)的纪录片中探讨了这些新机器必将会带来的剧烈的社会变革。 +1975 年发布的 [Altair 8800][5] 拉开了微型计算机革命的大幕。不到两年,Apple II、TRS-80 以及 Commodore PET 也都相继发布。全新的计算机的销量爆发式增长。1978 年,BBC 在一部名为 《[芯片来了][T5]Now the Chips Are Down》(LCTT 译注:对于非英国区域的读者,可以在 [这里][T6] 观看该纪录片)的纪录片中探讨了这些新机器必将会带来的剧烈的社会变革。 -该纪录片充满担忧。在前 5 分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放,屏幕上绿色的电脉冲围绕着放大后的芯片上起舞,解说员进一步说,这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。该纪录片继续探讨了机器人如何用于汽车自动化组装,以及欧洲的手表工业如何在与美国的电子表工业竞争中败下阵来。它指责英国政府在应对未来的大规模失业的准备上做得不够。 +该纪录片充满担忧。在前 5 分钟内,解说员提到这种微电子器件将“彻底改变我们的生活方式”。随着诡异的合成音乐的播放,屏幕上绿色的电脉冲围绕着放大后的芯片起舞,解说员进一步说,这种芯片“正是日本放弃造船业的原因,也将成为我们的孩子们长大后失业的原因”。该纪录片继续探讨了机器人如何用于汽车自动化组装,以及欧洲的手表业如何在与美国的电子表行业竞争中败下阵来。它指责英国政府在应对未来的大规模失业的准备上做得不够。 -该纪录片据信可能在英国议会上展示过。[^4] 包括工业署和人力服务委员会在内的一些政府代表开始对尝试提高英国公众对计算机的认识感兴趣。人力服务委员会为来自 BBC 的教育部门的一个团队到日本、美国以及其他国家的实地考察提供了资助。该研究团队完成了一份报告,历数了微电子技术在工业制造、劳动关系与办公室工作等领域的哪些方面将发生重大改变。70 年代末,BBC 决定制作一部十集电视连续剧,帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”[^5]。这一努力最终成为了一个与“成人扫盲计划Adult Literacy Project”相似的多媒体项目。成人扫盲计划是 BBC 此前进行的一项工作,包括一部电视连续剧以及补充课程,帮助两百万人提高他们的阅读能力。 +该纪录片据信可能在英国议会上展示过。[^4] 包括工业署和人力服务委员会在内的一些政府代表,开始对尝试提高英国公众对计算机的认识感兴趣。人力服务委员会为来自 BBC 的教育部门提供了资助,让他们的一个团队到日本、美国以及其他国家进行了实地考察。该研究团队完成了一份报告,历数了微电子技术在工业制造、劳动关系与办公室工作等领域的哪些方面将发生重大改变。70 年代末,BBC 决定制作一部十集电视连续剧,帮助普通英国人“学习如何使用和控制计算机,避免产生被计算机支配的感受”[^5]。这一努力最终成为了一个与 “成人认知计划Adult Literacy Project” 相似的多媒体项目。成人认知计划是 BBC 此前进行的一项工作,包括一部电视连续剧以及补充课程,帮助两百万人提高他们的阅读能力。 -计算机认知计划背后的制作方热衷于以“实操”示例为特色的电视连续剧。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子必须使用 BASIC 语言,因为这是在几乎所有的微型计算机上都使用的编程语言(实际是整个 交互界面shell)。但是制作者面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言 —— BBC BASIC,以及与之配合使用的微型计算机。英国公众就可以购买这种全新的微型计算机,并依照示例操作,而不需要担心软硬件上的差异带来的问题。 +计算机认知计划背后的制作方热衷于以“实操”示例为特色的电视连续剧。这样如果观众拥有一台微型计算机在家里,他们就可以亲自动手尝试。这些例子必须使用 BASIC 语言,因为这是在几乎所有的微型计算机上都使用的编程语言(实际是整个 交互界面shell)。但是制作者面临一个棘手的问题:微型计算机制造商均拥有他们自己的 BASIC 方言,因此不论他们选择哪一种方言,他们都不可避免地疏远大部分的观众。唯一切实可行的方案是创造一种全新的 BASIC 方言 —— BBC BASIC,以及与之配合使用的微型计算机。英国公众可以购买这种全新的微型计算机,并依照示例操作,而不需要担心软硬件上的差异带来的问题。 -BBC 的电视制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范,并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。计算机认知计划的技术顾问还建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的方言(他们可能没有确切地这样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[^6] +BBC 的电视制作人与节目主持人并不具备自行制造微型计算机的能力,因此他们汇总了一份他们预期的计算机的规范,并邀请英国的微型计算机公司推出满足该规范要求的新机器。这份规范要求提供一种相对更强劲的计算机,因为 BBC 的制作方认为相应的设备应当能够运行真实有用的应用程序。计算机认知计划的技术顾问还建议:如果必须要教授全体国人一种 BASIC 方言的话,那么最好选择表现良好的方言(他们可能没有确切地这样说,不过我认为这就是他们的真实想法)。BBS BASIC 通过允许递归调用与局部变量弥补了一些 BASIC 语言的常见缺点。[^6] -BBC 最终决定由一家位于剑桥的名为 Acorn Computers 的公司制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 并未考虑来自经营 [Clive Sinclair][T7] 的申请,他经营着一家 Sinclair Research 公司。1980 年,Sinclair 公司通过 Sinclair ZX80 为英国带来了微型计算机的大众市场。Sinclair 公司的新产品 ZX81 虽然更便宜,但是性能不足以满足 BBC 的要求。Acorn 的新型电脑(内部被称为 Proton)的原型机更加昂贵,但是性能更好,更具备扩展性。BBC 对此印象深刻。该型号的计算机从未以 “Proton” 的名字上市或销售过,因为它在 1981 年 12 月以 “BBC Micro” 的名字发布了。BBC Micro 又被亲切地称为 “The Beeb”,你可以以 235 英磅的价格购得其 16k 内存的版本,或者以 335 英磅的价格获得其 32k 内存的版本。 +BBC 最终决定由一家位于剑桥的名为 Acorn Computers 的公司制造 BBC Micro 计算机。在选择 Acorn 公司的时候,BBC 没有接受来自 [Clive Sinclair][T7] 的申请,他经营着一家 Sinclair Research 公司。1980 年,Sinclair 公司通过 Sinclair ZX80 为英国开拓了微型计算机的大众市场。虽然 Sinclair 公司的新产品 ZX81 更便宜,但是性能不足以满足 BBC 的要求。而 Acorn 的新型计算机(内部被称为 Proton)的原型机更加昂贵,但是性能更好,更具备扩展性。BBC 对此印象深刻。该型号的计算机从未以 “Proton” 的名字上市或销售过,因为它在 1981 年 12 月以 “BBC Micro” 的名字发布了。BBC Micro 又被亲切地称为 “The Beeb”,你可以以 235 英磅的价格购得其 16k 内存的版本,或者以 335 英磅的价格获得其 32k 内存的版本。 -1980 年,Acorn 在英国计算机行业处于劣势,但是 BBC Micro 帮助 Acorn 公司创立了遗产。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM” 如今表示 “先进 RISC 架构设备Advanced RISC Machine”,然而最初它代表的是 “Acorn RISC 架构设备Acorn RISC Machine”。ARM 架构背后的 ARM 控股公司就是 Acorn 公司在 1990 年之后的延续。 +到了 1980 年,Acorn 在英国计算机行业逐渐衰微,但是 BBC Micro 帮助 Acorn 公司创立了其遗留至今的宝贵遗产。时至今日,世界范围内最流行的微处理器指令集是 ARM 架构,“ARM” 如今代表的是 “先进 RISC 架构设备Advanced RISC Machine”,然而最初它代表的是 “Acorn RISC 架构设备Acorn RISC Machine”。ARM 架构背后的 ARM 控股公司就是 Acorn 公司在 1990 年之后的延续。 ![Picture of the BBC Micro.][9] -_BBC Micro 的一幅拙劣图片,我摄于美国加州山景城的计算机历史博物馆Computer History Museum_ +_BBC Micro 的一幅差劲的图片,我摄于美国加州山景城的计算机历史博物馆Computer History Museum_ ### 《计算机程序》电视连续剧 -作为计算机认知计划的一部分,最终制作了十几部不同的电视连续剧。第一部作品是一部名为 《计算机程序The Computer Programme》 的十集电视连续剧。该连续剧在 1982 年初播出了十周。每周晚上有一百万人收看该节目,另有有 25 万人在每周日与周一的下午收看该节目的重播。 +作为计算机认知计划的一部分,他们最终制作了十几部不同的电视连续剧。第一部作品是一部名为 《计算机程序The Computer Programme》 的十集电视连续剧。该连续剧在 1982 年初播出了十周。每周晚上有一百万人收看该节目,还有 25 万人在每周日与周一的下午收看该节目的重播。 -该电视节目由两名主持人主持:Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演专家,他具有专业的大型计算机编程经验。这是一个启发性的方式,有些 [略显笨拙的过渡][10] —— Serle 经常直接从与 McNaught-Davis 的对话中,过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注。他可能会惊恐地看着满屏的 BASIC 语言,并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在电脑前进行事实上的结对编程。McNaught-Davis 会在不同的地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,那么它的亲和力就会差很多。 +该电视节目由两名主持人主持:Chris Serle 和 Ian McNaught-Davis。Serle 扮演初学者,而 McNaught-Davis 扮演专家,他具有专业的大型计算机编程经验。这是一个启发性的方式,有些 [略显笨拙的过渡][10] —— Serle 经常直接从与 McNaught-Davis 的对话中,过渡到面向镜头的边走边说的讲述,此时你不禁会疑惑 McNaught-Davis 是否还站在画面之外。不过这意味着 Serle 可以表达观众肯定会有的关注 —— 他可能会惊恐地看着满屏的 BASIC 语言,并提出类似“这些美元符号是什么意思”的问题。在节目中的某些时刻,Serle 与 McNaught-Davis 会坐在计算机前进行事实上的结对编程。McNaught-Davis 会在各个地方留下一些线索,而 Serle 则试图将它们弄清楚。如果这一节目仅仅由一个无所不知的讲述者主持,那么它的亲和力就会差很多。 -该节目也在努力展示计算在普通人生活中的实际应用。到 80 年代早期,家庭电脑已经开始与年轻男孩和电子游戏联系在一起。计算机认知计划的制作方试图避免采访“令人印象深刻的有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正是试图吸引这一人群对计算感兴趣 [^7]。在该系列的第一集中,该节目的“现场”记者 Gill Nevill 采访了一位女性,她购买了一台 Commodore PET 电脑用于辅助管理她的糖果店。这位名叫 Phyllis 的女性受访者看上去大约 60 多岁,但她在使用 PET 完成她的会计工作上没有任何问题,甚至已经开始使用 PET 为其他企业做计算机工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意电脑工作逐步取代她的糖果店生意,因为她更喜欢计算机工作。这次采访倒是可以换成对一名青少年的采访,介绍了他是如何修改 《[Breakout][T8]》 这款电子游戏,以使之运行更快并更具挑战性,不过这几乎鼓舞不了任何人。另一方面,如果普罗大众中的 Phyllis 都会使用电脑,那么你当然也可以。 +该节目也在努力展示计算在普通人生活中的实际应用。到 80 年代早期,家用电脑已经开始与年轻男孩和电子游戏联系在一起。计算机认知计划的制作方试图避免采访“令人印象深刻的、有能力的年轻人”,因为这可能会“加剧老年观众的焦虑”,而该节目正打算吸引这一人群对计算感兴趣 [^7]。在该系列的第一集中,该节目的 “现场” 记者 Gill Nevill 采访了一位女性,她购买了一台 Commodore PET 计算机用于辅助管理她的糖果店。这位名叫 Phyllis 的女性受访者看上去大约 60 多岁,但她在使用 PET 完成她的会计工作上没有任何问题,甚至已经开始使用 PET 为其他企业做计算机工作,这听上去像是一个有前途的自由职业的开端。Phyllis 说她并不介意计算机工作逐步取代她的糖果店生意,因为她更喜欢计算机工作。这次采访要是换成对一名青少年的采访,介绍了他是如何修改 《[Breakout][T8]》 电子游戏,以使之运行更快并更具挑战性,不过这就几乎鼓舞不了任何人。另一方面,如果普罗大众中的 Phyllis 都会使用计算机,那么你当然也可以。 -虽然该节目以大量的 BASIC 编程为特色,不过它实际想要教给观众的是计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中,有一个关于 [Jacquard][T9] 织机(LCTT 译注:中文网络译为雅卡尔提布机)的延伸讨论,主要是两个方面:其一,它揭示了计算机并不仅仅基于昨天发明的神秘技术 —— 计算的一些基本原则可以上溯到两百年前,就跟你可以在卡片上打孔来控制纺织机的想法一样简单;其二,经线与纬线的交织用来证明二元选择(即纬线是从上方还是下方穿过经线)在不断重复时足以产生巨大变化。当然,节目接下来继续讨论信息是如何使用二进制存储的。 +虽然该节目以大量的 BASIC 编程为特色,不过它实际想要教给观众的是,计算机通常是如何工作的。该节目通过类比的方法解释了其中的一般原则。在第二集中,有一个关于 [Jacquard][T9] 织机(LCTT 译注:中文网络译为雅卡尔提布机)的延伸讨论,主要是两个方面:其一,它揭示了计算机并不仅仅基于昨天发明的神秘技术 —— 计算的一些基本原则可以上溯到两百年前,就跟你可以在卡片上打孔来控制纺织机的想法一样简单;其二,经线与纬线的交织用来证明二元选择(即纬线是从上方还是下方穿过经线)在不断重复时足以产生巨大变化。当然,节目接下来继续讨论信息是如何使用二进制存储的。 -在该节目中接下来是一个蒸汽管风琴的章节,该管风琴能够演奏编码在一卷长长的、分段的打孔卡片的音乐。这个类比用以解释 BASIC 中的 子程序subroutine。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在演播室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下,并以某种方式添加一条指令,回到第一次播放副歌的原始分段,这就是子程序。这是一个绝妙的解释,它在人们的脑海中的印象非常深刻。 +在该节目中接下来是一个蒸汽管风琴的章节,该管风琴能够演奏编码在一卷长长的、分段的打孔卡片的音乐。这个类比用以解释 BASIC 中的 子程序subroutine。Serle 与 McNaught-Davis 将整卷的打孔卡片摊开在演播室的地板上,然后指出看上去像是重复的副歌的分段。McNaught-Davis 解释说,如果你将这些重复的卡片分段剪下,并以某种方式添加一条指令,回到第一次播放该副歌的最初的分段,这就是子程序。这是一个绝妙的解释,它在人们的脑海中的印象非常深刻。 我仅仅摘录了一些例子,不过我认为,总的来看该节目尤为擅长通过解释计算机实现功能所依赖的原理,使计算机不再神秘。这一节目本可以专注于 BASIC 教学,不过它并没有这样做。这被证明是一个相当明智的选择。在 1983 年写就的一篇回忆文章中,计算机认知计划的总制作人 John Radcliffe 如是写道: -> 如果计算机将如我们所相信的那样重要,对这一新主题的真正理解对每个人都很重要,也许与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,尽管我们意识到“亲自”体验在个人计算机上的价值,我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来……。我们相信,一旦人们掌握了这些最简单的原则,它们将可以进一步深入该主题。 +> 如果计算机将如我们所相信的那样重要,对这一新主题的真正理解对每个人都很重要,也许与文字读写能力同等重要。不管是在我们这里还是在美国,在计算机认知的主要路线上的早期思路均集中于编程上。然而随着我们思想的发展,尽管我们意识到“动手”体验在个人计算机上的价值,但我们开始降低对编程的重视,而更多的强调广泛的理解,将微型计算机与大型计算机联系起来,鼓励人们获取一系列应用程序与高级语言的经验,并将这些经验同现实世界中的工业与商业活动中的经验联系起来……。我们相信,一旦人们掌握了这些最简单的原则,它们将可以进一步深入该主题。 后来,Radcliffe 又以类似的口吻写道: -> 围绕着这一系列节目的主要阐释目标有很多争论。一派人认为,在使用微型计算机上的实际细节上给予建议,对本项目而言尤为重要。但我们的结论是,如果该系列节目要拥有可持续性的教育价值,它就必须通过对计算原理的解释,成为进入真实计算世界的一种方式。这需要通过对微型计算机的室内演示,通过类比方式解释其中的原则,真实生活中的实际应用的影片展示这三者的结合实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 +> 围绕着这一系列节目的主要阐释目标有很多争论。一些人认为,在使用微型计算机上的实际细节上给予建议,对本项目而言尤为重要。但我们的结论是,如果该系列节目要拥有可持续性的教育价值,它就必须通过对计算原理的解释,成为进入真实计算世界的一种方式。这需要通过对微型计算机上的室内演示,通过类比方式解释其中的原则,以及通过电影说明实际应用的真实例子来实现。不仅仅是微型计算机,小型机以及大型机也将被展示。 -我喜爱这一连续剧,尤其是其中关于小型机与大型机的部分。计算机认知计划背后的制作方旨在帮助英国人找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎是不足以使人们认知计算机的。 +我喜爱这一连续剧,尤其是其中关于小型机与大型机的部分。计算机认知计划背后的制作方旨在帮助英国人找准定位:计算身处何处又去向何方?计算机现在能做什么,未来又能做什么?学习一些 BASIC 语言是回答这些问题的一个部分,但是仅仅理解 BASIC 语言似乎不足以使人们认知计算机。 -### 今天的计算机认知 +### 如今的计算机认知 -如果你现在搜索“学习编程”,你看到的排在第一的是指向 Codecademy 网站的链接。如果要说存在一个“计算机认知计划”的现代替代品——存在相同的影响与目标,那就是 Codecademy。 +如果你现在搜索“学习编码”,你看到的排在第一的是指向 Codecademy 网站的链接。如果要说存在一个“计算机认知计划”的现代替代品 —— 具有相同的影响与目标,那就是 Codecademy。 -对于普通人而言“Learn to code”(学习编程)是 Codecademy 的口号。我认为我不是第一个指出这一点的人——事实上我曾经在某个地方见到过这一点,只是现在拿来用而已。但是这里使用的是“code”(代码)而非“编程”,这说明了一些问题。这表明你学习的重要内容是如何读懂代码,如何阅读满屏的 Python 代码的价值而不是目光呆滞、不知所云。我能够理解为什么对于普通人而言这似乎是成为专业程序员的主要障碍。专业程序员整日盯着布满编程术语的电脑屏幕,如果我想要成为一个专业程序员,我最好确保我能够理解这些术语。但是理解语法并不是成为程序员的最大的挑战。面对更多更大的障碍,它很快将变成微不足道的。仅仅以掌握一门编程语言的语法为目标,你可能能够 _阅读_ 代码但是无法做到 _编写_ 代码解决全新的问题。 +“学习编码learn to code” 是 Codecademy 的口号。我认为我不是第一个指出这一点的人 —— 事实上我可能在某个地方读过这句话,只是现在拿来用而已。但是这里使用的是 “编码code” 而非 “编程program”,这说明了一些问题。这表明你学习的重要内容是如何读懂代码,如何阅读满屏的 Python 代码的意思,而不是目光呆滞、不知所云。我能够理解为什么对于普通人而言,这似乎是成为专业程序员的主要障碍。专业程序员整日盯着布满编程术语的计算机屏幕,如果我想要成为一个专业程序员,我最好确保我能够理解这些天书一样的字符。但是理解语法并不是成为程序员的最大的挑战。在更大的障碍面前,它很快将变成微不足道。仅仅以掌握一门编程语言的语法为目标,你可能能够 _阅读_ 代码,但是无法做到 _编写_ 代码以解决全新的问题。 -我最近浏览了 Codecademy 的 “Code Foundations”(编程基础) 课程。如果你对编程感兴趣(而不是网页开发或者数据科学)并且没有任何编程经验,这是 Codecademy 推荐你学习的课程。里面有几节关于计算机科学史的课时,不过都是流于表面而没有深入研究。(感谢上帝,一位高尚的互联网秩序义务维护者指出了其中存在的一个特别恶劣的错误)。该课程的主要目的是教授你编程语言的通用结构要素:变量、函数、控制流、循环等。换句话说,该课程聚焦于为了开始理解编程术语中的模式你所需要知道的内容。 +我最近学习了 Codecademy 的 《编程基础》 课程。如果你对编程感兴趣(而不是对网页开发或者数据科学),并且没有任何编程经验,这是 Codecademy 推荐你学习的课程。里面有几节关于计算机科学史的课时,不过都是流于表面而没有深入研究。(感谢上帝,[一位高尚的互联网秩序义务维护者][12] 指出了其中存在的一个特别恶劣的错误)。该课程的主要目的是教授你编程语言的通用结构要素:变量、函数、控制流、循环等。换句话说,该课程聚焦于为了让你理解天书般的代码中的模式,而所需要知道的内容。 -公平地看,Codecademy 也提供其他内容深入的课程。但是即使是如 “Computer Science Path”(计算机科学之路) 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这就是重点—— Codecademy 的主要特点就是提供给你一些交互式的带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动计算机认知计划的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[8][13]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? +公平地看,Codecademy 也提供了其他内容深入的课程。但是即使是如 《计算机科学之路》 这样的课程也几乎只仅仅专注于编程以及程序中表达的概念。有人可能会反驳说这才是重点 —— Codecademy 的主要特点就是提供给你一些交互式的、带有自动反馈的编程课程。在有限的自动化课程中能够灌输给学员的内容只有这么多,因此学员的脑海里也没有更多的空间容纳更多其他的内容。但是负责启动计算机认知计划的 BBC 的制作人也面临同样的问题。他们意识到受限于他们的传播媒介,“通过电视节目所能获得的学习内容的容量也是受限的”[^8]。虽然在他们所能传达的信息总量上存在相似的限制,但是 BBC 的制作人选择强调在学习 BASIC 语言上的一般原则。难道 Codecademy 就不能将其中一两节交互式可视化的课时替换为编织经线与纬线的 Jacquard 织机的案例吗? -我一直在大声鼓吹“一般原则”,因此让我再解释下我认为的一般原则是什么以及为什么它们如此重要。J. Clark Scott 出了一本有关计算机的书,书名为 _But How Do It Know?_(但是它怎么知道)。这个书名来自书的序言里的一则笑话:一个店员向人群推销保温瓶,说保温瓶可以让热食始终是热的,冷食始终是冷的。一名听众对这个新发明感到惊讶,问道,但是它怎么知道(根据你给它的食物类型的不同选择做相应的事情呢)?笑点在于保温瓶当然不能感知食物的温度然后据此做出决定——保温瓶仅仅制作成保证冷食必然保持冷的,热食必然保持热的就可以了。人们也以(笑话中的那个听众)一样的方式看待计算机,相信计算机就是能够基于提供给它们的代码“选择”做一件事或者另一件事的数字大脑。但是了解一些有关计算机如何工作的知识,哪怕是很初级水平的理解,也能让(人们理解中的)计算机摆脱(做判断的)侏儒。这就是为什么 Jacquard 织机是一个很好的有助理解的例子。一开始它似乎是一种难以置信的设备,它读取打孔卡片,然后以某种方式“知道”编织正确的样式。现实是显而易见的:每一行孔都对应一根线,而一行中有孔的地方对应着提起的线。理解了这些虽然不会有助于你用电脑完成新的事情,但是将使你自信于你不是在跟某些神秘事物打交道。我们应当尽快将这种自信的感受传授给初学者。 +我一直在大声鼓吹 “一般原则”,因此让我再解释下我认为的一般原则是什么,以及为什么它们如此重要。J. Clark Scott 出了一本有关计算机的书,书名为 《但是它怎么知道?But How Do It Know?》。这个书名来自书的序言里的一则笑话:一个店员向人群推销保温瓶,说保温瓶可以让热食始终是热的,冷食始终是冷的。一名听众对这个新发明感到惊讶,问道,但是它怎么知道(根据你给它的食物类型的不同选择做相应的事情呢)?笑点在于保温瓶当然不能感知食物的温度然后据此做出决定 —— 保温瓶仅仅制作成保证冷食必然保持冷的,热食必然保持热的就可以了。人们也以(笑话中的那个听众)一样的方式看待计算机,相信计算机就是数字大脑,能够基于提供给它们的代码 “选择” 做一件事或者另一件事。但是了解一些有关计算机如何工作的知识,哪怕是很初级水平的理解,也能让(人们理解中的)计算机摆脱(做判断的)侏儒。这就是为什么 Jacquard 织机是一个很好的有助理解的例子。一开始它似乎是一种难以置信的设备,它读取打孔卡片,然后以某种方式“知道”编织正确的样式。现实是显而易见的:每一行孔都对应一根线,而一行中有孔的地方对应着提起的线。理解了这些虽然不会有助于你用计算机完成新的事情,但是将使你自信于你不是在跟某些神秘事物打交道。我们应当尽快将这种自信的感受传授给初学者。 -唉,真实存在的问题是可能没有人想要了解 Jacquard 织机。根据 Codecademy 如何强调他们教授的专业应用来判断,很多人开始使用 Codecademy 可能是因为他们相信这有助于“提升”他们的职业生涯。他们没有来由地相信首要的问题是理解编程的专业术语,因此他们才想要 “Learn to code”。他们想要在他们所拥用的每天晚上晚餐与就寝之间的一两个小时里尽快做这件事。Codecademy 毕竟只是一门投其所好的生意而非一些有关18世纪就发明了的机器的间接说明。 +唉,可能真正的问题是没有人想要了解 Jacquard 织机。根据 Codecademy 如何强调他们教授的专业应用来判断,很多人开始使用 Codecademy 可能是因为他们相信这有助于 “提升” 他们的职业水平。他们没有来由地相信,首要的问题是理解编程的专业术语,因此他们才想要 “学习编码”。他们想要在他们所拥用的。每天晚上晚餐与就寝之间的一两个小时里尽快完成这件事。Codecademy 毕竟只是一门投其所好的生意,而非一些有关 18 世纪就发明了的机器的间接说明。 -另一方面,计算机认知计划 是供职于 BBC 的一群制作人与公务员所认为的将电脑使用教给国民的最好的方式。我承认因为这一群人教会大众他们无法以己之力所能求得的事物而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用电脑,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所言][14],我怀疑在计算机已经变得相对简单的时代里学习使用电脑是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 _The Computer Programme_ 这样的尽己所能不仅仅教授编程而且教授计算机是为什么又是如何运行程序的节目。在看完 _The Computer Programme_ 之后,你可能并不能理解电脑屏幕上的所有编程术语,但是实际上你并不需要,因为你知道无论“代码”是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能理解了编程术语的一些味道,但是对你来说一台电脑仍然只是一台能够以某种方式将编程术语转化为运行的软件的魔法机器。这并不是计算机认知。 +另一方面,计算机认知计划是供职于 BBC 的一群制作人与公务员所认为的,将计算机的使用教给国民的最好的方式。我承认,因为这一群人教会大众他们无法以己之力所能求得的事物,而赞美这一群人的建议多少有点精英主义。但我情不自禁认为他们做对了。许多人使用 BBC Micro 第一次学会了使用计算机,他们中的很多人进而成为了成功的软件开发者或游戏设计师。[正如我曾经所说的][14],我怀疑在计算机已经变得相对简单的时代里,学习使用计算机是一个巨大的优势。不过或许这群人所拥有的另一个优势在于有像 《计算机程序》 这样的尽己所能不仅仅教授编程,而且教授计算机是为什么又是如何运行程序的节目。在看完 《计算机程序》 之后,你可能并不能理解计算机屏幕上的所有天书般的编程术语,但是实际上你也并不需要,因为你知道无论 “代码” 是什么样子,计算机总是在重复做基础的事情。在完成了 Codecademy 上的一到两个课程之后,你可能能够感受一些天书般的编程术语,但是对你来说,一台计算机仍然只是一台能够以某种方式将天书般的字符转化为运行的软件的魔法机器。但这并不是计算机认知。 -------------------------------------------------------------------------------- @@ -83,7 +85,7 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html 作者:[Two-Bit History][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/) 荣誉推出 @@ -103,7 +105,7 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [^1]: Robert Albury and David Allen, Microelectronics, report (1979).  [^2]: Gregg Williams, “Microcomputing, British Style”, Byte Magazine, 40, January 1983, accessed on March 31, 2019, .  -[^3]: John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, [https://computer-literacy-project.pilots.bbcconnectedstudio.co.uk/media/Towards Computer Literacy.pdf][20].  +[^3]: John Radcliffe, “Toward Computer Literacy,” Computer Literacy Project Achive, 42, accessed March 31, 2019, .  [^4]: David Allen, “About the Computer Literacy Project,” Computer Literacy Project Archive, accessed March 31, 2019, .  [^5]: ibid.  [^6]: Williams, 51.  @@ -119,3 +121,5 @@ via: https://twobithistory.org/2019/03/31/bbc-micro.html [T7]: https://en.wikipedia.org/wiki/Sinclair_Research [T8]: https://en.wikipedia.org/wiki/Breakout_(video_game) [T9]: https://www.scienceandindustrymuseum.org.uk/objects-and-stories/jacquard-loom + +[0]: https://img.linux.net.cn/data/attachment/album/202301/23/131931eegzjokllq1j440z.jpg \ No newline at end of file From 3f43703b916e70386d3450b37658f01c0c93b28f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 23 Jan 2023 13:24:05 +0800 Subject: [PATCH 215/357] P @CanYellow https://linux.cn/article-15469-1.html --- .../20190331 Codecademy vs. The BBC Micro.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/talk => published}/20190331 Codecademy vs. The BBC Micro.md (99%) diff --git a/translated/talk/20190331 Codecademy vs. The BBC Micro.md b/published/20190331 Codecademy vs. The BBC Micro.md similarity index 99% rename from translated/talk/20190331 Codecademy vs. The BBC Micro.md rename to published/20190331 Codecademy vs. The BBC Micro.md index 95f226cf35..6ca577800c 100644 --- a/translated/talk/20190331 Codecademy vs. The BBC Micro.md +++ b/published/20190331 Codecademy vs. The BBC Micro.md @@ -4,8 +4,8 @@ [#]: collector: "lujun9972" [#]: translator: "CanYellow" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15469-1.html" 上世纪的 BBC Micro 和如今的 Codecademy ====== From 8634eccbadfe4f17932c56643cb990e68e7fc556 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 23 Jan 2023 16:38:59 +0800 Subject: [PATCH 216/357] RP @geekpi https://linux.cn/article-15470-1.html --- ...t and Host in virt-manager (KVMQemulibvirt).md | 49 ++++++++++--------- 1 file changed, 27 insertions(+), 22 deletions(-) rename {translated/tech => published}/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md (54%) diff --git a/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/published/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md similarity index 54% rename from translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md rename to published/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md index cca25c3286..e0547b8d6f 100644 --- a/translated/tech/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md +++ b/published/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md @@ -3,45 +3,50 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15470-1.html" -在 virt-manager 中,在客户机和主机之间共享文件夹(KVM/Qemu/libvirt) +在 virt-manager 的主机和客户机之间共享文件夹 ====== -**在本指南中,你将学习如何使用 KVM、QEMU 和 libvirt 在 virt-manager 中的主机和客户机之间共享文件夹。** +![][0] +> 在本指南中,你将学习如何在 virt-manager 的 KVM、QEMU 和 libvirt 的主机和客户机之间共享文件夹。 [virt-manager][1] 应用或软件包使用 [libvirt][2] 库来提供虚拟机管理服务。它有一个桌面界面,有助于创建、删除和管理多个虚拟机。 -virt-manager 桌面界面及其组件为各种个人和商业场景提供了灵活的虚拟机管理服务。它是一个免费和开源的应用,主要用于 KVM 虚拟机。然而,它也可以支持其他管理程序,如 Xen 和 LXC。 +virt-manager 桌面界面及其组件为各种个人和商业场景提供了灵活的虚拟机管理服务。它是一个自由开源的应用,主要用于 KVM 虚拟机。然而,它也可以支持其他管理程序,如 Xen 和 LXC。 -在之前的文章中,我解释了[如何使用 virt-manager 创建虚拟机][3]。这篇文章介绍了如何在客户机和主机之间无缝访问文件和文件夹。 +在之前的文章中,我解释了 [如何使用 virt-manager 创建虚拟机][3]。这篇文章介绍了如何在客户机和主机之间无缝访问文件和文件夹。 ### 关于 virtiofs 的说明 -共享文件和文件夹是由名为 virtiofs 的 libvirt 共享文件系统提供的。它提供了所有的功能和参数来访问主机上的目录树。由于大多数 virt-manager 虚拟机的配置都被翻译成 XML,所以共享文件/文件夹也可以通过 XML 文件来指定。 +共享文件和文件夹是由名为 virtiofs 的 libvirt 共享文件系统提供的。它提供了访问主机上的目录树的所有功能和参数。由于大多数 virt-manager 虚拟机的配置都被翻译成 XML,所以共享文件/文件夹也可以通过 XML 文件来指定。 ### 在 virt-manager中共享文件夹 -- 首先,确保你的客户机关闭了电源。在 virt-manager GUI 中,选择虚拟机,点击打开,弹出控制台设置。 +首先,确保你的客户机关闭了电源。在 virt-manager GUI 中,选择虚拟机,点击“打开Open”,弹出控制台设置。 ![打开设置][4] -- 点击工具条上显示虚拟硬件细节的图标。然后点击左边面板上的**内存**。 -- 选择选项“**启用共享内存**”。点击应用。 +点击工具条上显示虚拟硬件细节的图标。然后点击左边面板上的“内存Memory”。 + +选择选项 “启用共享内存Enable shared memory”。点击应用。 ![启用共享内存选项][5] -- 然后点击底部的“添加硬件”。 +然后点击底部的 “添加硬件Add hardware”。 ![点击添加硬件][6] -- 在添加新硬件的窗口中,从左边的面板上选择**文件系统**。 -- 然后在细节标签中选择 **Driver=virtiofs**。点击“浏览>浏览本地”,**选择你想在客户机内访问的主机路径**。 -- 在目标路径中,输入你想要的任何名字。这只是一个文件标签,将在挂载时使用。 -- 所以,如果我想访问 Pictures/Screenshots 文件夹(`/home/debugpoint/Pictures/Screenshots`),示例设置可以是这样: +在添加新硬件的窗口中,从左边的面板上选择 “文件系统File system”。 + +然后在 “细节Details” 标签中选择 “驱动程序Driver” 为 “virtiofs”。点击 “浏览Browse > 浏览本地browse local”,**选择你想在客户机内访问的主机路径**。 + +在目标路径中,输入你想要的任何名字。这只是一个文件标签,将在挂载时使用。 + +所以,如果我想访问 `Pictures/Screenshots` 文件夹(`/home/debugpoint/Pictures/Screenshots`),示例设置可以是这样: ![添加一个新的文件系统硬件][7] @@ -58,9 +63,9 @@ virt-manager 桌面界面及其组件为各种个人和商业场景提供了灵 ``` -点击“完成”。在 virt-manager 主窗口中,右键点击虚拟机,点击运行,启动虚拟机。确保点击“显示图形控制台”(如果虚拟机没有显示,点击工具条上的监视器图标)。 +点击 “完成Finish”。在 virt-manager 主窗口中,右键点击虚拟机,点击运行,启动虚拟机。确保点击“显示图形控制台show the graphical console”(如果虚拟机没有显示,点击工具条上的监视器图标)。 -在客户机中,创建一个你想挂载主机文件夹的文件夹。在这个例子中,我使用了 /mnt/pictures。 +在客户机中,创建一个你想挂载主机文件夹的文件夹。在这个例子中,我使用了 `/mnt/pictures`。 ``` sudo mkdir /mnt/pictures @@ -72,7 +77,7 @@ sudo mkdir /mnt/pictures sudo mount -t virtiofs mount_tag_pictures /mnt/pictures ``` -现在你可以在主机和客户机之间的 virt-manager 中无缝地浏览文件夹和添加/删除项目。 +现在你可以在 virt-manager 中的主机和客户机之间的无缝地浏览文件夹和添加/删除项目。 ![从 virt-manager 客户机访问主机文件][8] @@ -82,8 +87,7 @@ sudo mount -t virtiofs mount_tag_pictures /mnt/pictures 如果你遇到任何错误,上述指南帮助了你,请在下面留言。 -_[参考][9]_ - +- [参考][9] -------------------------------------------------------------------------------- @@ -92,7 +96,7 @@ via: https://www.debugpoint.com/share-folder-virt-manager/ 作者:[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/) 荣誉推出 @@ -107,3 +111,4 @@ via: https://www.debugpoint.com/share-folder-virt-manager/ [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 +[0]: https://img.linux.net.cn/data/attachment/album/202301/23/163636dm5j1wrsga95xgrd.jpg \ No newline at end of file From 4d0a445bbde28a677c3f5c9f870f1f4d6c83b2fc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 23 Jan 2023 23:13:32 +0800 Subject: [PATCH 217/357] R @ZhangZhanhaoxiang --- ...tu on Windows Using VirtualBox [Complete Guide].md | 131 +++++++++--------- 1 file changed, 66 insertions(+), 65 deletions(-) diff --git a/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md index 2916547f27..434e69b255 100644 --- a/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md +++ b/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md @@ -3,130 +3,134 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "ZhangZhanhaoxiang" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -使用 VirtualBox 在 Windows 上安装 Ubuntu[完整指南] +完整指南:使用 VirtualBox 在 Windows 上安装 Ubuntu ====== -**本教程将指导您用最简单的步骤在 Windows 端的 Oracle VirtualBox 上安装 Ubuntu 桌面。** +![][0] -[VirtualBox][1] 是 Oracle 的一款流行的虚拟化软件,可用于 Linux、mac 和 Windows 系统。它是灵活的,并提供了许多功能来实现您的虚拟化。这是在 Windows 中体验 Ubuntu 而不安装它的最佳且简单的方法。然而,我强烈建议将 Ubuntu 以双引导的方式安装在物理机上,从而更好地体验 Ubuntu。 +> 本教程将指导你用最简单的步骤在 Windows 上的 Oracle VirtualBox 上安装 Ubuntu 桌面版。 -下面列出的步骤假设您是第一次在 Windows 中安装 Ubuntu。因此,这些步骤有点描述性,也有点冗长。此外,以下步骤适用于 Windows 10 和 Windows 11 作为主机。 +[VirtualBox][1] 是 Oracle 的一款流行的虚拟化软件,可用于 Linux、mac 和 Windows 系统。它是灵活的,并提供了许多功能来实现虚拟化。这是在 Windows 中体验 Ubuntu 而不安装它的最佳且简单的方法。然而,我强烈建议将 Ubuntu 以双引导的方式安装在物理机上,从而更好地体验 Ubuntu。 -### 目录 - -- [先决条件][2] -- [下载 Ubuntu ISO 和 VirtualBox 安装文件][3] -- [在 Windows(Host) 上安装 VirtualBox][4] -- [在 VirtualBox 上安装 Ubuntu(Guest)][5] -- [客体机额外的安装和提示][6] +下面列出的步骤假设你是第一次在 Windows 中安装 Ubuntu。因此,这些步骤有点描述性,也有点冗长。此外,以下步骤适用于 Windows 10 和 Windows 11 作为宿主机。 ### 你需要什么 - 可上网的 PC -- 用于安装的 Ubuntu Linux ISO 映像文件 +- 用于安装的 Ubuntu Linux ISO 镜像文件 - 安装了 VirtualBox 的 Windows 系统 ### 使用 VirtualBox 在 Windows 上安装 Ubuntu #### 下载并安装必要的东西 -- 从以下链接下载 Ubuntu Linux 桌面 ISO 映像文件。 +从以下链接下载 Ubuntu Linux 桌面版 ISO 镜像文件。 -[下载 Ubuntu 桌面][7] +> **[下载 Ubuntu 桌面版][7]** -- 此外,请从下面的官方网站下载 Oracle VirtualBox 安装程序。 +此外,请从下面的官方网站下载 Oracle VirtualBox 安装程序。 -[下载 VirtualBox][8] +> **[下载 VirtualBox][8]** ![VirtualBox for Windows 的下载位置][9] #### 如何安装和配置 VirtualBox -Windows 中的 VirtualBox 需要 Microsoft Visual C++ 2019 Redistrobutiable package。你必须先安装它。从以下链接下载软件包(X64 架构): +Windows 中的 VirtualBox 需要 “Microsoft Visual C++ 2019 Redistrobutiable package”。你必须先安装它。从以下链接下载软件包(X64 架构): -[下载][10] +> **[下载 MSVC][10]** ![下载 VirtualBox 的依赖项][11] ![安装 VirtualBox 的依赖项][12] -- 完成以上安装后,从以下链接下载最新的 Python 包。Python 绑定也是 Windows 端 VirtualBox 安装所需的依赖项。 +完成以上安装后,从以下链接下载最新的 Python 包。Python 绑定也是 Windows 端 VirtualBox 安装所需的依赖项。 -[下载 Python for Windows][13] +> **[下载 Python for Windows][13]** -- 然后,启动 VirtualBox 安装程序并按照屏幕上的说明进行安装。 -- 安装后,重新启动 Windows 系统。 +然后,启动 VirtualBox 安装程序并按照屏幕上的说明进行安装。 + +安装后,重新启动 Windows 系统。 #### 为 Ubuntu 设置虚拟机 -- 从开始菜单启动 VirtualBox。 +从开始菜单启动 VirtualBox。 ![从开始菜单中选择 VirtualBox][14] -- 在 VirtualBox 窗口工具栏上,单击 **新建**。 -- 在 **创建 VirtualBox** 窗口中,输入虚拟机的名称。它可以是标识此版本 Ubuntu 的任何名称。 -- 保持 **文件夹名称** 不变。这是创建虚拟机文件的路径。 -- 在 ISO Image 一栏,浏览您下载的 Ubuntu ISO 文件。 -- 然后选择无人值守安装(Unattended installation)。如果不选择此选项,将在虚拟机中创建一个 [默认用户 id(vboxuser)和密码][15]。让我们暂时不要管它。 +在 VirtualBox 窗口工具栏上,单击 “新建New”。 ![单击新建][16] +- 在创建虚拟机窗口中,输入虚拟机的名称。它可以是标识此版本 Ubuntu 的任何名称。 +- 保持 “文件夹Folder” 不变。这是创建虚拟机文件的路径。 +- 在 “ISO 镜像文件ISO Image” 一栏,浏览你下载的 Ubuntu ISO 文件。 +- 然后选择 “跳过无人值守安装 Skip Unattended installation”。如果不选择此选项,将在虚拟机中创建一个 [默认用户 id(vboxuser)和密码][15]。让我们暂时不要管它。 + ![选择 ISO 文件][17] -- 单击 Hardware(硬件)并调整虚拟机所需的 RAM。一般的经验是,VM 的 RAM 大小应该小于主机系统中的物理 RAM。我建议对于 8 GB RAM 系统的虚拟机使用 2 GB 到 4 GB。对于 4 GB RAM,拖动滑块(或键入)使其为 4096 MB(即 4×1024)。 +- 单击 “硬件Hardware” 部分,并调整虚拟机所需的内存。一般的经验是,虚拟机的内存大小应该小于主机系统中的物理内存。我建议对于 8 GB 内存系统的虚拟机使用 2 GB 到 4 GB。要选择 4 GB 内存,拖动滑块(或键入)使其为 4096 MB(即 4×1024)。 - 选择 2 或 4 核处理器。 -- 单击“硬盘”选项,并保持文件位置不变。 -- 为 Ubuntu 安装提供至少 20 GB 到 25 GB 的容量。 -- 硬盘文件类型值保持为 VDI(VirtualBox 磁盘映像) -- 不要选择 pre-allocate full size(预分配完整大小)。 -- 最后,单击 Finish 完成。 ![选择硬件][18] +- 单击 “硬盘Hard Disk” 部分,并保持文件位置不变。 +- 为 Ubuntu 安装提供至少 20 GB 到 25 GB 的容量。 +- 硬盘文件类型值保持为 VDI(VirtualBox 磁盘镜像) +- 不要选择 “预分配完整大小Pre-allocate Full Size”。 +- 最后,单击 “完成Finish”。 + ![选择硬盘][19] -- 您应该在 VirtualBox 的左侧面板上看到一个新条目,其中包含一个 Ubuntu 22.04 条目(您之前设置的名称)。 -- 选择条目并单击开始以引导到虚拟机 +你应该在 VirtualBox 的左侧面板上看到一个新条目,其中包含一个 Ubuntu 22.04 条目(你之前设置的名称)。 + +选择条目并单击 “开始Start” 以引导到虚拟机: ![在 VirtualBox 中启动 Ubuntu][20] #### 使用 VirtualBox 安装 Ubuntu -- 成功引导后,您应该看到以下屏幕,其中显示了安装 Ubuntu 的各种选项。选择 **尝试或安装 Ubuntu**。 -- 在欢迎屏幕中,单击 **尝试 Ubuntu**。过了一会儿,你会看到下面的 Ubuntu LIVE 桌面。如果要更改分辨率,请右键单击桌面并选择显示设置。并将分辨率更改为 1400×900。 -- 在桌面上,双击“**安装 Ubuntu**…”。 +成功引导后,你应该看到以下屏幕,其中显示了安装 Ubuntu 的各种选项。选择 “尝试 UbuntuTry Ubuntu” 或 “安装 UbuntuInstall Ubuntu”。 + +在欢迎屏幕中,单击 “尝试 UbuntuTry Ubuntu”。过了一会儿,你会看到下面的 Ubuntu 临场Live桌面。如果要更改分辨率,请右键单击桌面并选择显示设置。并将分辨率更改为 1400×900。 ![选择尝试 Ubuntu][21] +在桌面上,双击 “安装 UbuntuInstall Ubuntu”。 + ![Ubuntu LIVE 桌面][22] -- 在下一组屏幕中,根据需要选择语言和键盘布局。 -- 安装屏幕为您提供所需的安装类型。选择“正常安装”,然后在“其他选项”下选择两个选项。 -- 由于您是在虚拟磁盘空间中安装的,即它只是一个文件,因此您可以安全地选择“擦除磁盘并安装 Ubuntu”选项。 -- 点击立即安装并继续。 +在下一组屏幕中,根据需要选择 “语言Language” 和 “键盘布局Keyboard Layout”。 ![选择语言][23] ![选择键盘布局][24] +安装屏幕为你提供所需的安装类型。选择 “正常安装Normal Installation”,然后在 “其他选项Other options” 下选择两个选项。 + ![选择安装选项][25] +由于你是在虚拟磁盘空间中安装的,即它只是一个文件,因此你可以安全地选择 “擦除磁盘并安装 UbuntuErase disk and install Ubuntu” 选项。 + ![安装类型][26] +点击 “立即安装Install Now” 并 “继续Continue”。 + ![将更改写入磁盘][27] -- 然后选择地区,添加姓名、用户和密码。这将是安装后登录 Ubuntu 的用户 id 和密码。 -- 单击“继续”开始安装。等到它完成。 +然后选择 “地区region”,添加“你的名字Your name”、“计算机名称Your computer's name”、“用户名Username” 和 “密码Password”。这将是安装后登录 Ubuntu 的用户 id 和密码。 + +单击 “继续Continue” 开始安装。等到它完成。 ![创建用户帐户][28] -![Ubuntu 安装完成][29] +安装完成后,单击 “立即重新启动Restart Now”。等待几秒钟,你将看到一个登录屏幕。使用用户 id 和密码登录。你应该看到 Ubuntu 桌面在 Windows 端 VirtualBox 中作为 VM 运行。 -安装完成后,单击“立即重新启动”。等待几秒钟,您将看到一个登录屏幕。使用用户 id 和密码登录。您应该看到 Ubuntu 桌面在 Windows 端 VirtualBox 中作为 VM 运行。 +![Ubuntu 安装完成][29] ![登录 Ubuntu][30] @@ -136,13 +140,15 @@ Windows 中的 VirtualBox 需要 Microsoft Visual C++ 2019 Redistrobutiable pack #### 安装客体机增强项 -成功安装后,应为 Windows 主机和 Ubuntu 客体机安装 **VirtualBox 客体机增强项**。客体机增强项是一组需要安装在客体 VM(即 Ubuntu)内的软件包,以启用 **共享文件夹、双向复制 / 粘贴、自动更改分辨率** 和许多类似功能。 +成功安装后,应为 Windows 宿主机和 Ubuntu 客体机安装 “VirtualBox 客体机增强项VirtualBox guest additions”。客体机增强项是一组需要安装在客体虚拟机(即 Ubuntu)内的软件包,以启用 **共享文件夹、双向复制 / 粘贴、自动更改分辨率** 和许多类似功能。 -要安装它,请引导到 Ubuntu。从 VirtualBox 菜单中,选择“设备 > 插入客体机增强 CD 映像”。必要的软件包将安装在 Ubuntu 中。 +要安装它,请引导到 Ubuntu。从 VirtualBox 菜单中,选择“设备Devices > 插入客体机增强 CD 镜像Insert Guest Additions CD Image”。必要的软件包将安装在 Ubuntu 中。 -![从菜单中选择客人添加][32] +![从菜单中选择客体机增强][32] -打开文件管理器并打开装入的文件夹,如下所示。然后右键单击 > 选择“在终端中打开”。 +打开文件管理器并打开装入的文件夹,如下所示。然后右键单击 > 选择 “在终端中打开open in terminal”。 + +![打开已挂载的光盘并选择带有终端的选项][33] 然后运行以下命令: @@ -150,41 +156,35 @@ Windows 中的 VirtualBox 需要 Microsoft Visual C++ 2019 Redistrobutiable pack sudo ./VBoxLinuxAdditions.run ``` -![打开已挂载的光盘并选择带有终端的选项][33] - ![VirtualBox 为 Windows 主机添加客体机增强项][34] 完成上述命令后,重新启动 Ubuntu VM。 #### 启用 Windows 和 Ubuntu 之间的复制和粘贴 -- 要在 Windows 和 Ubuntu 系统之间启用复制和粘贴,请从菜单中选择“设备 > 共享剪贴板 > 双向”。 +要在 Windows 和 Ubuntu 系统之间启用复制和粘贴,请从菜单中选择 “设备Devices > 共享剪贴板Shared Clipboard > 双向Bi-directional”。 ![启用共享剪贴板][35] #### 关闭 Ubuntu VM -- 理想情况下,您应该从自己的关机菜单中关闭 VM。但是,您也可以从 VirtualBox 主窗口关闭。右键单击 VM 名称并选择“关闭”>“关机”。 +理想情况下,你应该从自己的关机菜单中关闭 VM。但是,你也可以从 VirtualBox 主窗口关闭。右键单击虚拟机名称并选择 “关闭Close > 关机Poweroff”。 ![关闭虚拟机][36] #### 如何删除 Ubuntu 并删除所有数据 -- 如果要完全删除虚拟机(例如 Ubuntu)及其数据,请选择“删除”和“删除所有文件”。 +如果要完全删除虚拟机(例如 Ubuntu)及其数据,请选择 “删除Remove” 和 “删除所有文件Delete All Files”。 -![选择删除以移除 VM][37] +![选择删除以移除虚拟机][37] ![选择删除选项][38] ### 结语 -在本教程中,您学习了使用 VirtualBox 在 Windows(10 或 11)上安装 Ubuntu 的最简单方法。此外,您还学习了几步安装后配置 Ubuntu VM 的基本步骤。您可以对 VirtualBox 中的其他任何 Linux 发行版使用上述步骤。 +在本教程中,你学习了使用 VirtualBox 在 Windows(10 或 11)上安装 Ubuntu 的最简单方法。此外,你还学习了几步安装后配置 Ubuntu VM 的基本步骤。你可以对 VirtualBox 中的其他任何 Linux 发行版使用上述步骤。 -如果您有任何疑问,欢迎在下面发表评论。 - -[下一篇:如何在 Windows 上安装 Python[ 初学者指南]][39] - -[_ 使用 Mastodon?关注我们的 floss.social/@debugpoint_][40] +如果你有任何疑问,欢迎在下面发表评论。 -------------------------------------------------------------------------------- @@ -193,7 +193,7 @@ via: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ 作者:[Arindam][a] 选题:[lkxed][b] 译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -239,3 +239,4 @@ via: https://www.debugpoint.com/install-ubuntu-windows-virtualbox/ [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 +[0]: https://img.linux.net.cn/data/attachment/album/202301/23/230204pr8c36xesq5r8vx9.jpg \ No newline at end of file From 7a365da6bb17d75287f01cf19c0cd11bd76abaab Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 23 Jan 2023 23:14:01 +0800 Subject: [PATCH 218/357] P @ZhangZhanhaoxiang https://linux.cn/article-15472-1.html --- ...️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md (99%) diff --git a/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/published/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md similarity index 99% rename from translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md rename to published/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md index 434e69b255..97e7bf1469 100644 --- a/translated/tech/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md +++ b/published/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "ZhangZhanhaoxiang" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15472-1.html" 完整指南:使用 VirtualBox 在 Windows 上安装 Ubuntu ====== From ab41d2f3d3df05bdcd70498901e853f11b5144f8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 24 Jan 2023 00:31:52 +0800 Subject: [PATCH 219/357] RP @ZhangZhanhaoxiang https://linux.cn/article-15473-1.html --- ...30110.3 ⭐️⭐️ How to use methods in Java.md | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) rename {translated/tech => published}/20230110.3 ⭐️⭐️ How to use methods in Java.md (54%) diff --git a/translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md b/published/20230110.3 ⭐️⭐️ How to use methods in Java.md similarity index 54% rename from translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md rename to published/20230110.3 ⭐️⭐️ How to use methods in Java.md index 494d882dd3..135aa0c64a 100644 --- a/translated/tech/20230110.3 ⭐️⭐️ How to use methods in Java.md +++ b/published/20230110.3 ⭐️⭐️ How to use methods in Java.md @@ -3,16 +3,20 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "ZhangZhanhaoxiang" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15473-1.html" 如何在 Java 中使用方法 ====== -Java 中的方法(在许多其他编程语言中称为“函数”)是被组合在一起并标记为可重用的代码的一部分。方法很有用,因为它们允许您在不重写相同代码的情况下执行相同的操作或一系列操作,这不仅意味着您的工作量减少,还意味着出现问题时需要维护和调试的代码减少。 +> 在这个简便的教程中,我们可以了解到 Java 中方法的定义,如何使用方法,以及何时使用方法。 -类中存在一个方法,因此标准 Java 样板代码适用: +![][0] + +Java 中的方法(在许多其他编程语言中称为“函数”)是被组合在一起并标记为可重用的一块代码。方法很有用,因为它们允许你在不重写相同代码的情况下,执行相同的操作或一系列操作,这不仅意味着你的工作量减少,还意味着出现问题时需要维护和调试的代码减少。 + +方法存在于类中,因此标准 Java 样板代码适用: ``` package com.opensource.example; @@ -24,11 +28,11 @@ public class Example { 在这样一个简单的单文件应用程序中,包定义并不是绝对必要的,但它是一个很好的习惯,而且大多数 IDE 都强制执行它。 -默认情况下,Java 会寻找在类中运行的“main”方法。方法可以是公有的或私有的,也可以是静态的或非静态的,但 main 方法必须是公有的和静态的,Java 编译器才能识别和使用它。当方法是公有的时,它可以从类外部执行。要在程序启动时调用“Example”类,其“main”方法必须是可访问的,因此将其设置为“public”。 +默认情况下,Java 会寻找在类中运行的 `main` 方法。方法可以是公有的或私有的,也可以是静态的或非静态的,但 `main` 方法必须是公有的、静态的,Java 编译器才能识别和使用它。当方法是公有的时,它可以从类外部执行。要在程序启动时调用 `Example` 类,其 `main` 方法必须是可访问的,因此将其设置为 `public`。 -下面是两个方法的简单演示:一个“main”方法在调用“Example”类时默认执行,另一个“report”方法接受“main”的输入并执行简单操作。 +下面是两个方法的简单演示:一个 `main` 方法在调用 `Example` 类时默认执行,另一个 `report` 方法接受 `main` 的输入并执行简单操作。 -为了模拟任意数据输入,我使用了 if-then 语句,该语句根据您启动应用程序的时间在两个字符串之间进行选择。换句话说,“main”方法首先设置一些数据(在现实生活中,这些数据可以来自用户输入,也可以来自应用程序其他地方的其他方法),然后“调用”“report”方法,将处理后的数据作为输入提供: +为了模拟任意数据输入,我使用了 `if`-`then` 语句,该语句根据你启动应用程序的时间在两个字符串之间进行选择。换句话说,`main` 方法首先设置一些数据(在现实生活中,这些数据可以来自用户输入,也可以来自应用程序其他地方的其他方法),然后 “调用” `report`方法,将处理后的数据作为输入提供: ``` package com.opensource.example; @@ -64,26 +68,26 @@ $ java ./Example.java Welcome to the zombie party ``` -请注意,同一“report”方法有两个不同的结果。当然,在这个简单的演示中,不需要第二种方法。模拟数据生成的 if-then 语句可能生成了相同的结果。但是,当一个方法执行一项复杂的任务时,比如将图像调整为缩略图,然后使用调整后的图像在屏幕上生成小部件,那么附加组件的“费用”就很有意义了。 +请注意,同一 `report` 方法有两个不同的结果。当然,在这个简单的演示中,不需要第二种方法。模拟数据生成的 `if`-`then` 语句可能生成了相同的结果。但是,当一个方法执行一项复杂的任务时,比如将图像调整为缩略图,然后使用调整后的图像在屏幕上生成小部件,那么附加组件的“费用”就很有意义了。 ### 何时使用 Java 方法 -很难知道何时使用方法,何时只将数据发送到 [Java 流][1]或循环中。如果你面临这个决定,答案通常是使用一种方法。原因如下: +很难知道何时使用方法,何时只将数据发送到 [Java 流][1] 或循环中。如果你面临这个决定,答案通常是使用一种方法。原因如下: - 方法开销少。它们不会给代码增加处理开销。 - 方法减少代码的行数。 -- 方法是特定的。查找名为“resizeImage”的方法通常比查找隐藏在从驱动器加载图像的函数中某个循环中的代码更容易。 -- 方法是可重用的。当您第一次编写方法时,您可能会 _认为_ 它只对应用程序中的一个任务有用。然而,随着应用程序的编写,您可能会发现自己正在使用一种您认为“已完成”的方法。 +- 方法是特定的。查找名为 `resizeImage` 的方法通常比查找隐藏在从驱动器加载图像的函数中某个循环中的代码更容易。 +- 方法是可重用的。当你第一次编写方法时,你可能会 _认为_ 它只对应用程序中的一个任务有用。然而,随着应用程序的编写,你可能会发现自己正在使用一种你认为“已完成”的方法。 ### 函数式编程与面向对象编程 -函数式编程利用方法作为执行任务的主要构造。创建一个方法,该方法接受一种数据,处理该数据,并输出新数据。将许多方法串在一起,您就拥有了一个动态且功能强大的应用程序。像 C 和 [Lua][2] 这样的编程语言就是这种编码风格的例子。 +函数式编程利用方法作为执行任务的主要构造。创建一个方法,该方法接受一种数据,处理该数据,并输出新数据。将许多方法串在一起,你就拥有了一个动态且功能强大的应用程序。像 C 和 [Lua][2] 这样的编程语言就是这种编码风格的例子。 -用代码完成任务的另一种方式是 Java 使用的面向对象模型。在面向对象编程中,方法是模板的组成部分。您可以创建对象,而不是将数据从一个方法发送到另一个方法,并可以通过使用它们的方法来更改它们。 +用代码完成任务的另一种方式是 Java 使用的面向对象模型。在面向对象编程中,方法是模板的组成部分。你可以创建对象,而不是将数据从一个方法发送到另一个方法,并可以通过使用它们的方法来更改它们。 -从面向对象的角度来看,这是一个简单的 zombie apocalypse(僵尸末日)演示程序。在函数方法中,我使用一种方法生成数据,另一种方法使用该数据执行操作。面向对象的等价物是具有表示工作单元的类。这个示例应用程序向用户显示一条当天的消息,宣布这一天会有 zombie party(僵尸派对)或 zombie apocalypse。编写一个“day”对象,然后查询该对象以了解其特性是有意义的。作为演示面向对象构造的不同方面的借口,新的示例应用程序还将统计有多少僵尸出现在 party 上(或 apocalypse)。 +从面向对象的角度来看,这是一个简单的 “僵尸末日” 演示程序。在函数方法中,我使用一种方法生成数据,另一种方法使用该数据执行操作。面向对象的等价物是具有表示工作单元的类。这个示例应用程序向用户显示一条当天的消息,宣布这一天会有僵尸派对或是僵尸末日。编写一个“天”对象,然后查询该对象以了解其特性是有意义的。作为演示面向对象构造的不同方面的借口,新的示例应用程序还将统计有多少僵尸出现在派对上(或末日)。 -Java 为每个类使用一个文件,因此要创建的第一个文件是“Day.Java”,它用作 Day 对象: +Java 为每个类使用一个文件,因此要创建的第一个文件是 `Day.Java`,它用作 `Day` 对象: ``` package com.opensource.example; @@ -120,15 +124,15 @@ public class Day { } ``` -在“类”部分中,创建了两个域:“weather”和“count”。weather 是静态的。在一天的过程中(在这种假想的情况下),weather 不会改变。要么是 party,要么是 apocalypse,持续了一整天。然而,僵尸的数量在一天中会增加。 +在“类”部分中,创建了两个域:天象 `weather` 和计数 `count`。`weather` 是静态的。在一天的过程中(在这种假想的情况下),`weather` 不会改变。要么是派对 `paradise`,要么是末日 `apocalypse`,持续了一整天。然而,僵尸的数量在一天中会增加。 -在“构造方法”部分,确定当天的天气。它是作为一个 [构造方法][3] 完成的,因为它只在类最初被调用时发生一次。 +在“构造方法”部分,确定当天的天象。它是作为一个 [构造方法][3] 完成的,因为它只在类最初被调用时发生一次。 -在“方法”部分,“report”方法只返回由构造方法确定和设置的天气报告。然而,“counter”方法生成一个随机数,并将其添加到当前僵尸计数中。 +在“方法”部分,`report` 方法只返回由构造方法确定和设置的天象报告。然而,`counter` 方法生成一个随机数,并将其添加到当前僵尸计数中。 换句话说,这个类做了三件不同的事情: -- 表示应用程序定义的“day”。 +- 表示应用程序定义的“天”。 - 设置当天不变的天气报告。 - 设置一天中不断增加的僵尸数量。 @@ -161,11 +165,11 @@ There are 35 zombies out today. UPDATE: 67 zombies. UPDATE: 149 zombies. ``` -无论调用“report”方法多少次,“weather”都保持不变,但调用“counter”方法的次数越多,僵尸的数量就会增加。 +无论调用 `report` 方法多少次,`weather` 都保持不变,但调用 `counter` 方法的次数越多,僵尸的数量就会增加。 ### Java 方法 -方法(或函数)是编程中的重要组成。在 Java 中,您可以将它们作为函数式编程的单个类的一部分使用,也可以在面向对象编程的类之间使用它们。两种类型的编程对于解决同一个问题有不同的视角,因此没有对与错之分。通过反复尝试,积累一点经验,你会知道哪一个最适合某个特定的问题。 +方法(或函数)是编程中的重要组成。在 Java 中,你可以将它们作为函数式编程的单个类的一部分使用,也可以在面向对象编程的类之间使用它们。两种类型的编程对于解决同一个问题有不同的视角,因此没有对与错之分。通过反复尝试,积累一点经验,你会知道哪一个最适合某个特定的问题。 -------------------------------------------------------------------------------- @@ -174,7 +178,7 @@ via: https://opensource.com/article/23/1/java-methods 作者:[Seth Kenlon][a] 选题:[lkxed][b] 译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) -校对:[校对者 ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -184,4 +188,4 @@ via: https://opensource.com/article/23/1/java-methods [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 - +[0]: https://img.linux.net.cn/data/attachment/album/202301/24/003036jk84quk8ngdqgd8z.jpg \ No newline at end of file From f5c8164b1f5d090002147af99f4e4769ee18411c Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Tue, 24 Jan 2023 07:55:09 +0800 Subject: [PATCH 220/357] translating MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [[翻译申请][tech]: 20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md] --- ...me-series data to power your edge projects with open source tools.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 80c70c7b4b..66bb7ff5a4 100644 --- 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 @@ -2,7 +2,7 @@ [#]: 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: " " +[#]: translator: "ZhangZhanhaoxiang" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 66a5ea7ae3897e58de064050ee594b4b3b8252d1 Mon Sep 17 00:00:00 2001 From: M81 <110393729+ZhangZhanhaoxiang@users.noreply.github.com> Date: Tue, 24 Jan 2023 09:47:44 +0800 Subject: [PATCH 221/357] translated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [[翻译完成][tech]: 20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md] --- ...power your edge projects with open source tools.md | 123 ------------------ ...power your edge projects with open source tools.md | 123 ++++++++++++++++++ 2 files changed, 123 insertions(+), 123 deletions(-) delete mode 100644 sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md create mode 100644 translated/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 deleted file mode 100644 index 66bb7ff5a4..0000000000 --- a/sources/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md +++ /dev/null @@ -1,123 +0,0 @@ -[#]: 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: "ZhangZhanhaoxiang" -[#]: 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 diff --git a/translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md new file mode 100644 index 0000000000..f7b5a5c4bb --- /dev/null +++ b/translated/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: "ZhangZhanhaoxiang" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用时间序列数据使用开源工具助力您的边缘项目 +====== + +收集到的随时间变化的数据称为时间序列数据(time-series data)。今天,它已经成为每个行业和生态系统的一部分。它是不断增长的物联网行业的一大组成部分,将成为人们日常生活的重要部分。但时间序列数据及其要求很难处理。这是因为没有专门为处理时间序列数据而构建的工具。在这篇文章中,我将详细介绍这些问题,以及过去 10 年来 InfluxData 如何解决这些问题。 + +### InfluxData + +InfluxData 是一个开源的时间序列数据库平台。您可能通过 [InfluxDB][1] 了解该公司,但您可能不知道它专门从事时间序列数据库。这很重要,因为在管理时间序列数据时,您要处理两个问题:存储生命周期(storage lifecycle)和查询(queries)。 + +在存储生命周期中,开发人员通常首先收集和分析非常详细的数据。但开发人员希望存储较小的、降采样的数据集,以描述趋势,而不占用太多的存储空间。 + +查询数据库时,您不希望基于 ID 查询数据。您希望基于时间范围进行查询。使用时间序列数据最常见的一件事是在一段时间内对其进行总结。在使用行和列来描述不同数据点关系这样的典型关系数据库中存储数据时,这种查询速度较慢。设计用于处理时间序列数据的数据库可以更快地处理查询。InfluxDB 有自己的内置查询语言:Flux。这是专门为查询时间序列数据集而构建的。 + +![Telegraf 如何工作的图像][2] + +### 数据采集 + +数据采集和数据处理都有一些很棒的工具。InfluxData 有 12 个以上的客户端库,允许您使用自己选择的编程语言编写和查询数据。这是自定义用法的一个很好的工具。开源摄取代理 Telegraf 包括 300 多个输入和输出插件。如果您是一个开发者,您也可以贡献自己的插件。 + +InfluxDB 还可以接受上传小体积历史数据集的 CSV 文件,以及大数据集的批量导入。 + +``` +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 是我们的内部查询语言,从零开始建立来处理时间序列数据。它也是我们一些工具的基础动力,包括任务(tasks)、警报(alerts)和通知(notifications)。要从上面剖析 flux 查询(flux query),需要定义一些东西。首先,“桶(bucket)”就是我们所说的数据库。您可以配置存储桶,然后将数据流添加到其中。查询会调用 smartcity 存储桶,其范围为特定的一天(准确地说是 24 小时)。您可以从存储桶中获取所有数据,但大多数用户都包含一个数据范围。这是你能做的最基本的 flux 查询。 + +接下来,我添加过滤器,将数据过滤到更精确、更易于管理的地方。例如,我过滤分配给 id 为 3 的邻居中的自行车数量。从那里,我使用 aggregateWindow 获取每小时的平均值。这意味着我希望收到一个包含 24 列的表,每小时一列。我也对 id 为 4 的邻居进行同样的查询。最后,我将这两张表相叠加,得出这两个社区自行车使用量的差异。 + +如果你想知道什么时候是交通高峰,这是不错的选择。显然,这只是 flux 查询功能的一个小例子。但它提供了一个很好的例子,使用了 flux 附带的一些工具。我还有很多的数据分析和统计功能。但对于这一点,我建议查看 Flux 文档。 + +``` +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) + +InfluxDB 任务是一个定时 Flux 脚本,它接收输入数据流并以某种方式修改或分析它。然后,它将修改后的数据存储在新的存储桶中或执行其他操作。将较小的数据集存储到新的存储桶中,称为“降采样”,这是数据库的核心功能,也是时间序列数据生命周期的核心部分。 + +您可以在当前任务示例中看到,我已经对数据进行了降采样。我得到每 10 分钟增量的最后一个值,并将该值存储在降采样桶中。原始数据集在这 10 分钟内可能有数千个数据点,但现在降采样桶只有 60 个新值。需要注意的一点是,我还使用了范围内的最后一个成功的函数。这会告诉 InfluxDB 从上次成功运行时开始运行此任务,以防它在过去2小时内失败,在这种情况下,它可以返回到上次成功运行的 3 个小时。这对于内置错误处理非常有用。 + +![检查和警报通知系统的图像][3] + +### 检查(Checks)和警报(Alerts) + +InfluxDB 包含一个警报或检查和通知系统。这个系统非常简单直白。首先进行检查,定期查看数据以查找您定义的异常。通常,这是用阈值定义的。例如,任何低于 32°F 的温度值都被指定为“WARN”值,高于 32°F 都被分配为“OK”值,低于 0°F 都被赋予“CRITICAL”值。从那开始,您的检查可以按您认为必要的频率运行。您的检查以及每个支票的当前状态都有历史记录。当不需要通知时,您不会被要求设置它。您可以根据需要引用警报历史记录。 + +许多人选择设置通知。为此,您需要定义一个通知端点(notification endpoint)。例如,聊天应用程序可以进行 HTTP 调用以接收通知。然后您定义何时接收通知,例如,您可以每小时运行一次检查。您可以每 24 小时运行一次通知。您可以让通知响应值更改,例如,“WARN”更改为“CRITICAL”,或者当值为“CRITICAL”时,无论如何都从“OK”更改为“WARN”。这是一个高度可定制的系统。从这个系统创建的 Flux 代码也可以编辑。 + +![新 Edge 功能的图像][4] + +### 边缘(Edge) + +最后,我想把所有的核心功能放在一起,包括最近发布的一个非常特别的新功能。从边缘到云(Edge to cloud)是一个非常强大的工具,允许您运行开源 InfluxDB,并在出现连接问题时在本地存储数据。连接修复后,它会将数据流传输到 InfluxData 云平台。 + +这对于边缘设备和重要数据非常重要,因为任何数据丢失都是有害的。您定义要将一个存储桶复制到云,然后该存储桶有一个磁盘支持的队列来本地存储数据。然后定义云存储桶应该复制到的内容。数据存储在本地,直到连接到云。 + +### InfluxDB 和物联网边缘 + +假设你有一个项目,你想使用连接到植物上的物联网传感器[监测家里植物的健康状况][5]。该项目是使用您的笔记本电脑作为边缘设备设置的。当你的笔记本电脑合上或关闭时,它会在本地存储数据,然后在重新连接时将数据流传到我的云存储桶。 + +![图片展示了 Plant buddy 的工作方式][6] + +需要注意的一点是,在将数据存储到复制桶之前,这会对本地设备上的数据进行降采样。你的植物传感器每秒提供一个数据点。但它将数据压缩为平均一分钟,因此可以存储的数据更少。在云账户中,你可以添加一些警报和通知,让你知道植物的水分何时低于某个水平,需要浇水。也可以在网站上使用视觉效果来告诉用户植物的健康状况。 + +数据库是许多应用程序的主干。在像 InfluxDB 的时间序列数据库平台中使用带有时间戳的数据可以节省开发人员的时间,并使他们能够访问各种工具和服务。InfluxDB 的维护者喜欢看到人们在我们的开源社区中构建什么,所以请与我们联系,并与其他人共享您的项目和代码! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/time-series-data-edge-open-source-tools + +作者:[Zoe Steinkamp][a] +选题:[lkxed][b] +译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) +校对:[校对者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 f19762abe5d4de38a91146ec4b5c454e831319bc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 24 Jan 2023 11:20:50 +0800 Subject: [PATCH 222/357] ATRP @wxy https://linux.cn/article-15475-1.html --- ...on Development Environment in Ubuntu and Fedora.md | 140 +++++++++++++++++ ...on Development Environment in Ubuntu and Fedora.md | 142 ------------------ 2 files changed, 140 insertions(+), 142 deletions(-) create mode 100644 published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md delete mode 100644 sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md diff --git a/published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md b/published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md new file mode 100644 index 0000000000..9f522f918a --- /dev/null +++ b/published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md @@ -0,0 +1,140 @@ +[#]: subject: "How to Setup Python Development Environment in Ubuntu and Fedora" +[#]: via: "https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15475-1.html" + +如何在 Ubuntu 和 Fedora 中设置 Python 开发环境 +====== + +> 本文将帮助你了解在 Ubuntu 和 Fedora 中设置 Python 开发环境的基础知识和步骤。 + +[Python][1] 由于其强大的库、简单的语法和可移植性,在过去几年中变得很流行。目前几乎所有的企业系统都在使用它。 + +因此,如果你正试图建立你的 Python 环境,并想知道如何开始等等,那么你就找到正确的地方了。在这里,我试图给你一些开始的步骤。 + +### 在 Ubuntu 和 Fedora 中设置 Python 开发环境 + +#### Python 版本 + +如果你刚刚开始 Python 开发,那么建议你使用最新的 Python 3.x 进行开发,因为 Python 2.x 已经不再支持了。几乎所有领先的 Linux 发行版都取消了对 Python 2 的依赖。 + +如果你正在运行 Fedora 或 Ubuntu 的最新发行版,那么你应该已经安装了 Python 3.x,并设置为默认解释器。例如,Fedora 37 和 Ubuntu 22.04 LTS 将 [Python 3.11][2] 作为默认的 Python 交互界面。 + +找到你的 Python 版本的一个快速方法是在 Ubuntu 和 Fedora 的终端运行以下命令: + +``` +python2 +``` + +``` +python3 +``` + +![python3][3] + +如果你运行的是早期版本的 Ubuntu 或 Fedora,那么你可以使用以下命令安装最新的 Python 3.x: + +Ubuntu: + +``` +sudo apt install python3 +``` + +Fedora: + +``` +sudo dnf install python3 +``` + +另外,运行下面的命令,找出当前系统中 Python 可执行文件的路径: + +``` +Which python +``` + +#### 切换默认解释器的版本 + +如果你的系统安装了多个 Python 版本 —— 2.x 和 3.x,并且你想在它们之间切换,也是可以的。  + +如果你只安装了一个版本,你可以跳过这一节。 + +要进行切换,首先,从终端运行 `python`,找出默认的可执行路径。理想情况下,它应该是 `/usr/bin/python`。现在,运行下面的程序,找出通往可执行文件的符号链接: + +``` +ln -l /usr/bin/python +``` + +``` +lrwxrwxrwx 1 root root .... /usr/bin/pyhton -> python2 +``` + +现在检查一下 `$PATH` 变量,确定系统查找可执行文件的路径连接顺序: + +``` +echo $PATH +``` + +![PATH 变量][4] + +你可以看到 `/usr/local/bin` 在 `/usr/bin/` 之前,那么你可以创建一个软符号链接到 `python3`。然后你的解释器在运行 `python` 命令时就会找到最新的 Python 3 而不是 Python 2。  + +``` +ls -s /usr/bin/python3 /usr/local/bin/python +``` + +现在你应该注销并再次登录以清除任何哈希条目,或者你可以运行 `hash -r` 来清除它们。 + +现在你可以从终端运行 `python`,你应该有最新的 Python 3 了。 + +#### Python IDE + +集成开发环境(IDE)可以帮助你编写、编译和执行你的代码。有 [几个免费的 Python 集成开发环境][5] —— 如 PyCharm、Eclipse、Eric 等,你可以使用。但那将是另一篇关于其优点和缺点的文章。  + +如果你从官方 [python.org][1] 网站下载 Python,Python 还带着一个叫做 IDLE 的默认开发环境。IDLE 适合于起步,之后你可以决定选择任何一个最好的免费 Python IDE。 + +在 Ubuntu 和 Fedora 中,IDLE 并没有和 Python 一起被默认包含,你必须手动安装它。从终端运行下面的命令来手动安装 IDLE: + +Ubuntu: + +``` +sudo apt install idle +``` + +Fedora: + +``` +sudo dnf install python-tools +``` + +安装后,你可以从命令行空闲启动 IDLE 或从应用程序中搜索。 + +![IDLE][6] + +现在,你可以使用 IDLE 开始你的开发。大部分的基本选项你可以在 IDLE 的文件菜单中找到。 + +我希望这篇指南解释了你在开始 Python 开发之前应该知道的东西。 尽管本指南主要是针对 Ubuntu 和 Fedora 的,但你仍然可以在所有基于 Ubuntu 和 Fedora 的发行版上参考它。如果你在 Python 环境设置方面遇到问题,请在下面的评论区告诉我。  + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/ + +作者:[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.python.org/ +[2]: https://www.debugpoint.com/install-python-3-11-ubuntu/ +[3]: https://www.debugpoint.com/wp-content/uploads/2020/06/python3.jpg +[4]: https://www.debugpoint.com/wp-content/uploads/2020/06/PATH-Variable.png +[5]: https://www.debugpoint.com/5-best-python-ide-code-editor/ +[6]: https://www.debugpoint.com/wp-content/uploads/2020/06/IDLE-environment.png +[7]: https://www.debugpoint.com/bash-base64-encode-decode/ diff --git a/sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md b/sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md deleted file mode 100644 index f7e578e4c6..0000000000 --- a/sources/tech/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md +++ /dev/null @@ -1,142 +0,0 @@ -[#]: subject: "How to Setup Python Development Environment in Ubuntu and Fedora" -[#]: via: "https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Setup Python Development Environment in Ubuntu and Fedora -====== - -**This article helps you with the basics and steps to setup your Python development environment in Ubuntu and Fedora.** - -[Python][1] became popular in the last couple of years due to its powerful libraries, easy syntax, and portability. It is being used currently almost every system across businesses. - -So, if you are trying to set up your Python box and wondering how to begin etc., then you are at the right place. Here, I tried to give you some steps to get started. - -### Setup Python Development Environment in Ubuntu and Fedora - -#### Python Versions - -If you are starting up Python development fresh, then it is recommended that you use the latest Python 3.x for your development, as Python 2.x is already out of support. Almost all the leading Linux distributions removed the dependency on Python 2. - -If you are running the latest distributions as of today for Fedora or Ubuntu, then you should have Python 3.x already installed and set as the default interpreter. For example, Fedora 37 and Ubuntu 22.04 LTS, which are currently available, have [Python 3.11][2] as the default Python shell. - -A quick way to find out what Python version you have is by running the below command from a terminal in both Ubuntu and Fedora. - -``` -python2 -``` - -``` -python3 -``` - -![python3][3] - -If you are running earlier versions of Ubuntu or Fedora, then you can install the latest Python 3.x using the below commands: - -**Ubuntu** - -``` -sudo apt install python3 -``` - -**Fedora** - -``` -sudo dnf install python3 -``` - -Also, run the below command to find out the path of your Python executable in the current system: - -``` -which python -``` - -#### Switching Versions as the default interpreter - -If your system has multiple Python versions installed – 2.x and 3.x and you want to switch between them, it is possible.  - -_If you have only one version installed, you can skip this section._ - -To switch, first, run python from the terminal to find out the default executable path. Ideally, it should be `/usr/bin/python`. Now, run below to find out the symbolic link to the executable. - -``` -ln -l /usr/bin/python -``` - -``` -lrwxrwxrwx 1 root root .... /usr/bin/pyhton -> python2 -``` - -Now check out the `$PATH` variable to determine the order of path concatenation which the system looks up for executables. - -``` -echo $PATH -``` - -![PATH-Variable][4] - -As you can see `/usr/local/bin`is preceding the `/usr/bin/` then you can create a soft symbolic link to `python3`. Then your interpreter should pick up the latest Python 3 instead of Python 2 while running the python command.  - -``` -ls -s /usr/bin/python3 /usr/local/bin/python -``` - -Now you should logout and log in again to clear any hash entries, or you can run `hash -r` to clear them out. - -Now you can run python from the terminal, and you should have the latest Python 3 picked up. - -#### Python IDE - -An integrated development environment (IDE) helps you write and compile and execute your code. There are [several free Python IDE available][5] – such as PyCharm, Eclipse, Eric, etc., which you can use. That would be another write-up on their pros and cons.  - -If you download Python from the official [python.org][1] website, Python accompanies a default development environment called IDLE. IDLE is good for starting up your system, and later you can decide to pick any of the best free Python IDE available. - -IDLE is not included in Ubuntu and Fedora along with python as default, you have to install it manually. Run the below commands from the terminal to manually install IDLE. - -**Ubuntu** - -``` -sudo apt install idle -``` - -**Fedora** - -``` -sudo dnf install python-tools -``` - -Once installed, you can launch IDLE from the command line idle or search from the application. - -![IDLE-environment`][6] - -Now, you can use IDLE to start your development. Most of the basic options you can find in the File menu of IDLE. - -I hope this guide explains what you should know before starting your Python development. Although this guide is primarily targeted to Ubuntu and Fedora, you can still follow the instructions for all Ubuntu and Fedora-based distributions as well. If you are facing problems with the Python environment setup, let me know in the comment section below.  - -[Next:Learn Bash base64 Encode and Decode With Examples][7] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/setup-python-environment-ubuntu-fedora/ - -作者:[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.python.org/ -[2]: https://www.debugpoint.com/install-python-3-11-ubuntu/ -[3]: https://www.debugpoint.com/wp-content/uploads/2020/06/python3.jpg -[4]: https://www.debugpoint.com/wp-content/uploads/2020/06/PATH-Variable.png -[5]: https://www.debugpoint.com/5-best-python-ide-code-editor/ -[6]: https://www.debugpoint.com/wp-content/uploads/2020/06/IDLE-environment.png -[7]: https://www.debugpoint.com/bash-base64-encode-decode/ From 85ac25d0b86e70e7e50dd362dd6eccb352daa637 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Tue, 24 Jan 2023 16:00:17 +0800 Subject: [PATCH 223/357] translating --- ...Popular Python Library for Data Analysis and Data Science.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md index a7a8859ec7..19a4a30542 100644 --- a/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md +++ b/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/" [#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3a1b599151460e26da3db75eb24a340e160d9ed7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 24 Jan 2023 21:02:32 +0800 Subject: [PATCH 224/357] ATRP @wxy https://linux.cn/article-15476-1.html --- ...S Your Search for Perfect Arch Distro Ends Here.md | 135 ++++++++++++++++++ ...S Your Search for Perfect Arch Distro Ends Here.md | 134 ----------------- 2 files changed, 135 insertions(+), 134 deletions(-) create mode 100644 published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md delete mode 100644 sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md diff --git a/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md b/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md new file mode 100644 index 0000000000..07797da3e5 --- /dev/null +++ b/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md @@ -0,0 +1,135 @@ +[#]: 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: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15476-1.html" + +EndeavourOS:你对完美的 Arch 发行版的搜寻到此为止 +====== + +![][0] + +> 我们整体点评了最近发布的 EndeavourOS “Cassini”。 + +每年,个人和小型团队们推出了数以百计的 Linux 发行版。它们大多是 Debian、Ubuntu、Fedora 或 Arch Linux 的直接衍生品,再加上一些定制的东西。这也难怪每年都有因为缺乏贡献、愿景和坚持而死亡的发行版。 + +三年前,作为已停止的 Antergos 项目的延续,一个由贡献者们组成的小团队发起了 EndeavourOS 项目。从那时起,由于其安装简单,用户体验和功能,它已经变得很受欢迎。 + +![具备 Xfce 桌面的 EndeavourOS][1] + +### 点评 EndeavourOS + +如果你曾经试过它,你就会很明显地发现,他们花了很多心血来开发这个发行版。这个发行版的口号是成为一个面向大众的 “通用” Arch Linux 发行版,摒弃了新用户对 Arch Linux 安装的恐惧,以及使用 Arch 时的优越感。 + +如果你曾经尝试过 EndeavourOS,你一定会 “感觉” 到作为一个 Arch 发行版,对最终用户来说,在桌面上执行的事情是多么的 “容易”。 + +#### 安装和可供选择的桌面 + +通过 “独有的” Calamares 安装程序,它的安装变得超级简单。除此之外,EndeavourOS 团队还特别注意在安装步骤中为你提供了大部分的选项。例如,无需用户干预的临场介质直接启动。它会启动欢迎屏幕。欢迎屏幕要做的事就是提供让你在系统中安装它所有必要选项。 + +![EndeavourOS 欢迎屏幕][2] + +默认情况下,ISO 提供了一个轻量级的 Xfce 桌面。然而,EndeavourOS 也为你提供了各种桌面环境和窗口管理器(见下文)。而且它们都经过测试,可以正常工作。如果你在安装过程中连接到了互联网,你可以通过 Calamares 安装程序来安装这些。这意味着你不需要在基本的 Xfce 设置后重新安装它们。 + +此外,如果你是一个资深用户,只想安装一个基本的 Arch Linux,不需要任何桌面,那也是可以的。只要在安装时使用 “无桌面No desktop” 选项就可以了! + +尽管 Arch Linux 最近创建了一个自动脚本 `archinstall` 来使安装更容易,但通过 EndeavourOS 的 ISO 来获得 Arch 的基本安装仍然更快、更容易。 + +![EndeavourOS 安装程序显示无桌面和其他选项][3] + +此外,你可以在三个选项中选择:GRUB、systemd-boot 或 “无启动器no bootloader”,这是 EndeavourOS “Cassini” 版本的亮点功能之一。此外,你还可以选择你要安装的软件包(仅在线模式支持)。例如,你可能需要一个基本的系统来开始使用。或者,你可能想安装一些与视频/音频或开发工作有关的应用程序。所有这些你都可以在这个版本中选择。 + +安装通过检测我的测试机中安装的其他操作系统而完成,很顺利。在“Cassini” 版本中,该团队还将 mkinitcpio 换成了 [dracut][4],以获得更好的性能,减少启动相关问题的失败。 + +#### “Xfce” 旗舰版的桌面体验 + +第一次登录后,你会再次看到欢迎程序,其中有一个 “安装后” 可以做的项目列表。开发人员提供了一个非常周到的列表。这包括改变墙纸、更新 Arch 镜像、安装英伟达驱动等初始任务。许多 Linux 发行版都有一个欢迎程序,但我认为这个程序是一个完善的软件包。 + +![欢迎应用中的安装后项目][5] + +默认的外观是你能得到的定制的最好的 Xfce 桌面。通过定制,它成为一个外观良好的发行版,远非默认的 Xfce 可比。定制包括 GRUB 菜单、登录屏幕和桌面等等。 + +Xfce 主菜单配置了更多的项目,终端略带透明,使用 Qogir 图标主题。所有这些变化都辅以令人惊叹的壁纸和 Arc-Darker 默认 Xfce 主题。 + +![EndeavourOS “Cassini” 桌面带有 Xfce 4.18][6] + +#### 性能 + +尽管有桌面环境,Arch Linux 的性能总是更好。它总是令人感觉更快,因为它的内部并不臃肿。除此之外,[Xfce 桌面 4.18][7] 在 “Cassini” 版本中还做了额外的性能优化,你可以在浏览桌面的时候感受到。 + +在空闲状态下,它使用了大约 700MB 的内存和平均 4% 的 CPU 占用。这是性能基线。资源使用量可能会根据你打开的应用程序的数量而增加。在我之前对 EndeavourOS 的点评中,其性能表现也类似。 + +不仅如此,它在默认的 Xfce 安装中只使用了 4GB 的磁盘空间。然而,你可能需要安装额外的重型软件,如 LibreOffice、GIMP 或 KDenlive,这将占用更多磁盘空间。 + +![EndeavourOS “Cassini” 的性能][8] + +#### 在 EndeavourOS 中执行日常任务有多容易? + +EndeavourOS 的一大特点是一些基于 Python 的 GUI 工具,可以使你在 Arch Linux 中的生活变得简单。例如,你可以从 Arch 和 EndeavourOS 的软件仓库中获得更新通知、一键从 AUR 安装软件、一键更新镜像和你的系统。你不需要从终端运行任何命令。这对 Arch Linux 的新用户来说是一个很大的帮助。 + +![一键安装软件][9] + +![软件包清理器和更新管理器][10] + +#### 处理滚动发布的独特方式,以实现稳定性 + +Arch Linux 作为一个滚动发布的发行版,往往会出现故障。例如,在 Arch 主仓库的每个月的内核更新期间,一些系统可能会出现故障。由于它的受欢迎程度和开发者的主动性,如果出现问题,你会得到通知和相关的解决方法。 + +最近 Arch Linux 中的 GRUB 问题,给用户带来了大量的启动问题,EndeavourOS 团队通过适当的沟通,给用户提供了解决方法,真的 [处理得很好][11]。 + +因此,如果你最终遇到一个不稳定的系统,你也不会真的迷失。 + +此外,Pacman 的配置已被定制过,使用 EndeavourOS 选择的镜像,以确保你的体验是完美的。 + +#### 对开源硬件和 ARM 的正式支持 + +在这个 EndeavourOS “Cassini” 版本中,官方支持了 Pinebook Pro 笔记本电脑。该团队在 Manjaro 软件包的基础上与 Pine64 团队合作,为你提供了独家的 Arch 软件包,使该笔记本开箱即用。此外, EndeavourOS ARM 镜像也可用于树莓派 4。 + +#### 社区帮助 + +EndeavourOS 最大的好处之一是社区帮助 —— 这是即时的!这主要是由于它有专门的 [Telephone] 社区。这主要是指其专门的 [Telegram 频道][12],在那里你可以在几分钟内得到对你的 EndeavourOS 的任何问题的回应。我曾经去过这个频道,管理员/贡献者们都很友好,很有帮助。 + +此外,你也可以从官方论坛和其他社交渠道获得帮助。 + +### 总结 + +在结束对 EndeavourOS 的 [“Cassini” 版本][13] 的点评时,我想说这是一个构建得最好的发行版,而且组织良好。开发者和团队有一个建立通用的 Arch Linux 发行版的清晰路线图。另外,通过对 ARM 和 Pinebook Pro 的支持以及其他举措,其愿景也很明确。 + +总而言之,对于每一个希望在 Arch Linux 中拥有一个运行时间更长、更稳定的系统的人来说,这是一个完美的发行版。 + +你可以从 [官方网站][14] 下载 EndeavourOS。 + +让我们举杯! + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/endeavouros-review/ + +作者:[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/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/ +[0]: https://img.linux.net.cn/data/attachment/album/202301/24/205819zhx7kx5899ra9ka9.jpg \ No newline at end of file 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 deleted file mode 100644 index dddfcdca15..0000000000 --- a/sources/tech/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md +++ /dev/null @@ -1,134 +0,0 @@ -[#]: 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 63d3a9373352f2d302bc8f0bb810af200f7ef0a2 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 24 Jan 2023 22:20:25 +0800 Subject: [PATCH 225/357] R --- ...⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md b/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md index 07797da3e5..c124152828 100644 --- a/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md +++ b/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md @@ -90,7 +90,7 @@ Arch Linux 作为一个滚动发布的发行版,往往会出现故障。例如 #### 社区帮助 -EndeavourOS 最大的好处之一是社区帮助 —— 这是即时的!这主要是由于它有专门的 [Telephone] 社区。这主要是指其专门的 [Telegram 频道][12],在那里你可以在几分钟内得到对你的 EndeavourOS 的任何问题的回应。我曾经去过这个频道,管理员/贡献者们都很友好,很有帮助。 +EndeavourOS 最大的好处之一是社区帮助 —— 这是即时的!这主要是指其专门的 [Telegram 频道][12],在那里你可以在几分钟内得到对你的 EndeavourOS 的任何问题的回应。我曾经去过这个频道,管理员/贡献者们都很友好,很有帮助。 此外,你也可以从官方论坛和其他社交渠道获得帮助。 From e7bd20bad3699542c61318560368129334405c27 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 25 Jan 2023 15:12:55 +0800 Subject: [PATCH 226/357] translated --- ...rary for Data Analysis and Data Science.md | 100 ---------------- ...rary for Data Analysis and Data Science.md | 108 ++++++++++++++++++ 2 files changed, 108 insertions(+), 100 deletions(-) delete mode 100644 sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md create mode 100644 translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md diff --git a/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md deleted file mode 100644 index 19a4a30542..0000000000 --- a/sources/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: "Pandas: The Popular Python Library for Data Analysis and Data Science" -[#]: via: "https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/" -[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Pandas: The Popular Python Library for Data Analysis and Data Science -====== - -*Pandas is a popular Python library. This article describes a few features and functions available in this library, and encourages readers to use it for practical business problems.* - -Pandas provides fundamental and high-level building blocks for practical, real world data analysis in Python. It is one of the most powerful and flexible open source tools for data analysis and manipulation, and provides data structures for modelling and manipulating tabular data (data in rows and columns). - -Pandas has two primary data structures. The first is a ‘series’ data structure that helps to retrieve data from the array or dictionary of Python objects. Data can be retrieved either by position or by specifying the index name. The second is the ‘dataframes’ data structure to store data in rows and columns. Columns have column names and rows are accessed using indexes. Columns can have different types of data including lists, dictionaries, pandas series, another dataframe, NumPy arrays, etc. - -### Processing various file types - -Data is often available in various formats. It is imperative that the tool used for data analysis is able to provide a wide range of methods for handling it. - -With Pandas, one can read various file types like CSV, JSON, XML, Parquet, SQL (see Table 1). - -| | Write | Read | -| :- | :- | :- | -| CSV | to_csv | read_csv | -| JSON | to_json | Read_json | -| Parquet | to_parquet | read_parquet | -| SQL | to_sql | read_sql, read_sql_query, read_sql_table | -| XML | to_xml | read_xml | - -### Data cleansing using Pandas - -In real-world scenarios, data is often incomplete and includes bad data. It is sometimes duplicated. Also, data includes sensitive and confidential information, which needs to be masked. Pandas offers ways to handle bad data by using methods like cleaning, dropping, replacing, masking, etc. - -a.  Empty rows can be removed with the *df.dropna(inplace=True)* operation. - -b.  Empty values can be replaced with *df.fillna(, inplace=True)*. We can specify the column name to be placed in a particular column. - -c. You can mask the values for sensitive and non-public data for all items NOT satisfying the condition *my_list.where(my_list < 5)*. Masking of values satisfying the condition can be done with*my_list.mask(my_list < 5)*. - -d. Duplicates can be dropped from a dataframe using: - -``` -df.drop_duplicates(‘’, keep = False) -df.drop_duplicates(‘’, keep = ‘first’) -df.drop_duplicates(‘’, keep = ‘last’) -``` - -### Data analysis using Pandas - -Table 2 lists the various functions in Pandas that perform data analysis as well as the syntax for usage. (Note: df stands for dataframe.) - -| Function | Description | Syntax | -| :- | :- | :- | -| Head | Head() function returns the first five rows | df.head(x) | -| tail | tail() function returns the last five rows by default | df.tail(x) | -| Loc | Loc function returns a particular row. Slicing of the data is also possible | loc(x:y) | -| Groupby | Groups data on a particular column | groupby(‘’) | -| Sum | Sum of values in a particular column | df[‘column’].sum() | -| Mean | Average of values in a particular column | df[‘column’]. mean() | -| Min | Minimum value in a particular column | df[‘column’].min() | -| Max | Maximum value in a particular column | df[‘column’].max() | -| Sort | Sorts dataframe in a column | df.sort_values([‘column’]) | -| Size | Rows * columns | df.size | -| Describe | Describes details of the dataframe | df.describe | -| Crosstab | Creates a frequency tabulation of rows and columns | pd.crosstab(df[‘column1’], df[‘column2’], margins = True) | -| Duplicated | Returns True or False based on duplicate values in Column1 and Column2 | df.duplicated([column1, ‘column2’]) | - -### Advantages of Pandas - -* It supports multi-index (hierarchical index) used for easy analysis of data having a large number of dimensions. -* It supports the creation of pivot tables, stack and unstack operations. -* Categorical data containing finite values can be processed with Pandas. -* It supports grouping and aggregations. -* Sorting can be explicitly disabled. -* It supports filtering at both row-level (gets the rows satisfying the filter condition) and column-level (selects only the required columns). -* Helps in reshaping of data sets. You can also transpose the values of the array and convert to a List. When you are processing data using Python, you can convert the Pandas dataframe to a multi-dimensional NumPy array; the values member variable is used for this. -* Supports label-oriented slicing of data. - -### The disadvantages - -The code and syntax of Pandas is different from Python, which leads to a steep learning curve for some users. Also, a few concepts like three dimensional data are better handled in other libraries like NumPy. - -Pandas really elevates the data analysis process in an efficient manner. Its compatibility with other libraries makes it very conducive for use in various scenarios. - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/ - -作者:[Phani Kiran][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.opensourceforu.com/author/phani-kiran/ -[b]: https://github.com/lkxed diff --git a/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md new file mode 100644 index 0000000000..ef994f9ba9 --- /dev/null +++ b/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md @@ -0,0 +1,108 @@ +[#]: subject: "Pandas: The Popular Python Library for Data Analysis and Data Science" +[#]: via: "https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/" +[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Pandas:用于数据分析和数据科学的最热门 Python 库 +====== + +>Pandas 是一个十分流行的 Python 第三方库。本文介绍了 Pandas 库中的一些特性和函数,并且我们鼓励读者亲手使用 Pandas 库,来解决实际的业务问题。 + +Pandas 为 Python 中数据分析提供了基础和高级的构建块。Pandas 库是用于数据分析与数据操作的最强大和最灵活的开源**分析工具**之一,并且它还提供了用于建模和操作表格数据(行和列中的数据)的**数据结构**。 + +Pandas 库有两个主要的数据结构:第一个是“**Series**”,该数据结构能够很方便地从 Python 数组或字典中**按位置或指定索引名称**来检索数据;第二个是“**DataFrames**”,该数据结构将数据存储在行和列中。列可以通过列名访问,行通过索引访问。列可以有不同类型的数据,包括列表、字典、Series、DataFrames、NumPy 数组等。 + +### Pandas 库可以处理各种文件格式 + +有各种各样的文件格式。用于数据分析的工具必须能够提供处理各种文件格式的方法。 + +Pandas 可以读取各种文件格式,例如 CSV 文件、JSON 文件、XML 文件、Parquet 文件、SQL 文件,详见下表。 + +| | 写入 | 读取 | +| :- | :- | :- | +| CSV 文件 | to_csv 函数 | read_csv 函数 | +| JSON 文件 | to_json 函数 | read_json 函数 | +| Parquet 文件 | to_parquet 函数 | read_parquet 函数 | +| SQL 文件 | to_sql 函数 | read_sql 函数,read_sql_query 函数,read_sql_table 函数 | +| XML 文件 | to_xml 函数 | read_xml 函数 | + +### 使用 Pandas 进行数据清理 + +在现实场景中,很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要对使数据分析更加准确,就需要对这些没有用的数据进行处理。此外,数据还会有需要 屏蔽mask 的敏感和机密信息。接下来,Pandas 提供了清理、丢弃、替换、屏蔽等方法,来处理这些坏数据。 + +#### Pandas 清洗空值: + +a. 使用 *df.dropna(inplace=True)* 方法来删除包含空字段的行。 + +b. 使用 *df.fillna(, inplace=True)* 方法来替换空字段。还可以指定某一个列来替换该列的空数据。 + +#### Pandas 屏蔽数据: + +c. 要屏蔽所有不满足条件 *my_list.where(my_list < 5)* 的敏感数据的值,可以使用 *my_list.mask(my_list < 5)*。 + +#### Pandas 清洗重复数据: + +d. 要删除重复数据,可以使用 drop_duplicates() 方法: + +``` +df.drop_duplicates(‘’, keep = False) +df.drop_duplicates(‘’, keep = ‘first’) +df.drop_duplicates(‘’, keep = ‘last’) +``` + +### 使用 Pandas 进行数据分析 + +下面的表格列出了 Pandas 中进行数据分析的各种函数,以及其语法。(请注意:df 代表一个 DataFrame 数据结构的实例。) + +| 语法 | 描述 | +| :- | :- | +| df.head(x) | Head() 函数用于读取前面的 x 行,如果不填参数 x,默认返回 5 行 | +| df.tail(x) | tail() 函数用于读取尾部的 x 行,如果不填参数 x ,默认返回最后 5 行,空行各个字段的值返回 NaN | +| loc(x:y) | Loc 函数返回指定行的数据,也可以对数据进行切片 | +| groupby(‘’) | 对指定列的数据进行分组 | +| df[‘column’].sum() | 计算指定列数据的总和 | +| df[‘column’]. mean() | 计算指定列数据的算术平均值 | +| df[‘column’].min() | 计算指定列数据的最小值 | +| df[‘column’].max() | 计算指定列数据的最大值 | +| df.sort_values([‘column’]) | 在指定轴上根据数值进行排序,默认升序 | +| df.size | 返回元素的个数,即为 Rows(行数)* columns(列数) | +| df.describe | 返回对各列的统计汇总 | +| pd.crosstab(df[‘column1’], df[‘column2’], margins = True) | 创建 `column1` 和 `column2` 的交叉表 | +| df.duplicated([column1, ‘column2’]) | 根据 `column1` 和 `column2` 中的重复值,返回 True 或 False | + +### Pandas 的优点 + +* 支持多索引(层次索引),方便分析多维数据。 +* 支持数据透视表的创建,堆栈和取消堆栈操作。 +* 可以使用 Pandas 处理有限值的分类数据。 +* 支持分组和聚合运算。 +* 可以禁用排序。 +* 支持行级过滤(获取满足过滤条件的行)和列级过滤(只选择需要的列)。 +* 有助于重塑数据集(数组的维度变换)。还可以转置数组的值,并转换为列表。当你使用 Python 处理数据时,可以将 Pandas DataFrame 转换为多维 NumPy 数组。 +* 支持面向标签的数据切片。 + +### Pandas 的不足 + +Pandas 的代码和语法与 Python 不同,所以人们需要额外再学习 Pandas。此外,相较于 Pandas,像三维数据这样的高维数据会在 NumPy 等其他库有更好的处理。 + +### 总结 + +Pandas 能够大幅提升数据分析的效率。它与其他库的兼容性使它在其他 Python 库中都能有效地使用。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/ + +作者:[Phani Kiran][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.opensourceforu.com/author/phani-kiran/ +[b]: https://github.com/lkxed From 0990d13015b720b1d4885a5c2e8b64dc3a24bd57 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 25 Jan 2023 21:22:35 +0800 Subject: [PATCH 227/357] RP @geekpi https://linux.cn/article-15480-1.html --- ...nstall Python on Windows [Beginner’s Guide].md | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) rename {translated/tech => published}/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md (71%) diff --git a/translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md b/published/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md similarity index 71% rename from translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md rename to published/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md index 1a4b13d51f..8ef8685076 100644 --- a/translated/tech/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md +++ b/published/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md @@ -3,18 +3,20 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15480-1.html" -如何在 Windows 上安装 Python(初学者指南) +如何在 Windows 上安装 Python ====== -**这个简单的指南演示了如何在 Windows 上下载和安装 Python。** +![][0] + +> 这个简单的指南演示了如何在 Windows 上下载和安装 Python。 这篇文章是用最新的 Python 3.11 稳定版测试的。 -在学习如何在 Windows 上安装 Python 之前,你可能想看看如何在 Linux 发行版(如 Ubuntu)上[轻松安装][1] 。如果你打算成为一名开发者,最好在 Linux 中尝试 Python。既然如此,你可能想看看[如何在 Windows 之外安装 Linux(如 Ubuntu)][2]。 +在学习如何在 Windows 上安装 Python 之前,你可能想看看如何在 Linux 发行版(如 Ubuntu)上[轻松安装][1] Python。如果你打算成为一名开发者,最好在 Linux 中尝试 Python。那么,你可能想看看 [如何在 Windows 之外安装 Linux(如 Ubuntu)][2]。 Python 是一种流行的通用编程语言,在过去十年中成为开发者的选择。而且它的受欢迎程度与日俱增。它被广泛用于网络开发、复杂系统、数据科学、机器学习和所有科学领域。 @@ -22,7 +24,7 @@ Python 是一种流行的通用编程语言,在过去十年中成为开发者 ### 检查 Python 是否已经安装 -在 Windows 上安装它之前,你应该检查它是否已经安装。一般来说,它应该没有安装,不像在 Ubuntu (和其他 Linux 发行版)中,Python 是预先安装的。 +在 Windows 上安装它之前,你应该检查它是否已经安装。一般来说,它应该没有安装,不像在 Ubuntu (和其他 Linux 发行版)中,Python 是预先安装的。 从开始菜单中,打开“命令提示符”。 @@ -38,9 +40,9 @@ python --version 打开下面的 Python 官方下载页面。 -[下载 Python][3] +> **[下载 Python][3]** -![如何定位 Python 安装][4] +![如何找到要安装的 Python][4] 在顶部,你应该看到当前的稳定版本。点击下载链接。如果你正在寻找任何特定的版本,在这个页面上向下滚动,在 “Python releases by version number:” 的标签下下载特定的版本。 @@ -70,17 +72,17 @@ python --version python ``` -你可以用 CTRL+Z 和回车键退出这个 shell。 +你可以用 `CTRL+Z` 和回车键退出这个交互界面。 ### 检查 PATH 变量 -你应该用 Python 的可执行位置检查系统变量 PATH。这应该是使用安装程序自动更新的。 +你应该检查系统变量 `PATH`,看看 Python 的可执行位置是否存在。这应该是使用安装程序自动更新的。 -从开始菜单中,搜索“系统变量”并打开它。 +从开始菜单中,搜索“系统变量system variables”并打开它。 ![打开环境变量设置][8] -在“系统属性”对话框中,点击“高级>环境变量”。在用户变量部分,对照路径变量,检查 Python 的安装位置是否存在。请参考下面的图片作为指导。 +在“系统属性”对话框中,点击“高级Advanced > 环境变量Environment Variables”。在用户变量部分,对照路径变量,检查 Python 的安装位置是否存在。请参考下面的图片作为指导。 如果你看到所有的路径都存在,你就可以运行你的 Python 项目了。 @@ -88,16 +90,16 @@ python ### 创建并运行你的第一个 Python 程序 -一个额外的步骤,这里是你如何编码和运行你的第一个 Python 程序。你可以使用任意[推荐的 Python 编辑器][10]来编写你的程序。 +一个额外的步骤,这里是你如何编码和运行你的第一个 Python 程序。你可以使用任意 [推荐的 Python 编辑器][10] 来编写你的程序。 -下面是一个简单的程序,它在控制台中输出文本“debugpoint.com”。 +下面是一个简单的程序,它在控制台中输出文本 `debugpoint.com`。 ``` # Sample Python program print("debugpoint.com") ``` -用任意名字保存文件。这里我把它保存为 “hello.py”,放在 E 盘。.py 是 Python 源码的扩展名。 +用任意名字保存文件。这里我把它保存为 `hello.py`,放在 E 盘。`.py` 是 Python 源码的扩展名。 要运行这个程序,请打开命令提示符,在 E 盘中执行以下内容。 @@ -105,7 +107,7 @@ print("debugpoint.com") python hello.py ``` -**输出** +输出: ![在 Windows 中运行一个简单的 Python 程序][11] @@ -122,13 +124,13 @@ via: https://www.debugpoint.com/install-python-windows/ 作者:[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/) 荣誉推出 [a]: https://www.debugpoint.com/author/admin1/ [b]: https://github.com/lkxed -[1]: https://www.debugpoint.com/install-python-3-11-ubuntu/ +[1]: https://linux.cn/article-15475-1.html [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 @@ -138,4 +140,5 @@ via: https://www.debugpoint.com/install-python-windows/ [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 \ No newline at end of file +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Running-a-simple-Python-program-in-Windows.jpg +[0]: https://img.linux.net.cn/data/attachment/album/202301/25/211813u4mmhhffif58hmpu.jpg \ No newline at end of file From f94450d1cf27781e7bce8e6c66faea156ebd186a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 25 Jan 2023 22:07:20 +0800 Subject: [PATCH 228/357] RP @Zhangzhanhaoxiang https://linux.cn/article-15481-1.html --- ...power your edge projects with open source tools.md | 128 ++++++++++++++++++ ...power your edge projects with open source tools.md | 123 ----------------- 2 files changed, 128 insertions(+), 123 deletions(-) create mode 100644 published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md delete mode 100644 translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md diff --git a/published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md new file mode 100644 index 0000000000..39920d1915 --- /dev/null +++ b/published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md @@ -0,0 +1,128 @@ +[#]: 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: "ZhangZhanhaoxiang" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15481-1.html" + +使用时间序列数据,用开源工具助力你的边缘项目 +====== + +![][0] + +> InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。 + +收集到的随时间变化的数据称为时间序列数据。今天,它已经成为每个行业和生态系统的一部分。它是不断增长的物联网行业的一大组成部分,将成为人们日常生活的重要部分。但时间序列数据及其需求很难处理。这是因为没有专门为处理时间序列数据而构建的工具。在这篇文章中,我将详细介绍这些问题,以及过去 10 年来 InfluxData 如何解决这些问题。 + +### InfluxData + +InfluxData 是一个开源的时间序列数据库平台。你可能通过 [InfluxDB][1] 了解该公司,但你可能不知道它专门从事时间序列数据库开发。这很重要,因为在管理时间序列数据时,你要处理两个问题:存储生命周期和查询。 + +在存储生命周期中,开发人员通常首先收集和分析非常详细的数据。但开发人员希望存储较小的、降低采样率的数据集,以描述其趋势,而不占用太多的存储空间。 + +查询数据库时,你不希望基于 ID 查询数据,而是希望基于时间范围进行查询。使用时间序列数据最常见的一件事是在一段时间内对其进行汇总。在典型的关系型数据库中存储数据时,这种查询是很慢的,这种数据库使用行和列来描述不同数据点的关系。专门为处理时间序列数据而设计的数据库可以更快地处理这类查询。InfluxDB 有自己的内置查询语言:Flux,这是专门为查询时间序列数据集而构建的。 + +![Telegraf 如何工作的图像][2] + +### 数据采集 + +数据采集和数据处理都有一些很棒的工具。InfluxData 有 12 个以上的客户端库,允许你使用自己选择的编程语言编写和查询数据。这是自定义用法的一个很好的工具。开源摄取代理 Telegraf 包括 300 多个输入和输出插件。如果你是一个开发者,你也可以贡献自己的插件。 + +InfluxDB 还可以接受上传小体积历史数据集的 CSV 文件,以及大数据集的批量导入。 + +``` +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 是我们的内部查询语言,从零开始建立,用于处理时间序列数据。它也是我们一些工具的基础动力,包括 任务task警报alert通知notification。要剖析上面的 Flux 查询,需要定义一些东西。首先,“bucket”就是我们所说的数据库。你可以配置存储桶,然后将数据流添加到其中。查询会调用 `smartcity` 存储桶,其范围为特定的一天(准确地说是 24 小时)。你可以从存储桶中获取所有数据,但大多数用户都包含一个数据范围。这是你能做的最基本的 Flux 查询。 + +接下来,我添加过滤器,将数据过滤到更精确、更易于管理的地方。例如,我过滤分配给 id 为 3 的社区中的自行车数量。从那里,我使用 `aggregateWindow` 获取每小时的平均值。这意味着我希望收到一个包含 24 列的表,每小时一列。我也对 id 为 4 的社区进行同样的查询。最后,我将这两张表相叠加,得出这两个社区自行车使用量的差异。 + +如果你想知道什么时候是交通高峰,这是不错的选择。显然,这只是 Flux 查询功能的一个小例子。但它提供了一个很好的例子,使用了 Flux 附带的一些工具。我还有很多的数据分析和统计功能。但对于这一点,我建议查看 Flux 文档。 + +``` +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") +``` + +### 任务 + +InfluxDB 任务task 是一个定时 Flux 脚本,它接收输入数据流并以某种方式修改或分析它。然后,它将修改后的数据存储在新的存储桶中或执行其他操作。将较小的数据集存储到新的存储桶中,称为“降采样downsampling”,这是数据库的核心功能,也是时间序列数据生命周期的核心部分。 + +你可以在当前任务示例中看到,我已经对数据进行了降采样。我得到每 10 分钟增量的最后一个值,并将该值存储在降采样桶中。原始数据集在这 10 分钟内可能有数千个数据点,但现在降采样桶只有 60 个新值。需要注意的一点是,我还使用了范围内的 `lastSuccess` 函数。这会告诉 InfluxDB 从上次成功运行的时间开始运行此任务,以防它在过去 2 小时内失败,在这种情况下,它可以追溯 3 个小时内的最后一次成功运行。这对于内置错误处理非常有用。 + +![检查和警报通知系统的图像][3] + +### 检查和警报 + +InfluxDB 包含一个 警报Alert检查Check通知notification 系统。这个系统非常简单直白。首先进行检查,定期查看数据以查找你定义的异常。通常,这是用阈值定义的。例如,任何低于 32°F 的温度值都被指定为“WARN”值,高于 32°F 都被分配为“OK”值,低于 0°F 都被赋予“CRITICAL”值。从那开始,你的检查可以按你认为必要的频率运行。你的检查以及每个检查的当前状态都有历史记录。在不需要的时候,你不需要设置通知。你可以根据需要参考你的警报历史记录。 + +许多人选择设置通知。为此,你需要定义一个 通知端点notification endpoint。例如,聊天应用程序可以进行 HTTP 调用以接收通知。然后你定义何时接收通知,例如,你可以每小时运行一次检查。你可以每 24 小时运行一次通知。你可以让通知响应值更改,例如,“WARN”更改为“CRITICAL”,或者当值为“CRITICAL”时,无论如何都从“OK”更改为“WARN”。这是一个高度可定制的系统。从这个系统创建的 Flux 代码也可以编辑。 + +![新 Edge 功能的图像][4] + +### 边缘 + +最后,我想把所有的核心功能放在一起,包括最近发布的一个非常特别的新功能。“Edge to cloud” 是一个非常强大的工具,允许你运行开源 InfluxDB,并在出现连接问题时在本地存储数据。连接修复后,它会将数据流传输到 InfluxData 云平台。 + +这对于边缘设备和重要数据非常重要,因为任何数据丢失都是有害的。你定义一个要复制到云的存储桶,然后该存储桶有一个磁盘支持的队列来本地存储数据。然后定义云存储桶应该复制到的内容。在连接到云端之前,数据都存储在本地。 + +### InfluxDB 和物联网边缘 + +假设你有一个项目,你想使用连接到植物上的物联网传感器 [监测家里植物的健康状况][5]。该项目是使用你的笔记本电脑作为边缘设备设置的。当你的笔记本电脑合上或关闭时,它会在本地存储数据,然后在重新连接时将数据流传到我的云存储桶。 + +![图片展示了 Plant buddy 的工作方式][6] + +需要注意的一点是,在将数据存储到复制桶之前,这会对本地设备上的数据进行降采样。你的植物传感器每秒提供一个数据点。但它将数据压缩为一分钟的平均数,因此存储的数据更少了。在云账户中,你可以添加一些警报和通知,让你知道植物的水分何时低于某个水平,需要浇水。也可以在网站上使用视觉效果来告诉用户植物的健康状况。 + +数据库是许多应用程序的主干。在像 InfluxDB 的时间序列数据库平台中使用带有时间戳的数据可以节省开发人员的时间,并使他们能够访问各种工具和服务。InfluxDB 的维护者喜欢看到人们在我们的开源社区中构建什么,所以请与我们联系,并与其他人共享你的项目和代码! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/time-series-data-edge-open-source-tools + +作者:[Zoe Steinkamp][a] +选题:[lkxed][b] +译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) +校对:[wxy](https://github.com/wxy) + +本文由 [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 +[0]: https://img.linux.net.cn/data/attachment/album/202301/25/220620ftlnqfm4og7q2j0z.jpg \ No newline at end of file diff --git a/translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md deleted file mode 100644 index f7b5a5c4bb..0000000000 --- a/translated/tech/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md +++ /dev/null @@ -1,123 +0,0 @@ -[#]: 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: "ZhangZhanhaoxiang" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -使用时间序列数据使用开源工具助力您的边缘项目 -====== - -收集到的随时间变化的数据称为时间序列数据(time-series data)。今天,它已经成为每个行业和生态系统的一部分。它是不断增长的物联网行业的一大组成部分,将成为人们日常生活的重要部分。但时间序列数据及其要求很难处理。这是因为没有专门为处理时间序列数据而构建的工具。在这篇文章中,我将详细介绍这些问题,以及过去 10 年来 InfluxData 如何解决这些问题。 - -### InfluxData - -InfluxData 是一个开源的时间序列数据库平台。您可能通过 [InfluxDB][1] 了解该公司,但您可能不知道它专门从事时间序列数据库。这很重要,因为在管理时间序列数据时,您要处理两个问题:存储生命周期(storage lifecycle)和查询(queries)。 - -在存储生命周期中,开发人员通常首先收集和分析非常详细的数据。但开发人员希望存储较小的、降采样的数据集,以描述趋势,而不占用太多的存储空间。 - -查询数据库时,您不希望基于 ID 查询数据。您希望基于时间范围进行查询。使用时间序列数据最常见的一件事是在一段时间内对其进行总结。在使用行和列来描述不同数据点关系这样的典型关系数据库中存储数据时,这种查询速度较慢。设计用于处理时间序列数据的数据库可以更快地处理查询。InfluxDB 有自己的内置查询语言:Flux。这是专门为查询时间序列数据集而构建的。 - -![Telegraf 如何工作的图像][2] - -### 数据采集 - -数据采集和数据处理都有一些很棒的工具。InfluxData 有 12 个以上的客户端库,允许您使用自己选择的编程语言编写和查询数据。这是自定义用法的一个很好的工具。开源摄取代理 Telegraf 包括 300 多个输入和输出插件。如果您是一个开发者,您也可以贡献自己的插件。 - -InfluxDB 还可以接受上传小体积历史数据集的 CSV 文件,以及大数据集的批量导入。 - -``` -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 是我们的内部查询语言,从零开始建立来处理时间序列数据。它也是我们一些工具的基础动力,包括任务(tasks)、警报(alerts)和通知(notifications)。要从上面剖析 flux 查询(flux query),需要定义一些东西。首先,“桶(bucket)”就是我们所说的数据库。您可以配置存储桶,然后将数据流添加到其中。查询会调用 smartcity 存储桶,其范围为特定的一天(准确地说是 24 小时)。您可以从存储桶中获取所有数据,但大多数用户都包含一个数据范围。这是你能做的最基本的 flux 查询。 - -接下来,我添加过滤器,将数据过滤到更精确、更易于管理的地方。例如,我过滤分配给 id 为 3 的邻居中的自行车数量。从那里,我使用 aggregateWindow 获取每小时的平均值。这意味着我希望收到一个包含 24 列的表,每小时一列。我也对 id 为 4 的邻居进行同样的查询。最后,我将这两张表相叠加,得出这两个社区自行车使用量的差异。 - -如果你想知道什么时候是交通高峰,这是不错的选择。显然,这只是 flux 查询功能的一个小例子。但它提供了一个很好的例子,使用了 flux 附带的一些工具。我还有很多的数据分析和统计功能。但对于这一点,我建议查看 Flux 文档。 - -``` -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) - -InfluxDB 任务是一个定时 Flux 脚本,它接收输入数据流并以某种方式修改或分析它。然后,它将修改后的数据存储在新的存储桶中或执行其他操作。将较小的数据集存储到新的存储桶中,称为“降采样”,这是数据库的核心功能,也是时间序列数据生命周期的核心部分。 - -您可以在当前任务示例中看到,我已经对数据进行了降采样。我得到每 10 分钟增量的最后一个值,并将该值存储在降采样桶中。原始数据集在这 10 分钟内可能有数千个数据点,但现在降采样桶只有 60 个新值。需要注意的一点是,我还使用了范围内的最后一个成功的函数。这会告诉 InfluxDB 从上次成功运行时开始运行此任务,以防它在过去2小时内失败,在这种情况下,它可以返回到上次成功运行的 3 个小时。这对于内置错误处理非常有用。 - -![检查和警报通知系统的图像][3] - -### 检查(Checks)和警报(Alerts) - -InfluxDB 包含一个警报或检查和通知系统。这个系统非常简单直白。首先进行检查,定期查看数据以查找您定义的异常。通常,这是用阈值定义的。例如,任何低于 32°F 的温度值都被指定为“WARN”值,高于 32°F 都被分配为“OK”值,低于 0°F 都被赋予“CRITICAL”值。从那开始,您的检查可以按您认为必要的频率运行。您的检查以及每个支票的当前状态都有历史记录。当不需要通知时,您不会被要求设置它。您可以根据需要引用警报历史记录。 - -许多人选择设置通知。为此,您需要定义一个通知端点(notification endpoint)。例如,聊天应用程序可以进行 HTTP 调用以接收通知。然后您定义何时接收通知,例如,您可以每小时运行一次检查。您可以每 24 小时运行一次通知。您可以让通知响应值更改,例如,“WARN”更改为“CRITICAL”,或者当值为“CRITICAL”时,无论如何都从“OK”更改为“WARN”。这是一个高度可定制的系统。从这个系统创建的 Flux 代码也可以编辑。 - -![新 Edge 功能的图像][4] - -### 边缘(Edge) - -最后,我想把所有的核心功能放在一起,包括最近发布的一个非常特别的新功能。从边缘到云(Edge to cloud)是一个非常强大的工具,允许您运行开源 InfluxDB,并在出现连接问题时在本地存储数据。连接修复后,它会将数据流传输到 InfluxData 云平台。 - -这对于边缘设备和重要数据非常重要,因为任何数据丢失都是有害的。您定义要将一个存储桶复制到云,然后该存储桶有一个磁盘支持的队列来本地存储数据。然后定义云存储桶应该复制到的内容。数据存储在本地,直到连接到云。 - -### InfluxDB 和物联网边缘 - -假设你有一个项目,你想使用连接到植物上的物联网传感器[监测家里植物的健康状况][5]。该项目是使用您的笔记本电脑作为边缘设备设置的。当你的笔记本电脑合上或关闭时,它会在本地存储数据,然后在重新连接时将数据流传到我的云存储桶。 - -![图片展示了 Plant buddy 的工作方式][6] - -需要注意的一点是,在将数据存储到复制桶之前,这会对本地设备上的数据进行降采样。你的植物传感器每秒提供一个数据点。但它将数据压缩为平均一分钟,因此可以存储的数据更少。在云账户中,你可以添加一些警报和通知,让你知道植物的水分何时低于某个水平,需要浇水。也可以在网站上使用视觉效果来告诉用户植物的健康状况。 - -数据库是许多应用程序的主干。在像 InfluxDB 的时间序列数据库平台中使用带有时间戳的数据可以节省开发人员的时间,并使他们能够访问各种工具和服务。InfluxDB 的维护者喜欢看到人们在我们的开源社区中构建什么,所以请与我们联系,并与其他人共享您的项目和代码! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/time-series-data-edge-open-source-tools - -作者:[Zoe Steinkamp][a] -选题:[lkxed][b] -译者:[ZhangZhanhaoxiang](https://github.com/ZhangZhanhaoxiang) -校对:[校对者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 de0a90cae3c72162a8ab8f1ad97adc432ef7d3ca Mon Sep 17 00:00:00 2001 From: yzuowei Date: Thu, 26 Jan 2023 10:52:58 +0800 Subject: [PATCH 229/357] translating --- ...1.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md index f432506bf1..3a5c517c3a 100644 --- a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md +++ b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/code-review" [#]: author: "Martin Kopec https://opensource.com/users/martin-kopec" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8e78735a68d22c1afff5d7d0f5093b343dd463d1 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Thu, 26 Jan 2023 15:38:28 +0800 Subject: [PATCH 230/357] translating --- ...20220906 How to Analyse Sentiments Using Machine Learning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md b/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md index 1cac4f4b89..7f83a0b380 100644 --- a/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md +++ b/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/09/how-to-analyse-sentiments-using-machine-learning/" [#]: author: "Jishnu Saurav Mittapalli https://www.opensourceforu.com/author/jishnu-saurav-mittapalli/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 436f872c02401feb0df99300f2a4307667d65133 Mon Sep 17 00:00:00 2001 From: HancongZhang <35531128+onionstalgia@users.noreply.github.com> Date: Thu, 26 Jan 2023 20:49:10 +0800 Subject: [PATCH 231/357] translating --- ...110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md index 47d1016c92..d5232e9cf4 100644 --- a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md +++ b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/twitter-vs-mastodon" [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "onionstalgia" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e5c2807edfdc270e037080dc122845e5803ca21d Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 27 Jan 2023 10:07:47 +0800 Subject: [PATCH 232/357] translated --- ...️ 10 universal steps for open source code review.md | 115 +++++++++--------- 1 file changed, 59 insertions(+), 56 deletions(-) diff --git a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md index 3a5c517c3a..a7b84ce098 100644 --- a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md +++ b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md @@ -2,118 +2,120 @@ [#]: via: "https://opensource.com/article/22/10/code-review" [#]: author: "Martin Kopec https://opensource.com/users/martin-kopec" [#]: collector: "lkxed" -[#]: translator: "yzuowei" +[#]: translator: " " [#]: reviewer: " " [#]: publisher: " " [#]: url: " " -10 universal steps for open source code review +开源代码评审的十个通用步骤 ====== -Code review doesn't have to be scary when you follow this universal process. +只要你遵循这些通用流程,代码评审code review并不可怕。 -Have you ever found yourself in a situation where you needed to do a code review but didn't fully understand the project? Maybe you did not review it to avoid looking like you didn't know what you were doing. +你是否曾需要对代码进行评审,但你还没有完全理解整个项目?或许你避开去评审从而避免你看起来像是什么都不知道的洋相。 -This article assures you that there's a better way. You don't need to know everything to provide a code review. In fact, based on my experience, that's quite common. +本篇文章想要告诉你一个更好的方法。代码评审并不需要你知道所有事情。实际上,就我个人经验而言,这种情况非常普遍。 -I remember when I joined Red Hat as an intern and was asked to help with code reviews. We used a system of +1 or -1 votes, and I was initially very hesitant to weigh in. I found myself asking whether when I gave a +1 on a change but then someone else voted -1, would I look foolish? +我还记得在我刚加入红帽Red Hat做实习的时候,我被要求参与代码评审。我们当时采取的是 +1 或 -1 的投票系统,而我在一开始的时候常常踌躇该如何评审。我发现我总是问自己对于一处改动是否应该给予 +1 当别人已经投了 -1,我会看起来很蠢吗? -What does happen if someone votes -1 on a change you've vote +1? The answer is nothing! You might have missed a detail that the other person noticed. It's not the end of the world. That's why we have this voting system. Like the rest of open source, merging code is a collaborative effort. +如果你对一处改动投了 +1, 但是别人又投了 -1,这又意味着什么呢?这不意味任何事!你可能只是漏掉了一处细节而别人又恰好注意到了。这不意味着世界末日。这也是为什么我们会用投票系统。正如同所有开源项目一样,代码合并是一项协同工作。 -Lately, I've been so inundated with code reviews that I can hardly keep up with them. I also noticed that the number of contributors doing these reviews steadily decreased. +最近,我接到了太多的代码评审工作以至于我难以维持进度。我同时也注意到了参与评审的贡献者数量正在稳步减少。 -For this reason, I'm writing about my point of view on writing a code review. In this article, I'll share some helpful tips and tricks. I'll show you a few questions you should ask yourself and a few ideas of what to look for when doing a code review. +基于这个原因,我想要写一篇文章阐述我对代码评审的个人观点。在这篇文章里,我会分享一些诀窍与技巧。我会向你展示几个问题你可以用来自问自答,我也会为在评审代码时需要注意什么提供一些想法。 -### What is the purpose of a code review? +### 代码评审的目的是什么? -Have you ever written a really simple patch? Something you think is so trivial that it doesn't require a review? Maybe you merged it straight away. Later, it turns out there was a mistake, something obvious or silly, like the wrong indentation or a few duplicated lines of code instead of a function call (yes, I'm speaking from experience!). +你是否曾写过一个非常简单的补丁?补丁太过琐碎以至于你认为评审是多余的?或许你马上进行了合并。直到晚些时候,你意识到你犯了个错误,一个明显或是愚蠢的错误,或是错误缩进,或是几行重复的代码在本可以调用函数的地方(是的,这些都是经验之谈!)。 -A code review by someone else would have caught these things. +一段代码本可以交予他人评审并及时发现这些问题。 -The point of a code review is to bring a fresh pair of eyes with a new perspective on the problem you're trying to solve. That new context is exactly the reason a code review is crucial. +代码评审的一个目的便是为你在尝试解决的问题带来一双全新的视角。新开阔的视野也正是为什么代码评审至关重要。 -You may think that you must be an expert in the language to review someone else's code, the project, or both. Here's a secret all code reviewers want you to know: That's wrong! You don't need to fully understand the project or the language to provide a fresh perspective on a change. There's a universal process of code review. +你可能会认为评审别人的代码需要你是一名专家,或是编程语言专家,或是项目专家,或两者兼具。让我来告诉你一个所有代码评审者都想跟你说的秘密吧:大错特错!你并不需要完全理解项目或者编程语言来为改动提供全新视角。我将向你展示代码评审的通用流程。 -### The universal process of a code review +### 代码评审的通用流程 -Here's my process for code review, grouped into a couple of points. The process provides questions I ask myself to help me focus on a code change and its consequences. You don't need to go in this specific order. If there's a step, you can't execute for any reason, just move to another step. +这是我的代码评审流程被拆分成几个要点。这个流程包含了我会问我自己的一些问题,以帮助我专注于代码的变化以及其后果。你不需要严格依照顺序来进行评审。如果有任何原因导致你无法执行其中的某一步,跳过那一步就好。 -### 1. Understand the change, what it's trying to solve, and why +### 1. 理解改动,问改动想要解决的问题,以及为什么要解决这个问题 -The explanation of why the change is needed and any relevant context should be in the commit message. If it isn't, request it and feel free to -1 until it's provided. +为什么需要改动的解释以及任何相关背景都应该被放在提交commit信息里。如果没有,要求相关信息并请随意投 -1 直到相关信息被提供。 -Is it something that needs to be solved? Is it something the project should focus on, or is it completely out of scope? +改动想解决的问题需要被解决吗?它是项目应当聚焦的问题,还是与项目完全无关? -### 2. How would you implement the solution? Would it be different? +### 2. 你会如何实现解决方案?它会不一样吗? -At this point, you know what the code change is about. How would you have done it? Think about this before reviewing the change in detail. If the solution you have in mind is different from the one you're reviewing, and you think it's better, bring that up in the review. You don't need to -1 it; just ask why the author didn't go in this direction and see how the discussion evolves. +在这个时候,你应该已经知道代码改动是为了什么。换做是你会怎么做?在进一步对改动进行细节评审前思考这个问题。如果你想出了一个不一样的解法,并且你认为你的解法更好,在评审中提出来。你不需要投 -1;去问问作者为什么没有往那个方向走,看看这次讨论会把你们带向何方。 -### 3. Run the code with and without the change +### 3. 运行有改变和无改变的代码 -I usually put a few breakpoints into the code, run it, and inspect how the new code interacts with the rest. +我通常会在代码中设置几个断点,运行代码并检查新代码是如何与其余部分互动的。 -If you can't run the whole code, try to copy the function containing the new code to a new local file, simulate the input data, and run that. This is helpful when you either don't know how to run the whole project or when it requires a specific environment to which you don't have access. +如果你无法运行整个代码,试着将带有新代码的函数复制到一个新的本地文件,模拟输入数据,然后运行。这在你不知道怎么运行整个项目或者无法接触到运行所需的特殊环境时很有帮助。 -### 4. Can the new code break anything? +### 4. 新代码会破坏任何东西吗? -I mean, really anything. Think about the consequences. +我是说,任何东西。想一想可能的后果。 -In the case of a new command-line option, will it always be accepted by the target? +以一个新的命令行选项为例,它会总是被目标所接受吗? -Can a situation occur when the option wouldn't be accepted or when it could conflict with something? +是否存在这样一种情况使得新选项无法被接受或是会与其他东西起冲突? -Maybe it's a new import. Is the new library, and possibly a new dependency, available in the older releases or systems you ship the project for? +或许新代码是一个新的导入。那么这个新的库,很可能也是新的依赖,能够在老版本或者项目的运行系统中被找到吗? -What about security? Is the new dependency safe to use? The least you can do is run a quick Internet search to find out. Also, look for warnings in the console log. Sometimes there are more secure methods within the same library. +安全方面呢?新的依赖足够安全吗?你至少可以在网上快速地搜索一下。还有,注意一下控制台日志里的警告。有的时候在同样的库里也可以找到更安全的方法。 -### 5. Is the code effective? +### 5. 新代码是否有效? -You've determined that the proposed solution is probably correct. Now it's time to check the code itself, its effectiveness, and its necessity. +你刚刚确认了被提出的解决方案大概是正确的。现在该检查代码本身了。你需要关注代码的有效性和必要性。 -Check the style of the new code. Does it match the style of the project? Any open source project has (or should have) a document informing (new) contributors about the styles and good practices the project follows. +检查新代码的风格。它与项目的代码风格相匹配吗?任何开源项目都(应该)有一份文档告知(新)贡献者项目所遵循的风格和优秀实践。 -For instance, every project in the OpenStack community has a HACKING.rst file. There's often also [a guide for new contributors][1] with all the must-know information. +比如说,OpenStack 社区的所有项目都有一份 HACKING.rst 文件。你经常也能找到一份[新贡献者指南][1]包含所有必须知道的信息。 -### 6. Check that all new variables and imports are used +### 6. 确认所有新增的变量和导入都被使用 -Often, there have been many iterations of the code you're reviewing, and sometimes the final version is very different from when it started. It's easy to forget an import or a new variable that was needed in a former version of the new code. Automation usually checks these things using linting tools like [flake8][2] in the case of Python code. +你正在评审的代码常常已经过多次迭代,有的时候代码的最终版本与初始版已迥然不同。所以我们很容易忘记一些在历史版本中加入的变量与引用。自动化检测通常会用到 lint 工具,类似 Python 中的 [flake8][12]。 -Can you rewrite the code without declaring new variables? Well, usually, yes, but the question is whether it's better that way. Does it bring any benefit? The goal isn't to create as many one-liners as possible. The goal is to write code that is both efficient and easy to read. +(LCTT 译注:[lint][5] 指编程中用来发现代码潜在错误和约束代码风格的工具,起源于 C 语言编程中的静态分析工具 lint。lint 本意为衣服上积累的绒毛与灰尘,lint 的取名寓意则在于捕捉编程时产生的“绒毛与灰尘”) -### 7. Are the new functions or methods necessary? +你可以在不声明新变量的情况下重写代码吗?通常情况下你可以,但问题是这样是否更好。这会带来什么益处吗?我们的目标不是多写花式的一行代码,而是写出高效且易读的代码。 -Is there a similar function that can be reused somewhere in the project? It's always worth helping to avoid reinventing the wheel and re-implementing logic that's already been defined. +### 7. 新的函数和方法是否必要? -### 8. Are there unit tests? +项目里的别的地方是否存在可以被复用的功能类似的函数?确保避免重新发明轮子以及重新实现已经被定义的逻辑永远都是值得的。 -If the patch adds a new function or new logic in a function, it should also include new unit tests for that. It's always better when the author of a new function also writes unit tests for it. +### 8. 有单元测试吗? -### 9. Verify refactoring +如果补丁增加了新的函数或者在函数内添加了新的逻辑,它也应该附带对应的单元测试。新函数的作者总是比别人更适合写该函数的单元测试。 -If the commit refactors existing code (it renames a variable, changes variable scope, changes the footprint of a function by adding or removing arguments, or removes something), ask yourself: +### 9. 验证重构 -- Can this be removed? Will it affect the stable branch? -- Are all the occurrences deleted? +如果这次提交对现有代码进行了重构(它可能重命名了某个变量,或者是改变了的变量的作用域,或者是通过加减参数来改变函数的足迹,又或者是删去了某个东西),问一问你自己: -You can use the [grep command][3] to find out. You wouldn't believe how many times I've voted -1 just because of this. This is a simple mistake that anyone can make, but that also means anyone can uncover it. +- 这个可以被删除吗?它会影响到稳定分支吗? +- 所有出现的地方都删掉了吗? -The owner of the commit can easily overlook these things, which is totally understandable. It's happened to me many times too. I'd finally figured out the root of the problem I'd been fixing, so I was in a rush to propose the review, and then I forgot to check the whole repo. +你可以利用 [grep 命令][3]来查找。你不会相信有多少次我投 -1 就是因为这个。这是一个任何人都会犯的错误,也正因如此任何人都可以发现它。 -Apart from the project's repository, sometimes it's also necessary to check other code consumers. If some other project imports this one, they may need refactoring, too. In the OpenStack community, we have a tool that searches across every community project. +提交的所有者很容易忽略这些事情,这完全可以理解。我也犯过很多次这种错误。我最终发现问题的根源在于我太急于提出评审,以至于我忘记了对仓库进行整体检查。 -### 10. Does project documentation need to be modified? +除了对项目仓库的检查外,检查其他代码用户也十分必要。如果有别的项目导入了这个项目,它们可能也需要进行重构。在 OpenStack 社区中,我们有对应的工具来查询别的社区项目。 -Again, you can use the [grep command][4] to check whether the project documentation mentions anything related to the code change. Apply common sense to determine whether a change needs to be documented for end users or it's just an internal change that doesn't affect user experience. +### 10. 项目文档是否需要做出更改? -### Bonus tip: Be considerate +你可以再一次使用 [grep 命令][4]来检查在项目文档中是否提到了相关的代码改动。用常识来判断这次改动是否需要被收入文档以告知最终用户,还是只是一个不会影响用户体验的内部变化。 -Be considerate, precise, and descriptive if you make a suggestion or comment on something after you've reviewed the new code. Ask questions if you don't understand something. If you think the code is wrong, explain why you think so. Remember, the author can't fix it if they don't know what's broken. +### 额外提示:考虑周到 -### Final words +当你在评审完新代码后提出建议或评论时,要考虑周到,反馈准确,描述详尽。如果有你不理解的地方就发出提问。如果你认为代码存在错误,解释你的理由。记住,作者无法修复他不知道的漏洞。 -The only bad review is no review. By reviewing and voting, you provide your point of view and vote only for that. Nobody expects you to give the final yes or no (unless you're a core maintainer!), but the voting system allows you to provide your perspective and opinion. A patch owner will be glad you did it, trust me. +### 最后几句 -Can you think of any other steps for a good review? Do you have any special technique different from mine? Let us all know in the comments! +唯一的坏评审是没有评审。通过评审和投票,你提供了你的观点并为此发声。没有人指望你来做出最终决定(除非你是核心维护者),但是投票系统允许你提供你的观点和意见。相信我,补丁所有者会很高兴你这么做了的。 + +你能想到别的要点来给出好的评审吗?你是否有我不知道的特殊技巧?在评论中分享它们吧! -------------------------------------------------------------------------------- @@ -121,7 +123,7 @@ via: https://opensource.com/article/22/10/code-review 作者:[Martin Kopec][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[yzuowei](https://github.com/yzuowei) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -132,3 +134,4 @@ via: https://opensource.com/article/22/10/code-review [2]: https://opensource.com/article/19/5/python-flake8 [3]: https://opensource.com/downloads/grep-cheat-sheet [4]: https://www.redhat.com/sysadmin/how-to-use-grep +[5]: https://codedocs.org/what-is/lint-software From 8f0320d22af4b6f5b9ab5eb96659c7be1a1afa1d Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 27 Jan 2023 10:08:33 +0800 Subject: [PATCH 233/357] translated --- ...031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md (100%) diff --git a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md similarity index 100% rename from sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md rename to translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md From 14f055097cda93fb0cd26a868bc2696478f0b46d Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 27 Jan 2023 10:14:22 +0800 Subject: [PATCH 234/357] translated --- ...1.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md index a7b84ce098..26e1f558c7 100644 --- a/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md +++ b/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/10/code-review" [#]: author: "Martin Kopec https://opensource.com/users/martin-kopec" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 5fb87294cfa1a224a14c5f89852572d9a1d64d69 Mon Sep 17 00:00:00 2001 From: HancongZhang <35531128+onionstalgia@users.noreply.github.com> Date: Fri, 27 Jan 2023 11:39:38 +0800 Subject: [PATCH 235/357] translate finished --- ... 4 key differences between Twitter and Mastodon.md | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md index d5232e9cf4..a43b547a56 100644 --- a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md +++ b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md @@ -7,54 +7,54 @@ [#]: publisher: " " [#]: url: " " -4 key differences between Twitter and Mastodon +Twitter 和 Mastodon 的四个关键区别 ====== -Mastodon is not a corporation. All of its instances are staffed and supported by each server's contributors. Here are a few other advantages. +Mastodon并不是一家公司。所有 Mastodon 实例都由各自所属服务器的贡献者负责支持维护的。以下是它其他的一些优势。 -Social media is not always sociable, and sometimes we need a sufficient impetus to change what we do and what we read. I began using Twitter as a replacement for my RSS reader in 2008, which revolutionized how I read and learned up to that point. Tweets from educators and free and open source (FOSS) advocates worldwide kept me informed and engaged in a learning network that was without equal. That's changed over the past half dozen years, and recently a change in ownership and the shaping of what I read was driven more by an algorithm than by my personal interests and choices. During a yearly meetup of correspondents and editors of Opensource.com a few years ago, [Seth Kenlon][1] suggested giving [Mastodon][2] a try. I joined [Fosstodon][3] in 2019. Fosstodon is a Mastodon instance for a community of like-minded people who enjoy free and open source software. +社交媒体并不总是社交性的,有时我们还需要足够的推动力来改变我们工作和阅读的内容。我在 2008 年开始使用 Twitter 作为 RSS 阅读器的替代品,这彻底颠覆了我那时的阅读和学习方式。世界各地的教育家和自由与开放源码(FOSS)倡导者的推文让我了解并参与到一个无与伦比的学习网络中。但这在过去的六年间,事情发生了变化,最近主导和型塑我阅读内容的更多的是由算法驱动的,而不是出于我个人的兴趣和选择。在几年前的 Opensource.com 记者编辑碰头会中,[Seth Kenlon][1] 建议我试试 [Mastodon][2]。于是我在 2019 年加入了 [Fosstodon][3]。Fosstodon 是一个专为喜欢自由和开源软件的同好们搭建的实例。 -### Mastodon vs Twitter +### Mastodon 与 Twitter 对比 -Change is not easy. Being a creature of habit, I stayed with my old standby even though it was becoming increasingly tiresome. The threat of its sale in the spring of 2022 invited me to reconsider Fosstodon. +作为一个墨守成规的人,改变对我来说并不容易,尽管 Twitter 变得越来越让人厌倦,我还一直在使用。可是到了 2022 年的春天,Twitter 的出售危机让我重新考虑使用 Fosstodon了。 -### 1. Favorite instead of like +### 1. 收藏而不是点赞 -The Mastodon interface is similar to Twitter. Rather than "liking" a post, you "favorite" a post on Mastodon by clicking the star icon under the post content. +Mastodon 的界面与 Twitter 很相似。但在 Mastodon上,你不是「点赞」一个帖子,而是通过点击帖子下方的星标来「收藏」一个帖子。 ![Favorite button][4] -### 2. Share a post +### 2. 分享帖子 -Re-sharing on my old network is a "retweet," but on Mastodon, it's a "boost." You click the double-arrow icon under the post content to boost a post. +在 Twitter 上,重新分享是「转推」(retweet),但在Mastodon,它是「转嘟」(boost)。你可以点击帖子下方的双箭头图标来转嘟。 ![Boost button][5] -### 3. Mastodon instances +### 3. Mastodon 实例 -Because anyone can run a Mastodon instance, different instances not only have unique communities (like the ones that form around specific hashtags on Twitter, but Mastodon also has hashtags). Some have a unique set of rules. For instance, unlike my former social network, there were content moderation rules on Fosstodon that seemed strict initially. I made a post unrelated to FOSS software, and my post was removed. I was told it had been removed because I'd not issued a "content warning." That irked me, so I looked for another instance and found a couple more to my liking. One was [Mastodon.social][6], and the other [Scholar.social][7]. The former is a general server with no expectation about what you will post. The latter was an instance dedicated to academics. In all cases, there are well-enforced codes of conduct. +任何人都可以运行一个 Mastodon 实例,这让不同的实例上发展出了独特的社区(类似在 Twitter 上围绕特定标签形成的社区,不过 Mastodon 也有标签),有些实例有一套独特的规则。举个例子,和我以前的社交网络不同,Fosstodon 上采取了内容审核制度。最初这让我觉得有些严格,我发了一个与自由与开放源码软件无关的帖子,然后帖子就被删除了。我被告知的删除原因是,我没有给帖子打上 "内容警告"。这惹怒了我,于是我尝试寻找别的实例,发现了几个更符合我胃口的。其中一个是 [Mastodon.social][6],另一个是 [Scholar.social][7],前者是一个泛用的实例,没有预设的发帖主题,后者则是一个学术专用的实例。当然,他们也都制定有严格的行为规范。 -Each instance has rules, and while they differ slightly in the description, they clearly spell out what is and is not acceptable behavior. Fosstodon published its [code of conduct][8], which established the rules and expectations of behavior on the site. +每个实例都有规则,虽然在表述上略有不同,但都清楚地说明了可以接受和不可接受的行为。Fosstodon 公布了它的 [行为规范][8],确立了站点的规则和预期。 -### 4. Open source social networking +### 4. 开源社交网络 -If you want to run your own Mastodon instance or help develop one, you'll be happy to know that Mastodon is open source. It uses an AGPLv3 license, and its source code is available as a [Git repository][9]. The software provides a social network server that uses the [ActivityPub][10] protocol to communicate with other servers worldwide. +如果你也想运行自己的 Mastodon 实例或协助开发一个,好消息是,Mastodon 是开源的。它使用 AGPLv3 许可证,它的源代码可以在 [Git仓库][9] 获得。Mastodon 支持使用 [ActivityPub][10] 协议在世界各地的服务器间通信。 -Mastodon is not a single site on the internet but a series of sites spanning the globe and communicating with each other. This federated network is referred to as the "fediverse." Unlike other social networks, where there's a single owner of the network, Mastodon and other ActivityPub sites are owned by anyone who runs a server. +Mastodon 不是互联网上的单一的网站,而是一系列横跨全球并相互通信的网站们。这个联邦网络被称为 「联邦宇宙」(Fediverse)。不像其他社交网站有单一的所有者,任何人都可以在服务器上运行Mastodon 或者其他 ActivityPub 协议网站。 -From a user's perspective, this doesn't matter at first. You can sign up on any Mastodon instance and then connect to all other instances. +从用户的角度来看,这一开始时其实并不重要。你可以在任何 Mastodon 实例上注册,然后连接到其余所有的实例。 -There is power to this distributed design, though. If you encounter an instance with a community producing content you'd rather not see, you can block either a single user from that instance or the whole instance. +不过,这种分布式设计是有其好处的。如果你碰见一个实例上的社区内容你不想看,你可以从屏蔽该实例中的某个用户或者整个实例。 -In the past month, I've returned to Fosstodon primarily because open source is my passion. I enjoy sharing open source content on Fosstodon because the other users of Fosstodon are generally receptive to posts about free and open source software. When I have something to share that's not considered appropriate on Fosstodon, I share it on Scholar.social or Mastodon.social. +过去的一个月里,我又回到了 Fosstodon,主要还是因为我热衷开源。我很享受在 Fosstodon 上分享开源内容,而Fosstodon 上的其他用户也都能接受关于自由和开源软件的帖子。当我有一些不适合在 Fosstodon 上分享的内容时,我会在 Scholar.social 或者 Mastodon.social 上分享。 -Not all instances have topics they focus on, and even those that do often use their topical interests as a guideline rather than grounds for strict removal of posts. If you have a particular interest, you might be able to find a community built around that topic, and you're likely to see that you have an instant audience. Of course, you'll still always be able to communicate with users of other instances, too. +不是所有的实例都有关注的话题,即便是那些有主题的实例,主题常常也是仅作参考,而不是严格作为删帖的依据。如果你有特定的兴趣,也许就能找到一个围绕这个话题建立的社区,然后马上就能收获及时的关注。当然,你也依然能够与其他实例的用户交流。 -### Try Mastodon +### 试试 Mastodon -Mastodon is not a corporation. All of its instances are staffed and supported by each server's contributors. Some instances make it easy to support them with Patreon or PayPal. +Mastodon 不是一家公司,所有 Mastodon 实例都是由各自所属的服务器的贡献者负责支持维护的。有些能很容易地通过 Patreon 或 PayPal 提供支持。 -I have found the fediverse a welcoming place that brings joy back into social networking. Have you joined Mastodon? What are your takeaways? Let us know in the comments. +我发现,联邦宇宙是个很温馨的地方,把快乐带回给了社交网络。你加入了 Mastodon 了吗?有没有什么收获?请在评论中告诉我们。 -------------------------------------------------------------------------------- @@ -62,7 +62,7 @@ via: https://opensource.com/article/22/11/twitter-vs-mastodon 作者:[Don Watkins][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[onionstalgia](https://github.com/onionstalgia) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1d193b4d476fdbdffb6bb5118f714987997ce76b Mon Sep 17 00:00:00 2001 From: onionstalgia Date: Fri, 27 Jan 2023 11:51:09 +0800 Subject: [PATCH 236/357] translated --- ...21110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md (100%) diff --git a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md similarity index 100% rename from sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md rename to translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md From ab91545ea024fd65f1d434e2e5433266c570bbc5 Mon Sep 17 00:00:00 2001 From: HancongZhang <35531128+onionstalgia@users.noreply.github.com> Date: Fri, 27 Jan 2023 12:14:04 +0800 Subject: [PATCH 237/357] translated --- ...️⭐️ 4 key differences between Twitter and Mastodon.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md index a43b547a56..6b354b93fb 100644 --- a/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md +++ b/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md @@ -12,7 +12,7 @@ Twitter 和 Mastodon 的四个关键区别 Mastodon并不是一家公司。所有 Mastodon 实例都由各自所属服务器的贡献者负责支持维护的。以下是它其他的一些优势。 -社交媒体并不总是社交性的,有时我们还需要足够的推动力来改变我们工作和阅读的内容。我在 2008 年开始使用 Twitter 作为 RSS 阅读器的替代品,这彻底颠覆了我那时的阅读和学习方式。世界各地的教育家和自由与开放源码(FOSS)倡导者的推文让我了解并参与到一个无与伦比的学习网络中。但这在过去的六年间,事情发生了变化,最近主导和型塑我阅读内容的更多的是由算法驱动的,而不是出于我个人的兴趣和选择。在几年前的 Opensource.com 记者编辑碰头会中,[Seth Kenlon][1] 建议我试试 [Mastodon][2]。于是我在 2019 年加入了 [Fosstodon][3]。Fosstodon 是一个专为喜欢自由和开源软件的同好们搭建的实例。 +社交媒体并不总是社交性的,有时我们还需要足够的推动力来改变我们工作和阅读的内容。我在 2008 年开始使用 Twitter 作为 RSS 阅读器的替代品,这彻底颠覆了我那时的阅读和学习方式。世界各地的教育家和自由与开放源码(FOSS)倡导者的推文让我了解并参与到一个无与伦比的学习网络中。但这在过去的六年间,事情发生了变化,最近主导和形塑我阅读内容更多是由算法驱动的,而不是出于我个人的兴趣和选择。在几年前的 Opensource.com 记者编辑碰头会中,[Seth Kenlon][1] 建议我试试 [Mastodon][2]。于是我在 2019 年加入了 [Fosstodon][3]。Fosstodon 是一个专为喜欢自由和开源软件的同好们搭建的实例。 ### Mastodon 与 Twitter 对比 @@ -38,17 +38,17 @@ Mastodon 的界面与 Twitter 很相似。但在 Mastodon上,你不是「点 ### 4. 开源社交网络 -如果你也想运行自己的 Mastodon 实例或协助开发一个,好消息是,Mastodon 是开源的。它使用 AGPLv3 许可证,它的源代码可以在 [Git仓库][9] 获得。Mastodon 支持使用 [ActivityPub][10] 协议在世界各地的服务器间通信。 +如果你也想运行自己的 Mastodon 实例或协助开发一个,好消息是,Mastodon 是开源的。它使用 AGPLv3 许可证,它的源代码可以在 [Git仓库][9] 获得。Mastodon 支持与使用 [ActivityPub][10] 协议的世界各地的服务器间通信。 Mastodon 不是互联网上的单一的网站,而是一系列横跨全球并相互通信的网站们。这个联邦网络被称为 「联邦宇宙」(Fediverse)。不像其他社交网站有单一的所有者,任何人都可以在服务器上运行Mastodon 或者其他 ActivityPub 协议网站。 从用户的角度来看,这一开始时其实并不重要。你可以在任何 Mastodon 实例上注册,然后连接到其余所有的实例。 -不过,这种分布式设计是有其好处的。如果你碰见一个实例上的社区内容你不想看,你可以从屏蔽该实例中的某个用户或者整个实例。 +不过,这种分布式设计是有其好处的。如果你碰见一个实例上的社区内容你不想看,你可以从屏蔽该实例中的某个用户,或者屏蔽整个实例。 -过去的一个月里,我又回到了 Fosstodon,主要还是因为我热衷开源。我很享受在 Fosstodon 上分享开源内容,而Fosstodon 上的其他用户也都能接受关于自由和开源软件的帖子。当我有一些不适合在 Fosstodon 上分享的内容时,我会在 Scholar.social 或者 Mastodon.social 上分享。 +过去的一个月里,我又回到了 Fosstodon,主要还是因为我热衷开源。我很享受在 Fosstodon 上分享开源内容,而Fosstodon 上的其他用户也都能乐于看到关于自由和开源软件的帖子。当我有一些内容不适合在 Fosstodon 上分享时,我会分享到 Scholar.social 或者 Mastodon.social 上。 -不是所有的实例都有关注的话题,即便是那些有主题的实例,主题常常也是仅作参考,而不是严格作为删帖的依据。如果你有特定的兴趣,也许就能找到一个围绕这个话题建立的社区,然后马上就能收获及时的关注。当然,你也依然能够与其他实例的用户交流。 +不是所有的实例都有关注的主题,即便是那些有主题的实例,主题常常也是仅作参考,而不是严格作为删帖的依据。如果你有特定的兴趣,也许就能找到一个围绕这个话题建立的社区,然后马上就能收获及时的关注。当然,你也依然能够与其他实例的用户交流。 ### 试试 Mastodon From e139439687cedd7b5e3f1c8c1977a9d266969a8f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 27 Jan 2023 12:38:04 +0800 Subject: [PATCH 238/357] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @yzuowei 我修改了 Unicode 的字符名的 Ruby 标签使用方式,原因如下: - 这个大写的字符名是正式名称,所以可以直接使用 - 名称太长,RUBY 标签在排版时,尤其是在微信的手机屏幕上会换行,比较难看 这篇翻译的非常尽心,非常好,👍 --- ...⭐️ Battle of the Texts and the Unicode Savior.md | 121 +++++++++--------- 1 file changed, 62 insertions(+), 59 deletions(-) diff --git a/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md index a3229479d0..67f6348ecc 100644 --- a/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md +++ b/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md @@ -3,16 +3,18 @@ [#]: author: "Sylvain Leroux https://www.yesik.it/" [#]: collector: "lkxed" [#]: translator: "yzuowei" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 文字间的战斗与其救世主 Unicode ====== +![][0] + 我们都知道如何从键盘输入文字,不是吗? -那么,允许我挑战你在你最爱的文本编辑器中输入这段文字: +那么,请允许我挑战你在你最爱的文本编辑器中输入这段文字: ![«Ayumi moved to Tokyo in 1993 to pursue her career» said Dmitrii][1] @@ -20,7 +22,7 @@ - 键盘上没有的印刷符号, - 平假名日文字符, -- 为符合平文式罗马字标准,日本首都的名字中的头顶长音符号两个字母 "o", +- 为符合平文式罗马字标准,日本首都的名字中的两个字母 “o” 头顶带有长音符号, - 以及最后,用西里尔字母拼写的名字德米特里。 毫无疑问,想要在早期的电脑中输入这样的句子是不可能的。这是因为早期电脑所使用的字符集有限,无法兼容多种书写系统。而如今类似的限制已不复存在,马上我们就能在文中看到。 @@ -41,7 +43,7 @@ 对于 128 之前的数字,两张表格是一样的。这个范围与 [US-ASCII][7] 相对应,这是不同字符表格之间的最低兼容性。而对于 128 之后的数字,这两张表格则完全不同了。 -比如,依据 Windows-1251,字符串 _“said Дмитрий”_ 会被储存为: +比如,依据 Windows-1251,字符串 “said Дмитрий” 会被储存为: ``` 115 97 105 100 32 196 236 232 242 240 232 233 @@ -59,13 +61,13 @@ said Äìèòðèé ``` -这份文件_看起来_被损坏了,实则不然。这些储存在文件里的数据,即数字,并没有发生改变。被显示出的字符与_另一张表格_中的数据相对应,而非文字最初被写出来时所用的编码表。 +这份文件 _看起来_ 被损坏了,实则不然。这些储存在文件里的数据,即数字,并没有发生改变。被显示出的字符与 _另一张表格_ 中的数据相对应,而非文字最初被写出来时所用的编码表。 -让我们来举一个例子,就以字符 Д 为例。按照 Windows-1251,Д 的数字编码为 196 (c4)。储存在文件里的只有数字 196。而正是这同样的数字在 ISO8859-15 中与 Ä 相对应。这就是为什么我的电脑错误地认为字形 Ä 就是应该被显示的字形。 +让我们来举一个例子,就以字符 “Д” 为例。按照 Windows-1251,“Д” 的数字编码为 196(c4)。储存在文件里的只有数字 196。而正是这同样的数字在 ISO8859-15 中与 “Ä” 相对应。这就是为什么我的电脑错误地认为字形 “Ä” 就是应该被显示的字形。 ![When the same text file is written then read again but using a different encoding][8] -多提一句,你依然可以时不时地看到一些错误配置的网站展示,或由[用户邮箱代理][9]发出的对收件人电脑所使用的字符编码做出错误假设的邮件。这样的故障有时被称为乱码(LCTT译注:原文用词为 [mojibake][10], 源自日语 _文字化け_)。好在这种情况在今天已经越来越少见了。 +多提一句,你依然可以时不时地看到一些错误配置的网站展示,或由 [用户邮箱代理][9] 发出的对收件人电脑所使用的字符编码做出错误假设的邮件。这样的故障有时被称为乱码(LCTT 译注:原文用词为 [mojibake][10], 源自日语 _文字化け_)。好在这种情况在今天已经越来越少见了。 ![Example of Mojibake on the website of a French movie distributor. The website name has been changed to preserve the innocent.][11] @@ -75,19 +77,19 @@ said Äìèòðèé 也不知道是不是巧合,[Unicode][12] 项目始于 1987 年,主导者来自施乐Xerox和……苹果Apple 。 -这个项目的目标是定义一套通用字符集来允许同一段文字中_同时_出现人类书写会用到的任何文字。最初的 Unicode 项目被限制在 65536 个不同字符(每个字符用 16 位表示,即每个字符两字节)。这个数字已被证实是远远不够的。 +这个项目的目标是定义一套通用字符集来允许同一段文字中 _同时_ 出现人类书写会用到的任何文字。最初的 Unicode 项目被限制在 65536 个不同字符(每个字符用 16 位表示,即每个字符两字节)。这个数字已被证实是远远不够的。 -于是,在 1996 年 Unicode 被扩展以支持高达 100 万不同的[代码点][13]。粗略来说,一个“代码点”可被用来识别字符表中的一个条目。Unicode 项目的一个核心工作就是将世界上正在被使用(或曾被使用)的字母,符号,标点符号以及其他文字仓管起来,并给每一项条目分配一个代码点用以准确分辨对应的字符。 +于是,在 1996 年 Unicode 被扩展以支持高达 100 万不同的 [代码点][13]code point。粗略来说,一个“代码点”可被用来识别字符表中的一个条目。Unicode 项目的一个核心工作就是将世界上正在被使用(或曾被使用)的字母、符号、标点符号以及其他文字仓管起来,并给每一项条目分配一个代码点用以准确分辨对应的字符。 -这是一个庞大的项目:让你有个大致了解,发布于 2017 年的 Unicode 版本 10 定义了超过 136,000 个字符覆盖了 139 种现代和历史上的语言文字。 +这是一个庞大的项目:为了让你有个大致了解,发布于 2017 年的 Unicode 版本 10 定义了超过 136,000 个字符,覆盖了 139 种现代和历史上的语言文字。 随着如此庞大数量的可能性,一个基本的编码会需要每个字符 32 位(即 4 字节)。但对于主要使用 US-ASCII 范围内字符的文字,每个字符 4 字节意味着 4 倍多的储存需求以及 4 倍多的带宽用以传输这些文字。 ![Encoding text as UTF-32 requires 4 bytes per character][14] -所以除了 [UTF-32][15],Unicode 联盟还定义了更加节约空间的 [UTF-16][16] 和 [UTF-8][17] 编码,分别使用了 16 位和 8 位。但只有 8 位该如何储存超过 100,000 个不同的值呢?事实是,你不能。但这其中窍门在于用一个代码值(UTF-8 中的 8 位数以及 UTF-16 中的 16 位数)来储存最常用的一些字符。再用几个代码值储存最不常用的一些字符。所以说 UTF-8 和 UTF-16 是_可变长度_编码。尽管这样也有缺陷,UTF-8 是空间与时间效率之间一个不赖的妥协。更不用提 UTF-8 可以向后兼容大部分 Unicode 之前的 1 字节编码,因为 UTF-8 被特别设计成任何有效的 US-ASCII 文件就是有效的 UTF-8 文件。你也可以说,UTF-8 是 US-ASCII 的超集。而在今天已经找不到不用 UTF-8 编码的理由了。当然除非你书写主要用的语言需要多字节编码,或是你不得不与一些保留系统打交道。 +所以除了 [UTF-32][15],Unicode 联盟还定义了更加节约空间的 [UTF-16][16] 和 [UTF-8][17] 编码,分别使用了 16 位和 8 位。但只有 8 位该如何储存超过 100,000 个不同的值呢?事实是,你不能。但这其中窍门在于用一个代码值(UTF-8 中的 8 位以及 UTF-16 中的 16 位)来储存最常用的一些字符。再用几个代码值储存最不常用的一些字符。所以说 UTF-8 和 UTF-16 是 _可变长度_ 编码。尽管这样也有缺陷,但 UTF-8 是空间与时间效率之间一个不错的折中。更不用提 UTF-8 可以向后兼容大部分 Unicode 之前的 1 字节编码,因为 UTF-8 经过了特别设计,任何有效的 US-ASCII 文件都是有效的 UTF-8 文件。你也可以说,UTF-8 是 US-ASCII 的超集。而在今天已经找不到不用 UTF-8 编码的理由了。当然除非你书写主要用的语言需要多字节编码,或是你不得不与一些残留的老旧系统打交道。 -我让你来亲自比较一下同一字符串在下面两张图案中分别使用 UTF-16 和 UTF-8 编码。特别注意 UTF-8 使用了一字节来储存拉丁字母表中的字符,但它使用了两字节来存储西里尔字母表中的字符。这是 Windows-1251 西里尔编码储存同样字符所需空间的两倍。 +在下面两张图中,你可以亲自比较一下同一字符串的 UTF-16 和 UTF-8 编码。特别注意 UTF-8 使用了一字节来储存拉丁字母表中的字符,但它使用了两字节来存储西里尔字母表中的字符。这是 Windows-1251 西里尔编码储存同样字符所需空间的两倍。 ![UTF-16 is a variable length encoding requiring 2 bytes to encode most characters. Some character still requires 4 bytes though (for example][18] @@ -95,41 +97,41 @@ said Äìèòðèé ### 而这些对于打字有什么用呢? -啊……知道一些你的电脑的能力与局限以及其底层机制也无伤大雅嘛。特别是我们马上就要说到 Unicode 和十六进制。现在嘛……我们再在聊点历史。真的就一点,我保证…… +啊……知道一些你的电脑的能力与局限以及其底层机制也不是什么坏事嘛。特别是我们马上就要说到 Unicode 和十六进制。现在……让我们再聊点历史。真的就一点,我保证…… -……就说从 80 年代起,电脑键盘曾经有过 [compose 键][20](有时候也被标为 "multi" 键)就在 shift 键的下边。当按下这个键时,你会进入“组合compose”模式。一旦在这个模式下,你便可以通过输入助记符来输入你键盘上没有的字符。比如说,在组合模式下,输入 RO 便可生成字符 ®(当作是 O 里面有一个 R 就能很容易记住)。 +……就说从 80 年代起,电脑键盘曾经有过 [`Compose` 键][20](有时候也被标为 `Multi` 键)就在 `Shift` 键的下边。当按下这个键时,你会进入 “组合Compose” 模式。一旦在这个模式下,你便可以通过输入助记符来输入你键盘上没有的字符。比如说,在组合模式下,输入 RO 便可生成字符 ®(当作是 O 里面有一个 R 就能很容易记住)。 -![compose key on lk201 keyboard][21] +![Compose key on lk201 keyboard][21] -现在很难在现代键盘上看到 compose 键了。这大概是因为占据主导地位的 PC 不再用它了。但是在 Linux 上(可能还有其他系统)你可以模拟 compose 键。这项设置可以通过 GUI 开启,在大多数桌面环境下调用“键盘”控制面板:但具体的步骤取决于你的桌面环境以及版本。如果你成功启用了那项设置,不要犹豫在评论区分享你在你电脑上所采取的具体步骤。 +现在很难在现代键盘上看到 `Compose` 键了。这大概是因为占据主导地位的 PC 不再用它了。但是在 Linux 上(可能还有其他系统)你可以模拟 `Compose` 键。这项设置可以通过 GUI 开启,在大多数桌面环境下调用“键盘”控制面板:但具体的步骤取决于你的桌面环境以及版本。如果你成功启用了那项设置,不要犹豫,在评论区分享你在你电脑上所采取的具体步骤。 -(LCTT 译注:如果有读者想要尝试,建议将 compose 键设为大写锁定键,或是别的不常用的键,Ctrl 和 Alt 会被大部分 GUI 程序优先识别为功能键。还有一些我自己试验时遇到过的问题,在开启 compose 键前要确认大写锁定是关闭的,输入法要切换成英文,组合模式下输入大小写敏感。我试验的系统是 Ubuntu 22.04 LTS。) +(LCTT 译注:如果有读者想要尝试,建议将 `Compose` 键设为大写锁定键,或是别的不常用的键,`Ctrl` 和 `Alt` 会被大部分 GUI 程序优先识别为功能键。还有一些我自己试验时遇到过的问题,在开启 `Compose` 键前要确认大写锁定是关闭的,输入法要切换成英文,组合模式下输入大小写敏感。我试验的系统是 Ubuntu 22.04 LTS。) -至于我自己嘛,我现在先假设你用的就是默认的 Shift+AltGr 组合来模拟 compose 键。 +至于我自己嘛,我现在先假设你用的就是默认的 `Shift+AltGr` 组合来模拟 `Compose` 键。(LCTT 校注:`AltGr` 在欧洲键盘上是指右侧的 `Alt` 键,在国际键盘上等价于 `Ctrl+Alt` 组合键。) -那么,作为一个实际例子,尝试输入 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK指左双角引号?(LCTT译注:Guillemet,是法语和一些欧洲语言中的引号,与中文的书名号不同),你可以输入 Shift+AltGr<<(你在敲助记符时不需要一直按着 Shift+AltGr)。如果你成功输入了这个符号,你自己应该也能猜到要怎么输入 _RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK指右双角引号_ 了。 +那么,作为一个实际例子,尝试输入 “LEFT-POINTING DOUBLE ANGLE QUOTATION MARK(左双角引号)”(LCTT 译注:Guillemet,是法语和一些欧洲语言中的引号,与中文的书名号不同),你可以输入 `Shift+AltGr` `<<`(你在敲助记符时不需要一直按着 `Shift+AltGr`)。如果你成功输入了这个符号,你自己应该也能猜到要怎么输入 “RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK(右双角引号)” 了。 -来看看另一个例子,试试 Shift+AltGr--- 来生成一个 EM DASH长破折号(LLCT 译注:中文输入法的长破折号由两个 EM DASH 组成)。要做到这个,你需要按下主键盘上的的[连字符减号][22]键而非数字键盘上的那个。 +来看看另一个例子,试试 `Shift+AltGr` `---` 来生成一个 “EM DASH(长破折号)”(LCTT 译注:中文输入法的长破折号由两个 “EM DASH” 组成)。要做到这个,你需要按下主键盘上的的 [连字符减号][22] 键而非数字键盘上的那个。 -值得注意的是 "compose" 键在非 GUI 环境下也能工作。但是取决于你使用的是 X11 控制台还是只显示文字的控制台,它们所支持的 compose 按键顺序并不相同。 +值得注意的是 `Compose` 键在非 GUI 环境下也能工作。但是取决于你使用的是 X11 控制台还是只显示文字的控制台,它们所支持的组合按键顺序并不相同。 -在控制台上,你可以通过命令 `dumpkeys` 来查看支持的 compose 按键列表(LCTT 译注:可能需要 root 权限): +在控制台上,你可以通过命令 `dumpkeys` 来查看支持的组合按键列表(LCTT 译注:可能需要 root 权限): ``` dumpkeys --compose-only ``` -在 GUI 下,compose 键是在 Gtk/X11 层被实现的。想要知道 Gtk 所支持的助记符,可以查看页面:[https://help.ubuntu.com/community/GtkComposeTable][23] +在 GUI 下,组合键是在 Gtk/X11 层被实现的。想要知道 Gtk 所支持的助记符,可以查看页面:[https://help.ubuntu.com/community/GtkComposeTable][23] ### 我们可以避免对 Gtk 字符组合的依赖吗? -或许我是个纯粹主义者,但是我为 Gtk 这种对 compose 键进行硬编码的方式感到悲哀。毕竟,不是所有 GUI 应用都会使用 Gtk 库。而且我如果想要添加我自己的助记符的话就只能重新编译 Gtk 了。 +或许我是个纯粹主义者,但是我为 Gtk 这种对 Compose 键进行硬编码的方式感到悲哀。毕竟,不是所有 GUI 应用都会使用 Gtk 库。而且我如果想要添加我自己的助记符的话就只能重新编译 Gtk 了。 -幸好在 X11 层也有对字符组合的支持。在以前则是通过令人尊敬的 [X 输入法 (XIM)][24]。 +幸好在 X11 层也有对字符组合的支持。在以前则是通过令人尊敬的 [X 输入法(XIM)][24]。 这个方法在比起基于 Gtk 的字符组合能够在更加底层的地方工作,同时具备优秀的灵活性并兼容很多 X11 应用。 -比如说,假设我只是想要添加 --> 组合来输入字符 → (U+2192 RIGHTWARDS ARROW朝右箭头),我只需要新建 `~/.XCompose` 文件并写入以下代码: +比如说,假设我只是想要添加 `-->` 组合来输入字符 `→` (U+2192,RIGHTWARDS ARROW(朝右箭头)),我只需要新建 `~/.XCompose` 文件并写入以下代码: ``` cat > ~/.XCompose << EOT @@ -149,64 +151,64 @@ GTK_IM_MODULE="xim" QT_IM_MODULE="xim" xterm 新的组合排序应该可以在你刚启动的应用里被输入了。我鼓励你通过 `man 5 compose` 来进一步学习组合文件格式。 -在你的 `~/.profile` 中加入以下两行来将 XIM 设为你所有应用的默认输入法。这些改动会在下一次你登陆电脑时生效: +在你的 `~/.profile` 中加入以下两行来将 XIM 设为你所有应用的默认输入法。这些改动会在下一次你登录电脑时生效: ``` export GTK_IM_MODULE="xim" export QT_IM_MODULE="xim" ``` -这挺酷的,不是吗?这样你就可以随意的加入你想要的组合排序。而且在默认的 XIM 设置中已经有几个有意思的了。试一下输入 composeLLAP。 +这挺酷的,不是吗?这样你就可以随意的加入你想要的组合排序。而且在默认的 XIM 设置中已经有几个有意思的组合了。试一下输入组合键 `LLAP`。 -但我不得不提到两个缺陷。XIM 已经比较老了而且只适合我们这些不太需要多字节输入法的人。其次,当你用 XIM 作为输入法的时候,你就不能利用 Ctrl+Shift+u 加上代码点来输入 Unicode 字符了。什么?等一下?我还没聊过那个?让我们现在来聊一下吧: +但我不得不提到两个缺陷。XIM 已经比较老了,而且只适合我们这些不太需要多字节输入法的人。其次,当你用 XIM 作为输入法的时候,你就不能利用 `Ctrl+Shift+u` 加上代码点来输入 Unicode 字符了。什么?等一下?我还没聊过那个?让我们现在来聊一下吧: -### 如果我需要的字符没有对应的 compose 键排序该怎么办? +### 如果我需要的字符没有对应的组合键排序该怎么办? -Compose 键是一个不错的工具,它可以用来输入一些键盘上没有的字符。但默认的组合集有限,而切换 XIM 并为一个你一生仅用一次的字符来定义一个新的组合排序十分麻烦。 +组合键是一个不错的工具,它可以用来输入一些键盘上没有的字符。但默认的组合集有限,而切换 XIM 并为一个你一生仅用一次的字符来定义一个新的组合排序十分麻烦。 -但这能阻止你在同一段文字里混用日语,拉丁语,还有西里尔字符吗?显然不能,这多亏了 Unicode。比如说,名字 あゆみ 由三个字母组成: +但这能阻止你在同一段文字里混用日语、拉丁语,还有西里尔字符吗?显然不能,这多亏了 Unicode。比如说,名字 “あゆみ” 由三个字母组成: -- [HIRAGANA LETTER A平假名字母 あ (U+3042)][25] -- [HIRAGANA LETTER YU平假名字母 ゆ (U+3086)][26] -- 以及 [HIRAGANA LETTER MI平假名字母 み (U+307F)][27] +- [“HIRAGANA LETTER A(平假名字母 あ)” (U+3042)][25] +- [“HIRAGANA LETTER YU(平假名字母 ゆ)” (U+3086)][26] +- 以及 [“HIRAGANA LETTER MI(平假名字母 み)” (U+307F)][27] 我在上文提及了 Unicode 字符的正式名称,并遵循了全部用大写拼写的规范。在它们的名字后面,你可以找到它们的 Unicode 代码点,位于括号之间并写作 16 位的十六进制数字。这让你想到什么了吗? 不管怎样,一旦你知道了的一个字符的代码点,你就可以按照以下组合输入: -- Ctrl+Shift+u,然后 XXXX(你想要的字符的_十六进制_代码点)然后回车。 +- `Ctrl+Shift+u`,然后是 `XXXX`(你想要的字符的 _十六进制_ 代码点)然后回车。 -作为一种简写方式,如果你在输入代码点时不松开 Ctrl+Shift,你就不用敲回车。 +作为一种简写方式,如果你在输入代码点时不松开 `Ctrl+Shift`,你就不用敲回车。 不幸的是,这项功能的实现是在软件库层而非 X11 层,所以对其支持在不同应用间并不统一。以 LibreOffice 为例,你必须使用主键盘来输入代码点。而在基于 Gtk 的应用则接受来自数字键盘的输入。 -最后,当我跟在我的 Debian 系统上的控制台打交道时,我发现了一个类似的功能,但它需要你按下 Alt+XXXXX 而 XXXXX 是你想要的字符的代码点写作_十进制_。我很好奇这究竟是 Debian 独有的功能还是因为我使用的 locale 是 en_US.UTF-8。如果你对此有更多信息,我会很愿意在评论区读到它们的! +最后,当我和我的 Debian 系统上的控制台打交道时,我发现了一个类似的功能,但它需要你按下 `Alt+XXXXX` 而 `XXXXX` 是你想要的字符的 _十进制_ 的代码点。我很好奇这究竟是 Debian 独有的功能,还是因为我使用的语言环境(Locale) 是 `en_US.UTF-8`。如果你对此有更多信息,我会很愿意在评论区读到它们的! | GUI | 控制台 | 字符 | | :- | :- | :- | -| Ctrl+Shift+u3042Enter | Alt+12354 | あ | -| Ctrl+Shift+u3086Enter | Alt+12422 | ゆ | -| Ctrl+Shift+u307FEnter | Alt+12415 | み | +| `Ctrl+Shift+u` `3042` `Enter` | `Alt+12354` | あ | +| `Ctrl+Shift+u` `3086` `Enter` | `Alt+12422` | ゆ | +| `Ctrl+Shift+u` `307F` `Enter` | `Alt+12415` | み | ### 死键 -最后值得一提的是,想要不(必须)依赖 compose 键来输入键组合还有一个更简单的方法。 +最后值得一提的是,想要不(必须)依赖 Compose 键来输入键组合还有一个更简单的方法。 -你的键盘上的某些键是专门用来创造字符组合的。这些键叫做[死键][28]。这是因为当你按下它们一次,看起来什么都没有发生。但它们会悄悄地改变你下一次按键所产生的字符。这个行为的灵感来自于机械打字机:在使用机械打字机时,按下一个死键会印下一个字符,但不会移动字盘。于是下一次按键则会在同一个地方印下另一个字符。视觉效果就是两次按键的组合。 +你的键盘上的某些键是专门用来创造字符组合的。这些键叫做 [死键][28]Dead Key。这是因为当你按下它们一次,看起来什么都没有发生,但它们会悄悄地改变你下一次按键所产生的字符。这个行为的灵感来自于机械打字机:在使用机械打字机时,按下一个死键会印下一个字符,但不会移动字盘。于是下一次按键则会在同一个地方印下另一个字符。视觉效果就是两次按键的组合。 -我们在法语里经常用到这个。举例来说,想要输入字母 “ë” 我必须按下死键 ¨ 然后再按下 e 键。同样地,西班牙人的键盘上有着死键 ~。而在北欧语系下的键盘布局,你可以找到 ° 键。我可以念很久这份清单。 +我们在法语里经常用到这个。举例来说,想要输入字母 `ë` 我必须按下死键 `¨` 然后再按下 `e` 键。同样地,西班牙人的键盘上有着死键 `~`。而在北欧语系下的键盘布局,你可以找到 `°` 键。我可以念很久这份清单。 ![hungary dead keys][29] -显然,不是所有键盘都有所有死键。实际上,你的键盘上是找不到大部分死键的。比如说,我猜在你们当中只有小部分人——如果真的有的话——有死键 ¯ 来输入 Tōkyō 所需要的长音符号(“平变音符”)。 +显然,不是所有键盘都有所有死键。实际上,你的键盘上是找不到大部分死键的。比如说,我猜在你们当中只有小部分人——如果真的有的话——有死键 `¯` 来输入 `Tōkyō` 所需要的长音符号(“平变音符”)。 对于那些你键盘上没有的死键,你需要寻找别的解决方案。好消息是,我们已经用过那些技术了。但这一次我们要用它们来模拟死键,而非“普通”键。 -那么,我们的第一个选择是利用 Compose- 来生成长音符号(你键盘上有的连字符减号)。按下时屏幕上什么都不会出现,但当你接着按下 o 键你就能看到 “ō”。 +那么,我们的第一个选择是利用 `Compose` `-` 来生成长音符号(你键盘上有的连字符减号)。按下时屏幕上什么都不会出现,但当你接着按下 `o` 键你就能看到 `ō`。 -Gtk 在组合模式下可以生成的一系列死键都能在[这里][30]找到。 +Gtk 在组合模式下可以生成的一系列死键都能在 [这里][30] 找到。 -另一个解决方法则是利用 Unicode 字符 COMBINING MACRON组合长音符号 (U+0304),然后字母 o。我把细节都留给你。但如果你好奇的话,你会发现你打出的结果有着微妙的不同,你并没有真地打出 LATIN SMALL LETTER O WITH MACRON小写拉丁字母 O 带长音符号。如果我在上一句的结尾用了大写拼写,这应该可以提示你寻找通过 Unicode 组合字符按更少的键输入 ō 的方法……现在我将这些留给你的聪明才智去解决了。 +另一个解决方法则是利用 Unicode 字符 “COMBINING MACRON(组合长音符号)”(U+0304),然后字母 `o`。我把细节都留给你。但如果你好奇的话,你会发现你打出的结果有着微妙的不同,你并没有真地打出 “LATIN SMALL LETTER O WITH MACRON(小写拉丁字母 O 带长音符号)”。我在上一句话的结尾用了大写拼写,这就是一个提示,引导你寻找通过 Unicode 组合字符按更少的键输入 `ō` 的方法……现在我将这些留给你的聪明才智去解决了。 ### 轮到你来练习了! @@ -221,33 +223,33 @@ via: https://itsfoss.com/unicode-linux/ 作者:[Sylvain Leroux][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/) 荣誉推出 [a]: https://www.yesik.it/ [b]: https://github.com/lkxed -[1]: https://itsfoss.com/wp-content/uploads/2017/10//text-challenge.png +[1]: https://itsfoss.com/content/images/wordpress/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 +[3]: https://itsfoss.com/content/images/wordpress/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 +[6]: https://itsfoss.com/content/images/wordpress/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 +[8]: https://itsfoss.com/content/images/wordpress/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 +[11]: https://itsfoss.com/content/images/wordpress/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 +[14]: https://itsfoss.com/content/images/wordpress/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 +[18]: https://itsfoss.com/content/images/wordpress/2017/10//unicode-utf-16-encoding-example.png +[19]: https://itsfoss.com/content/images/wordpress/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 +[21]: https://itsfoss.com/content/images/wordpress/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 @@ -255,5 +257,6 @@ via: https://itsfoss.com/unicode-linux/ [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 +[29]: https://itsfoss.com/content/images/wordpress/2022/12/hungary_dead_keys.png [30]: https://help.ubuntu.com/community/GtkDeadKeyTable +[0]: https://img.linux.net.cn/data/attachment/album/202301/27/123501fod5doujjgo5jfjk.jpg \ No newline at end of file From 3f96a5fb8f565b5cf3a556ed2bc5f05e50582236 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 27 Jan 2023 12:40:13 +0800 Subject: [PATCH 239/357] P @yzuowei https://linux.cn/article-15483-1.html --- ...213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md (99%) diff --git a/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/published/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md similarity index 99% rename from translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md rename to published/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md index 67f6348ecc..8b3c348927 100644 --- a/translated/tech/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md +++ b/published/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "yzuowei" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15483-1.html" 文字间的战斗与其救世主 Unicode ====== From 42417c19eb5deb705102999a51e14527eec575f1 Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 27 Jan 2023 14:37:13 +0800 Subject: [PATCH 240/357] translating --- ... What you actually need to know about open source to get started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md index be8a97423b..0618406370 100644 --- a/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md +++ b/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/11/get-started-open-source" [#]: author: "Katie Edwards https://opensource.com/users/kaedward" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "yzuowei" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From fea13a32905a9cdc0a497e732c6c8e69bd8a165e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 27 Jan 2023 16:35:33 +0800 Subject: [PATCH 241/357] RP @chai001125 https://linux.cn/article-15484-1.html --- ...rary for Data Analysis and Data Science.md | 109 ++++++++++++++++++ ...rary for Data Analysis and Data Science.md | 108 ----------------- 2 files changed, 109 insertions(+), 108 deletions(-) create mode 100644 published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md delete mode 100644 translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md diff --git a/published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md new file mode 100644 index 0000000000..93b2331ae6 --- /dev/null +++ b/published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md @@ -0,0 +1,109 @@ +[#]: subject: "Pandas: The Popular Python Library for Data Analysis and Data Science" +[#]: via: "https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/" +[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15484-1.html" + +Pandas:用于数据分析和数据科学的最热门 Python 库 +====== + +> Pandas 是一个十分流行的 Python 第三方库。本文介绍了 Pandas 库中的一些特性和函数,并且我们鼓励读者亲手使用 Pandas 库,来解决实际的业务问题。 + +Pandas 为 Python 中数据分析提供了基础和高级的构建组件。Pandas 库是用于数据分析与数据操作的最强大和最灵活的开源**分析工具**之一,并且它还提供了用于建模和操作表格数据(以行和列组织的数据)的**数据结构**。 + +Pandas 库有两个主要的数据结构:第一个是 “系列Series”,该数据结构能够很方便地从 Python 数组或字典中**按位置或指定的索引名称**来检索数据;第二个是“数据帧DataFrames”,该数据结构将数据存储在行和列中。列可以通过列名访问,行通过索引访问。列可以有不同类型的数据,包括列表、字典、序列、数据帧、NumPy 数组等。 + +### Pandas 库可以处理各种文件格式 + +有各种各样的文件格式。用于数据分析的工具必须能够提供处理各种文件格式的方法。 + +Pandas 可以读取各种文件格式,例如 CSV 文件、JSON 文件、XML 文件、Parquet 文件、SQL 文件,详见下表。 + +| | 写入 | 读取 | +| :- | :- | :- | +| CSV 文件 | `to_csv` 函数 | `read_csv` 函数 | +| JSON 文件 | `to_json` 函数 | `read_json` 函数 | +| Parquet 文件 | `to_parquet` 函数 | `read_parquet` 函数 | +| SQL 文件 | `to_sql` 函数 | `read_sql` 函数,`read_sql_query` 函数,`read_sql_table` 函数 | +| XML 文件 | `to_xml` 函数 | `read_xml` 函数 | + +### 使用 Pandas 进行数据清理 + +在现实场景中,很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要对使数据分析更加准确,就需要对这些没有用的数据进行处理。此外,数据还会有需要 屏蔽mask 的敏感和机密信息。接下来,Pandas 提供了清理、丢弃、替换、屏蔽等方法,来处理这些坏数据。 + +#### Pandas 清洗空值: + +a. 空行可以使用 `df.dropna(inplace=True)` 方法来删除。 + +b. 空值可以使用 `df.fillna(, inplace=True)` 方法来替换。还可以指定某一个列来替换该列的空数据。 + +#### Pandas 屏蔽数据: + +c. 要屏蔽所有不满足条件 `my_list.where(my_list < 5)` 的敏感数据的值,可以使用 `my_list.mask(my_list < 5)`。 + +#### Pandas 清洗重复数据: + +d. 要删除重复数据,可以使用 `drop_duplicates()` 方法: + +``` +df.drop_duplicates(‘’, keep = False) +df.drop_duplicates(‘’, keep = ‘first’) +df.drop_duplicates(‘’, keep = ‘last’) +``` + +### 使用 Pandas 进行数据分析 + +下面的表格列出了 Pandas 中进行数据分析的各种函数,以及其语法。(请注意:`df` 代表一个 数据帧DataFrame 数据结构的实例。) + +| 语法 | 描述 | +| :- | :- | +| `df.head(x)` | `head()` 函数用于读取前面的 x 行,如果不填参数 x,默认返回 5 行 | +| `df.tail(x)` | `tail()` 函数用于读取尾部的 x 行,如果不填参数 x ,默认返回最后 5 行,空行各个字段的值返回 NaN | +| `loc(x:y)` | Loc 函数返回指定行的数据,也可以对数据进行切片 | +| `groupby('')` | 对指定列的数据进行分组 | +| `df['column'].sum()` | 计算指定列数据的总和 | +| `df['column']. mean()` | 计算指定列数据的算术平均值 | +| `df['column'].min()` | 计算指定列数据的最小值 | +| `df['column'].max()` | 计算指定列数据的最大值 | +| `df.sort_values(['column'])` | 在指定列上根据数值进行排序,默认升序 | +| `df.size` | 返回元素的个数,即为行数 * 列数 | +| `df.describe` | 返回对各列的统计汇总 | +| `pd.crosstab(df['column1'], df['column2'], margins = True)` | 创建 `column1` 和 `column2` 的交叉表 | +| `df.duplicated([column1, 'column2'])` | 根据 `column1` 和 `column2` 中的重复值,返回 `True` 或 `False` | + +### Pandas 的优点 + +* 支持多索引(层次索引),方便分析多维数据。 +* 支持数据透视表的创建,堆栈和取消堆栈操作。 +* 可以使用 Pandas 处理有限值的分类数据。 +* 支持分组和聚合运算。 +* 可以禁用排序。 +* 支持行级过滤(获取满足过滤条件的行)和列级过滤(只选择需要的列)。 +* 有助于重塑数据集(数组的维度变换)。还可以转置数组的值,并转换为列表。当你使用 Python 处理数据时,可以将 Pandas 数据帧转换为多维 NumPy 数组。 +* 支持面向标签的数据切片。 + +### Pandas 的不足 + +Pandas 的代码和语法与 Python 不同,所以人们需要额外再学习 Pandas。此外,相较于 Pandas,像三维数据这样的高维数据会在 NumPy 等其他库有更好的处理。 + +### 总结 + +Pandas 能够大幅提升数据分析的效率。它与其他库的兼容性使它在其他 Python 库中都能有效地使用。 + +-------------------------------------------------------------------------------- + +via: https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/ + +作者:[Phani Kiran][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://www.opensourceforu.com/author/phani-kiran/ +[b]: https://github.com/lkxed +[0]: https://img.linux.net.cn/data/attachment/album/202301/27/163400o6afgegh0nf4nfec.jpg \ No newline at end of file diff --git a/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md deleted file mode 100644 index ef994f9ba9..0000000000 --- a/translated/tech/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md +++ /dev/null @@ -1,108 +0,0 @@ -[#]: subject: "Pandas: The Popular Python Library for Data Analysis and Data Science" -[#]: via: "https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/" -[#]: author: "Phani Kiran https://www.opensourceforu.com/author/phani-kiran/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Pandas:用于数据分析和数据科学的最热门 Python 库 -====== - ->Pandas 是一个十分流行的 Python 第三方库。本文介绍了 Pandas 库中的一些特性和函数,并且我们鼓励读者亲手使用 Pandas 库,来解决实际的业务问题。 - -Pandas 为 Python 中数据分析提供了基础和高级的构建块。Pandas 库是用于数据分析与数据操作的最强大和最灵活的开源**分析工具**之一,并且它还提供了用于建模和操作表格数据(行和列中的数据)的**数据结构**。 - -Pandas 库有两个主要的数据结构:第一个是“**Series**”,该数据结构能够很方便地从 Python 数组或字典中**按位置或指定索引名称**来检索数据;第二个是“**DataFrames**”,该数据结构将数据存储在行和列中。列可以通过列名访问,行通过索引访问。列可以有不同类型的数据,包括列表、字典、Series、DataFrames、NumPy 数组等。 - -### Pandas 库可以处理各种文件格式 - -有各种各样的文件格式。用于数据分析的工具必须能够提供处理各种文件格式的方法。 - -Pandas 可以读取各种文件格式,例如 CSV 文件、JSON 文件、XML 文件、Parquet 文件、SQL 文件,详见下表。 - -| | 写入 | 读取 | -| :- | :- | :- | -| CSV 文件 | to_csv 函数 | read_csv 函数 | -| JSON 文件 | to_json 函数 | read_json 函数 | -| Parquet 文件 | to_parquet 函数 | read_parquet 函数 | -| SQL 文件 | to_sql 函数 | read_sql 函数,read_sql_query 函数,read_sql_table 函数 | -| XML 文件 | to_xml 函数 | read_xml 函数 | - -### 使用 Pandas 进行数据清理 - -在现实场景中,很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要对使数据分析更加准确,就需要对这些没有用的数据进行处理。此外,数据还会有需要 屏蔽mask 的敏感和机密信息。接下来,Pandas 提供了清理、丢弃、替换、屏蔽等方法,来处理这些坏数据。 - -#### Pandas 清洗空值: - -a. 使用 *df.dropna(inplace=True)* 方法来删除包含空字段的行。 - -b. 使用 *df.fillna(, inplace=True)* 方法来替换空字段。还可以指定某一个列来替换该列的空数据。 - -#### Pandas 屏蔽数据: - -c. 要屏蔽所有不满足条件 *my_list.where(my_list < 5)* 的敏感数据的值,可以使用 *my_list.mask(my_list < 5)*。 - -#### Pandas 清洗重复数据: - -d. 要删除重复数据,可以使用 drop_duplicates() 方法: - -``` -df.drop_duplicates(‘’, keep = False) -df.drop_duplicates(‘’, keep = ‘first’) -df.drop_duplicates(‘’, keep = ‘last’) -``` - -### 使用 Pandas 进行数据分析 - -下面的表格列出了 Pandas 中进行数据分析的各种函数,以及其语法。(请注意:df 代表一个 DataFrame 数据结构的实例。) - -| 语法 | 描述 | -| :- | :- | -| df.head(x) | Head() 函数用于读取前面的 x 行,如果不填参数 x,默认返回 5 行 | -| df.tail(x) | tail() 函数用于读取尾部的 x 行,如果不填参数 x ,默认返回最后 5 行,空行各个字段的值返回 NaN | -| loc(x:y) | Loc 函数返回指定行的数据,也可以对数据进行切片 | -| groupby(‘’) | 对指定列的数据进行分组 | -| df[‘column’].sum() | 计算指定列数据的总和 | -| df[‘column’]. mean() | 计算指定列数据的算术平均值 | -| df[‘column’].min() | 计算指定列数据的最小值 | -| df[‘column’].max() | 计算指定列数据的最大值 | -| df.sort_values([‘column’]) | 在指定轴上根据数值进行排序,默认升序 | -| df.size | 返回元素的个数,即为 Rows(行数)* columns(列数) | -| df.describe | 返回对各列的统计汇总 | -| pd.crosstab(df[‘column1’], df[‘column2’], margins = True) | 创建 `column1` 和 `column2` 的交叉表 | -| df.duplicated([column1, ‘column2’]) | 根据 `column1` 和 `column2` 中的重复值,返回 True 或 False | - -### Pandas 的优点 - -* 支持多索引(层次索引),方便分析多维数据。 -* 支持数据透视表的创建,堆栈和取消堆栈操作。 -* 可以使用 Pandas 处理有限值的分类数据。 -* 支持分组和聚合运算。 -* 可以禁用排序。 -* 支持行级过滤(获取满足过滤条件的行)和列级过滤(只选择需要的列)。 -* 有助于重塑数据集(数组的维度变换)。还可以转置数组的值,并转换为列表。当你使用 Python 处理数据时,可以将 Pandas DataFrame 转换为多维 NumPy 数组。 -* 支持面向标签的数据切片。 - -### Pandas 的不足 - -Pandas 的代码和语法与 Python 不同,所以人们需要额外再学习 Pandas。此外,相较于 Pandas,像三维数据这样的高维数据会在 NumPy 等其他库有更好的处理。 - -### 总结 - -Pandas 能够大幅提升数据分析的效率。它与其他库的兼容性使它在其他 Python 库中都能有效地使用。 - --------------------------------------------------------------------------------- - -via: https://www.opensourceforu.com/2022/08/pandas-the-popular-python-library-for-data-analysis-and-data-science/ - -作者:[Phani Kiran][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.opensourceforu.com/author/phani-kiran/ -[b]: https://github.com/lkxed From 2fd2c0ba7a5693e229d9b2f992294d89ae384f9c Mon Sep 17 00:00:00 2001 From: yzuowei Date: Fri, 27 Jan 2023 17:53:18 +0800 Subject: [PATCH 242/357] translated --- ...y need to know about open source to get started.md | 97 ------------------ ...y need to know about open source to get started.md | 98 +++++++++++++++++++ 2 files changed, 98 insertions(+), 97 deletions(-) delete mode 100644 sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md create mode 100644 translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md diff --git a/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md deleted file mode 100644 index 0618406370..0000000000 --- a/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md +++ /dev/null @@ -1,97 +0,0 @@ -[#]: subject: "What you actually need to know about open source to get started" -[#]: via: "https://opensource.com/article/22/11/get-started-open-source" -[#]: author: "Katie Edwards https://opensource.com/users/kaedward" -[#]: collector: "lkxed" -[#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -What you actually need to know about open source to get started -====== - -A beginner's guide to open source explained in plain terms. - -So you want (or need) to figure out what ["open source"][1] really means. I'll cover the basics of open source, whether you're interested in contributing to a project or want to be in the loop at a new job where the term keeps getting thrown around. - -Full disclosure: I am a person with little technical experience, working in the content-design fringes of a very technical open source environment. Given my background in marketing and communication, I felt like a fish out of water when I made this career switch. [Git][2], data science, the ins and outs of software… It was, and still is a year later, a lot to comprehend. - -But that's why I'm writing this piece. I want to help make open source a little less intimidating. After all, at the center of open source is a supportive learning community—built for everyone, technically experienced or not. - -I'll start with the absolute basics. - -### What is open source? - -For the record, the industry definition of open source is available at the [Open Source Initiative][3] site. - -However, the popular perception of "open source" software is usually that it doesn't cost anything, the source code is accessible, anyone can contribute to it, and you can redistribute it or do whatever else you want with it. - -Some of that is true, and some of it plays into a few common misconceptions, one of which is cost. - -#### Open source costs $0 - -Is it true? Usually, but not always. By nature of its code being publicly available, open source software can be obtained at no cost. However, for-profit companies do exist around open source projects. But if the software is available at no cost, how do open source companies even exist? How do they make money? - -The concept of having a "free product" is counter-intuitive. But that's just the thing: A company doesn't have to sell software to profit from the management of products, storage of data, and customer support. - -Many companies follow a subscription model, offering customer support in case of bugs or general confusion. Data storage isn't free, so that is another area where these companies can bring in income. In this regard, the "product" isn't the software; it's the benefit of a subscription. - -- **The source code is accessible**: Is it true? Yes, always. This accessibility is a prerequisite for adopting the term "open source." The source code must be available to view, use, modify, and redistribute. -- **You can do whatever you want with the code**: Is it true? It depends. Subject to licensing terms, there are some limitations on how you can use code, but you can generally use it however you'd like. Whether that means tweaking a project to fit a specific need or using it as the basis for something else, open source software is yours, and everyone else's, to modify. -- **Anyone can contribute to open source projects**: Is it true? Yes - within limits. Anyone with the [right skill set][4] can contribute to open source. However, that doesn't mean all contributions are always accepted and implemented. - -For example, say you're interested in a project where the end goal is a catalog of all the types of birds in the world. You're really into dinosaurs, specifically dinosaurs that may have eventually evolved into modern-day birds. So, you contribute entries for all of the most bird-like dinosaurs. The project owners could see this and think, "Sweet, those are some great prehistoric birds." However, they're also allowed to say, "Hmm, those dinosaurs are like birds, but they're technically not birds yet. They probably don't belong on Birdpedia." - -Luckily, projects don't usually work under lawless conditions. Open source projects typically come with contribution guidelines and codes of conduct, so you don't have to worry about your additions flying off the rails. - -### Why open source? - -So, after all the contributions are made (if it's ever actually done), why would people give away their software for no cost? If so many people put their time and effort into creating something, why wouldn't they band together and slap a price tag on it? - -This question comes with a lot of answers. Here are a few: - -- Starting a business is hard, especially if the project you're working on doesn't form the strong foundation for a money machine. It can be easier to rally a bunch of like-minded people without commitments or the expectation of paychecks. -- Most open source communities consist of people interested in improving software or bringing it into existence but don't have the time or interest to commit to working full-time on a project. Sometimes open source represents passion projects, geek groups, and crowd-sourced solutions to annoying problems. -- The groups that form around open source projects of all sizes foster supportive communities where contributors and onlookers alike can practice their skills, improve software they regularly use, teach and learn from each other, and feel empowered to make their voices heard. Many open source communities are essentially hyper-focused online hobby clubs. - -### Where do I get involved? - -Now you may ask yourself, "But what do I do with this information? Can I contribute to open source projects? What if I'm not good enough yet?" - -Never fear—even [beginners][5] are welcome to contribute to open source projects. It's a great way to hone your skills while working with a community towards a larger goal. And, as I talked about earlier, the worst that can happen is your changes aren't merged into Birdpedia (and that's because those product owners just can't see your vision of a Birdpedia where birds and their ancestors gleefully coexist in an online world of bird-related knowledge). - -Do you have to know how to code to contribute to projects? Contrary to popular belief, [no, you don't][6]. Projects "take a village" to thrive, which means they need input from people of all different backgrounds. Visual designers, writers, marketers, reviewers, translators, subject matter enthusiasts, and even just users of the resulting product are all valuable contributors. Not only do they help build out and improve products, but they identify bugs, suggest improvements, spread the word about the project, and generally strengthen the community. - -In short, no matter what your background or experience, if you're interested in open source or a specific project, you're nearly guaranteed to be welcomed with open arms. - -### Get started with open source now - -Still not sure where to begin? Here are some ideas and resources to get you started: - -- [Up For Grabs][7] is a "list of open source projects which have curated tasks specifically for new contributors." This is a great place to find an easy first PR opportunity, which is a great way to find out what kind of contributions you'll enjoy. -- Check out this list of [beginner-friendly projects][8] on GitHub. -- If you're still not feeling inspired, consider [contributing][9] to (or flying with) [PatternFly][10], Red Hat's open design system. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/get-started-open-source - -作者:[Katie Edwards][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/kaedward -[b]: https://github.com/lkxed -[1]: https://opensource.com/resources/what-open-source -[2]: https://opensource.com/resources/what-is-git -[3]: https://opensource.org/osd -[4]: https://opensource.com/life/16/1/8-ways-contribute-open-source-without-writing-code -[5]: https://opensource.com/article/18/4/get-started-open-source-project -[6]: https://opensource.com/article/22/8/non-code-contribution-powers-open-source -[7]: https://up-for-grabs.net/?ref=hackernoon.com#/ -[8]: https://github.com/MunGell/awesome-for-beginners -[9]: https://github.com/patternfly -[10]: https://www.patternfly.org/v4/get-started/design diff --git a/translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md new file mode 100644 index 0000000000..08b3af812a --- /dev/null +++ b/translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md @@ -0,0 +1,98 @@ +[#]: subject: "What you actually need to know about open source to get started" +[#]: via: "https://opensource.com/article/22/11/get-started-open-source" +[#]: author: "Katie Edwards https://opensource.com/users/kaedward" +[#]: collector: "lkxed" +[#]: translator: "yzuowei" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +关于开源,你需要知道些什么 +====== + +一份用简单直白的语句来解释开源的新手指南。 + +所以你想要(或需要)知道[开源][1]的意思究竟是什么。我会介绍开源的一些基础,无论你是对项目贡献感兴趣,还是在想要融入的新工作圈子里总是听到这个名词。 + +我坦白,我这个人没什么技术经验,在极具技术性的开源社区中从事着内容设计的边缘工作。考虑到我原来的背景是营销与传播,我决定换工作时感觉就像离了水的鱼儿。[Git][2],数据科学,软件的各种输入输出……直到一年后的今天,我依然感到难以消化。 + +但这正是为什么我要写这篇文章。我想要让开源变得不那么吓人。毕竟,开源的背后是支持型学习社区——这个社区对所有人开放,无论你是否有技术经验。 + +我会从基本中的基本开始。 + +### 什么是开源? + +在此声明,开源的行业内定义可以在[开放源代码促进会(Open Source Initiative)][3]的网站找到。 + +然而,大众对“开源”软件的认知通常为它不用花钱,它的源代码是公开的,任何人都可以对其贡献,你可以重新发布它或者做任何你想用它做的事。 + +这里面有些是真的,而有些则属于常见的误解,其中之一就是关于花费。 + +#### 开源只要 0 元 + +这是真的吗?大部分情况下是,但不是所有情况。开源软件的本质在于代码的公开性,所以获取软件本身确实不需要花费。但是,依赖开源项目的营利公司也确实存在。但如果软件不需要花钱,开源公司又是如何生存的?他们该如何盈利? + +拥有“免费产品”这个概念本身是反直觉的。但你要知道:一个公司不一定要靠出售软件来赚钱,它也可以推销它的产品管理,数据储存,以及客户支持。 + +很多公司都采用了订阅模式,他们提供客户支持服务以帮助客户调试软件并为客户解答疑惑。数据储存也并非免费,这片领域也能为公司带来收入。从这个角度来说,在销售的“产品”不是软件,而是订阅服务。 + +- **开源代码是公开的**:这是真的吗?是的,永远都是。“开源”一词的先决条件正是这份公开性。源代码必须允许被查看、使用、修改并重新发布。 +- **你可以用这份代码做任何你想做的事**:这是真的吗?依情况而定。许可证条款会对你对代码的使用方式作出限制,但你通常都可以用代码做你想做的事。无论是调整项目以满足特殊需求,还是以此为基础做些别的,开源软件允许你和所有人对其修改。 +- **任何人都可以贡献开源项目**:这是真的吗?是的,但有限制。所有有[合适技能][4]的人都可以贡献开源。但是,这不意味着所有的贡献都会被接受和采纳。 + +比如说,你对一个目标是对地球上所有的鸟类进行分类的项目感兴趣。你恰好很喜欢恐龙,特别是那些最终进化成如今的鸟类的恐龙。于是,你为所有最像鸟类的恐龙提交了条目。项目所有者在看到这些后可能会想:“不错,这都是些很棒的史前鸟类。”但他们也可能会认为:“嗯……这些恐龙看起来像鸟,但他们还不是鸟,因此他们不属于鸟类百科。” + +幸运的是,项目里的工作通常有法可依。开源项目通常有着贡献指南和行为准则,所以你不用担心你会加入什么使得项目脱轨的东西。 + +### 为什么选择开源呢? + +那么,在众多贡献之后(如果能贡献完的话),为什么人们愿意免费赠送他们的软件?如果有那么多人为此付出了时间与精力,他们为什么不能联合起来为软件明码标价? + +这个问题有很多回答。我在这里给出了一些: + +- 创业是艰难的,如果你开发的项目展现不出赚钱的潜力则尤其如此。召集一群志同道合的人,没有承诺也没有对薪水的期望,相对而言要简单得多。 +- 大部分开源社区的成员对软件的改进或者实现感兴趣,但他们没有时间或者不愿意将项目作为他们的全职工作。有时候开源代表的是热情驱动的项目,极客组成的团体,还有凝聚众人智慧对恼人问题的解决方案。 +- 围绕各种规模的开源项目形成的团体促进了支持型社区的成形,在这里贡献者与旁观者都可以练习他们的技能,改进他们常用的软件,互教互学,并为发声被听到而感到振奋。很多开源社区本质上就是高度集中的线上爱好者俱乐部。 + +### 我该如何参与呢? + +现在你可能会问你自己:“我知道了这些信息又可以做些什么呢?我能贡献开源项目吗?如果我不够优秀的话该怎么办?” + +不要害怕——即便是[新手][5]也欢迎贡献开源项目。在与社区一起朝着更大的目标共同努力的同时,你也得到了一个磨练技能的绝佳机会。况且,正如我之前所说,最坏的情况也不过是你的提交不被鸟类百科所接受(而这也是因为项目的所有者看不到你对鸟类百科的愿景,那是一片关于鸟类知识的网络天地,鸟与他们的祖先在那里一起幸福地生活)。 + +你需要会写代码来贡献开源吗?与大众认知相违的是,[你不需要][6]。项目需要“民生”以兴旺,这意味着他们需要来自不同背景的人的贡献。视觉设计师、撰稿人、营销、评审、翻译、主题爱好者,甚至只是最终产品的用户,都是可贵的贡献者。他们不仅是帮忙搭建并改进了产品,他们也识别出了漏洞,提出了修改建议,为项目做出宣传,最终使得社区强大。 + +简单来说,不论你的背景是什么,经验有多少,只要你对开源或是某个特别的项目感兴趣,你几乎被保证了一个会张开双臂欢迎你的社区。 + +### 现在就加入开源吧 + +还是不确定应该从哪开始?这里有些能帮助你的想法和资源: + + +- [Up For Grabs][7] 是一份“专门为新贡献者策划任务的开源项目清单。”这里很适合新贡献者们来寻找简单的初次 PR 机会,这次机会也能让你探寻你更喜欢哪种贡献。 +- 来看看 GitHub 上的这份[新手友好项目][8]列表吧。 +- 如果你还是缺乏灵感,考虑一下[贡献][9]红帽(Red Hat)的开放设计系统 [PatternFly][10](或者一起飞)。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/get-started-open-source + +作者:[Katie Edwards][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/kaedward +[b]: https://github.com/lkxed +[1]: https://opensource.com/resources/what-open-source +[2]: https://opensource.com/resources/what-is-git +[3]: https://opensource.org/osd +[4]: https://opensource.com/life/16/1/8-ways-contribute-open-source-without-writing-code +[5]: https://opensource.com/article/18/4/get-started-open-source-project +[6]: https://opensource.com/article/22/8/non-code-contribution-powers-open-source +[7]: https://up-for-grabs.net/?ref=hackernoon.com#/ +[8]: https://github.com/MunGell/awesome-for-beginners +[9]: https://github.com/patternfly +[10]: https://www.patternfly.org/v4/get-started/design From 03d4c0771318f072634ffebc25b5e554d005ae03 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Fri, 27 Jan 2023 21:04:31 +0800 Subject: [PATCH 243/357] Translating --- sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 6ede79a4bf..cfb132275f 100644 --- a/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md +++ b/sources/tech/20221219.0 ⭐️⭐️ Use Rexx for scripting in 2023.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/rexx-scripting" [#]: author: "Howard Fosdick https://opensource.com/users/howtech" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "MjSeven" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 433c20c67252bbe00fc98b04a57a0b25f8c2e33e Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 28 Jan 2023 08:50:01 +0800 Subject: [PATCH 244/357] translated --- ...114.0 ⭐️ A 4-minute guide to Java loops.md | 151 ------------------ ...114.0 ⭐️ A 4-minute guide to Java loops.md | 150 +++++++++++++++++ 2 files changed, 150 insertions(+), 151 deletions(-) delete mode 100644 sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md create mode 100644 translated/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 deleted file mode 100644 index bf5af72851..0000000000 --- a/sources/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md +++ /dev/null @@ -1,151 +0,0 @@ -[#]: 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: "geekpi" -[#]: 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 - - diff --git a/translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md b/translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md new file mode 100644 index 0000000000..4e6780fd4e --- /dev/null +++ b/translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md @@ -0,0 +1,150 @@ +[#]: 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: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +4 分钟的 Java 循环指南 +====== + +一个 while 循环执行一组任务,只要某些预定的条件为真。这被认为是一个控制结构,可以指导程序的流程。它是一种方法,你可以通过定义一个条件来告诉你的代码要做什么,它可以测试,并根据它发现的情况采取行动。Java 中的两种 while 循环是 while 和 do while。 + +### Java while 循环 + +while 循环的目的是对数据进行迭代,直到某个条件得到满足。要创建一个 while 循环,你需要提供一个可以测试的条件,然后是你想要运行的代码。Java 有几个内置的测试函数,其中最简单的是数学运算符(`<`, `>`, `==`, 等等): + +``` +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++; + } + } +} +``` + +在这个简单的例子中,条件是变量 `count` 小于5。因为 `count` 被实例化为 0,然后在 while 循环的代码中增加 1,所以程序总共迭代了 5 次: + +``` +$ java ./while.java +0 1 2 3 4 +``` + +在它进行第六次迭代之前,条件不再是真的,所以循环结束。 + +while 循环的条件语句是至关重要的。弄错了可能意味着你的循环永远不会执行。例如,假设你把 `count == 5` 作为条件: + +``` +while (count == 5) { + System.out.printf("%d ", count); + count++; +``` + +当你运行这段代码时,它的构建和运行都很成功,但什么也没有发生: + +``` +$ java ./while.java +$ +``` + +循环被跳过了,因为 `count` 被设置为0,而且在第一次遇到 while 循环的时候,它还是 0。循环从未开始,`count` 也从未被递增。 + +与此相反的是,当一个条件开始为真,并且永远不会为假时,这将导致一个无限循环。 + +### Java do while 循环 + +与 while 循环相似,do while 循环在每次迭代结束时测试条件,而不是在开始时测试条件。有了这个循环, 循环中的代码至少运行一次, 因为没有进入的入口, 只有退出的出口: + +``` +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); + } +} +``` + +在这个示例代码中,`count` 被设置为 9。循环重复的条件是 `count` 等于5,但是 9 不等于 5。不过,这个检查要到第一次迭代结束时才进行: + +``` +$ java ./do.java +9 +``` + +### Java 无限循环 + +无限循环,正如它的名字所示,永远不会结束。有时它们是被错误地创建的,但无限循环确实有一个有效的场景。有时你想让一个进程无限地继续下去(这在功能上是无限的,因为你不能保证你需要它什么时候停止),因此你可能会把你的条件设置为不可能满足的东西。 + +假设你写了一个应用程序,在僵尸天启期间计算留在你附近的僵尸的数量。为了模拟需要多少个循环才能达到 0 个僵尸的不确定性,我的演示代码从操作系统中检索了一个时间戳,并将计数器(`c`)的值设置为从该时间戳得出的某个数字。因为这是一个简单的例子,你不会真的想陷入一个无限循环,这段代码倒数到 0,并使用 `break` 函数来强制结束循环: + +``` +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--; + } + } +} +``` + +你可能要运行几次才能触发不同的僵尸总数,但有时你的程序会迭代 128 次,有时会迭代 1024 次: + +``` +$ java ./zcount.java +1024 Zombies +1023 Zombies +[...] +0 Zombies +``` + +你能说出为什么循环的终点是 0 而不是 -1 吗? + +### Java 循环 + +循环使你能够控制程序的执行流程。迭代在编程中很常见,无论你使用 while 循环、do while 循环还是无限循环,了解循环的工作原理都是至关重要的。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/java-loops + +作者:[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 + From d563a36199da8e039786152f2d7c9e330ab7f80e Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 28 Jan 2023 08:54:53 +0800 Subject: [PATCH 245/357] translating --- ...⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index d12b5b3c11..faa89b2497 100644 --- 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 @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/linux-file-manager-spacefm" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 2358c948c2654b0159d9e9fc218edc4c416be790 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 28 Jan 2023 09:34:45 +0800 Subject: [PATCH 246/357] RP @onionstalgia https://linux.cn/article-15486-1.html --- ... 4 key differences between Twitter and Mastodon.md | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) rename {translated/talk => published}/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md (65%) diff --git a/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/published/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md similarity index 65% rename from translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md rename to published/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md index 6b354b93fb..8bac69128c 100644 --- a/translated/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md +++ b/published/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md @@ -3,50 +3,52 @@ [#]: author: "Don Watkins https://opensource.com/users/don-watkins" [#]: collector: "lkxed" [#]: translator: "onionstalgia" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15486-1.html" Twitter 和 Mastodon 的四个关键区别 ====== -Mastodon并不是一家公司。所有 Mastodon 实例都由各自所属服务器的贡献者负责支持维护的。以下是它其他的一些优势。 +![][0] -社交媒体并不总是社交性的,有时我们还需要足够的推动力来改变我们工作和阅读的内容。我在 2008 年开始使用 Twitter 作为 RSS 阅读器的替代品,这彻底颠覆了我那时的阅读和学习方式。世界各地的教育家和自由与开放源码(FOSS)倡导者的推文让我了解并参与到一个无与伦比的学习网络中。但这在过去的六年间,事情发生了变化,最近主导和形塑我阅读内容更多是由算法驱动的,而不是出于我个人的兴趣和选择。在几年前的 Opensource.com 记者编辑碰头会中,[Seth Kenlon][1] 建议我试试 [Mastodon][2]。于是我在 2019 年加入了 [Fosstodon][3]。Fosstodon 是一个专为喜欢自由和开源软件的同好们搭建的实例。 +> Mastodon 并不是一家公司。所有 Mastodon 实例都由各自所属服务器的贡献者负责支持维护的。以下是它的一些其他优势。 + +社交媒体并不总是社交性的,有时我们还需要足够的推动力来改变我们工作和阅读的内容。我在 2008 年开始使用 Twitter 作为 RSS 阅读器的替代品,这彻底颠覆了我那时的阅读和学习方式。世界各地的教育家和自由与开放源码(FOSS)倡导者的推文让我了解并参与到一个无与伦比的学习网络中。但这在过去的六年间,事情发生了变化,以及最近它的所有权发生了变化,造成我阅读的内容更多是由算法驱动的,而不是出于我个人的兴趣和选择。在几年前的 Opensource.com 记者编辑碰头会中,[Seth Kenlon][1] 建议我试试 [Mastodon][2]。于是我在 2019 年加入了 [Fosstodon][3]。Fosstodon 是一个专为喜欢自由和开源软件的同好们搭建的实例。 ### Mastodon 与 Twitter 对比 -作为一个墨守成规的人,改变对我来说并不容易,尽管 Twitter 变得越来越让人厌倦,我还一直在使用。可是到了 2022 年的春天,Twitter 的出售危机让我重新考虑使用 Fosstodon了。 +作为一个墨守成规的人,改变对我来说并不容易,尽管 Twitter 变得越来越让人厌倦,我还一直在使用。可是到了 2022 年的春天,Twitter 的出售危机让我重新考虑使用 Fosstodon 了。 -### 1. 收藏而不是点赞 +### 1、收藏而不是点赞 -Mastodon 的界面与 Twitter 很相似。但在 Mastodon上,你不是「点赞」一个帖子,而是通过点击帖子下方的星标来「收藏」一个帖子。 +Mastodon 的界面与 Twitter 很相似。但在 Mastodon上,你不是“点赞”一个帖子,而是通过点击帖子下方的星标来“收藏”一个帖子。 ![Favorite button][4] -### 2. 分享帖子 +### 2、分享帖子 -在 Twitter 上,重新分享是「转推」(retweet),但在Mastodon,它是「转嘟」(boost)。你可以点击帖子下方的双箭头图标来转嘟。 +在 Twitter 上,重新分享是“转推retweet”,但在 Mastodon,它是“转嘟boost”。你可以点击帖子下方的双箭头图标来转嘟。 ![Boost button][5] -### 3. Mastodon 实例 +### 3、Mastodon 实例 -任何人都可以运行一个 Mastodon 实例,这让不同的实例上发展出了独特的社区(类似在 Twitter 上围绕特定标签形成的社区,不过 Mastodon 也有标签),有些实例有一套独特的规则。举个例子,和我以前的社交网络不同,Fosstodon 上采取了内容审核制度。最初这让我觉得有些严格,我发了一个与自由与开放源码软件无关的帖子,然后帖子就被删除了。我被告知的删除原因是,我没有给帖子打上 "内容警告"。这惹怒了我,于是我尝试寻找别的实例,发现了几个更符合我胃口的。其中一个是 [Mastodon.social][6],另一个是 [Scholar.social][7],前者是一个泛用的实例,没有预设的发帖主题,后者则是一个学术专用的实例。当然,他们也都制定有严格的行为规范。 +任何人都可以运行一个 Mastodon 实例,这让不同的实例上发展出了独特的社区(类似在 Twitter 上围绕特定标签形成的社区,不过 Mastodon 也有标签),有些实例有一套独特的规则。举个例子,和我以前的社交网络不同,Fosstodon 上采取了内容审核制度。最初这让我觉得有些严格,我发了一个与自由与开放源码软件无关的帖子,然后帖子就被删除了。我被告知的删除原因是,我没有给帖子打上 “内容警告”。这惹怒了我,于是我尝试寻找别的实例,发现了几个更符合我胃口的。其中一个是 [Mastodon.social][6],另一个是 [Scholar.social][7],前者是一个泛用的实例,没有预设的发帖主题,后者则是一个学术专用的实例。当然,他们也都制定有严格的行为规范。 每个实例都有规则,虽然在表述上略有不同,但都清楚地说明了可以接受和不可接受的行为。Fosstodon 公布了它的 [行为规范][8],确立了站点的规则和预期。 -### 4. 开源社交网络 +### 4、开源社交网络 -如果你也想运行自己的 Mastodon 实例或协助开发一个,好消息是,Mastodon 是开源的。它使用 AGPLv3 许可证,它的源代码可以在 [Git仓库][9] 获得。Mastodon 支持与使用 [ActivityPub][10] 协议的世界各地的服务器间通信。 +如果你也想运行自己的 Mastodon 实例或协助开发一个,好消息是,Mastodon 是开源的。它使用 AGPLv3 许可证,它的源代码可以在 [Git 仓库][9] 获得。Mastodon 使用 [ActivityPub][10] 协议与世界各地的服务器通信。 -Mastodon 不是互联网上的单一的网站,而是一系列横跨全球并相互通信的网站们。这个联邦网络被称为 「联邦宇宙」(Fediverse)。不像其他社交网站有单一的所有者,任何人都可以在服务器上运行Mastodon 或者其他 ActivityPub 协议网站。 +Mastodon 不是互联网上的单一的网站,而是一系列横跨全球并相互通信的网站们。这个联邦网络被称为 “联邦宇宙Fediverse”。不像其他社交网站有单一的所有者,任何人都可以在服务器上运行 Mastodon 或者其他 ActivityPub 协议网站。 从用户的角度来看,这一开始时其实并不重要。你可以在任何 Mastodon 实例上注册,然后连接到其余所有的实例。 不过,这种分布式设计是有其好处的。如果你碰见一个实例上的社区内容你不想看,你可以从屏蔽该实例中的某个用户,或者屏蔽整个实例。 -过去的一个月里,我又回到了 Fosstodon,主要还是因为我热衷开源。我很享受在 Fosstodon 上分享开源内容,而Fosstodon 上的其他用户也都能乐于看到关于自由和开源软件的帖子。当我有一些内容不适合在 Fosstodon 上分享时,我会分享到 Scholar.social 或者 Mastodon.social 上。 +过去的一个月里,我又回到了 Fosstodon,主要还是因为我热衷开源。我很享受在 Fosstodon 上分享开源内容,而 Fosstodon 上的其他用户也都能乐于看到关于自由和开源软件的帖子。当我有一些内容不适合在 Fosstodon 上分享时,我会分享到 Scholar.social 或者 Mastodon.social 上。 不是所有的实例都有关注的主题,即便是那些有主题的实例,主题常常也是仅作参考,而不是严格作为删帖的依据。如果你有特定的兴趣,也许就能找到一个围绕这个话题建立的社区,然后马上就能收获及时的关注。当然,你也依然能够与其他实例的用户交流。 @@ -63,7 +65,7 @@ via: https://opensource.com/article/22/11/twitter-vs-mastodon 作者:[Don Watkins][a] 选题:[lkxed][b] 译者:[onionstalgia](https://github.com/onionstalgia) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -79,3 +81,4 @@ via: https://opensource.com/article/22/11/twitter-vs-mastodon [8]: https://hub.fosstodon.org/coc/ [9]: https://github.com/mastodon/mastodon [10]: https://en.wikipedia.org/wiki/ActivityPub +[0]: https://img.linux.net.cn/data/attachment/album/202301/28/093152q9c5yeo9dyebp2mj.jpg \ No newline at end of file From 47911055a04ef0125effb8dc693a14d9cfcca054 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 28 Jan 2023 11:41:19 +0800 Subject: [PATCH 247/357] ATRP @wxy https://linux.cn/article-15487-1.html --- ...1111.4 ⭐️⭐️ Drop swap for zram on Linux.md | 194 ++++++++++++++++++ ...1111.4 ⭐️⭐️ Drop swap for zram on Linux.md | 191 ----------------- 2 files changed, 194 insertions(+), 191 deletions(-) create mode 100644 published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md delete mode 100644 sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md diff --git a/published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md b/published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md new file mode 100644 index 0000000000..16f7e92bcb --- /dev/null +++ b/published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md @@ -0,0 +1,194 @@ +[#]: subject: "Drop swap for zram on Linux" +[#]: via: "https://opensource.com/article/22/11/zram-swap-linux" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15487-1.html" + +在 Linux 上用 zram 替代传统交换空间 +====== + +![][0] + +> zram 是一个用于创建内存压缩缓存的工具,特别是可以用作交换空间。 + +我在我的电脑上花了很多时间(我是说工作),我发现了很多有趣的东西。其中最近引起我注意的是 `zram0` 设备。我是在几个月前写一篇文章时第一次注意到它,它显示在 `lsblk` 命令的输出中: + +``` +# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS +sda 8:0 0 931.5G 0 disk +├─sda1 8:1 0 600M 0 part +[...] +zram0 252:0 0 8G 0 disk [SWAP] +``` + +它被识别为交换空间,这就是首先引起我的好奇心的原因,所以我做了一些研究。zram 最初被称为 “压缩缓存compcache”,即 “压缩的高速缓存”。事实证明,zram 是一个用于创建内存内压缩缓存的工具,特别是作为交换空间使用。 + +但为什么呢? + +当我开始研究 zram 时,我只发现了几篇关于将 zram 用于交换空间的基础文章。起初,这对我来说似乎有点违反直觉。毕竟,如果你的内存快用完了,你把页面交换到内存中的虚拟驱动器中,有什么好处呢? + +然后我找到了 Fedora 项目的维基页面,它提议使用 [zram 交换空间][1]swap-on-zram。该建议说:“交换是有用的,除了它的速度很慢。zram 是一个使用了压缩的内存驱动器。在启动时创建一个 zram 交换空间,并且不再使用默认的交换分区。” + +该页面的其余部分是关于它的细节、好处、副作用和反馈。 + +### Linux 上用于交换空间的 zram + +使用 zram 作为交换空间,与常规的基于分区或基于文件的交换空间做的事情相同。当内存压力过大时,一些最近使用最少的数据会被移到交换空间。平均来说,它会被压缩到其原始大小的 50% 左右,并被放置在内存的 zram 空间中。这比将这些内存页存储在硬盘上要快得多,并可以释放出它所使用的内存用于其他用途。 + +### 节省交换空间 + +我试图找到关于配置多少交换空间或 zram 交换空间的总结建议。这使我重新回顾了交换空间的设置,以及我之前的文章《[现代 Linux 系统的正确交换空间是多少?][2]》。就我所知,从 RHEL 和 Fedora 的最新文档来看,推荐的交换空间数量并没有改变。不过,该文档忽略了 zram 的使用。 + +然而,在不使用 zram 的旧版 Linux 或 zram 被禁用的情况下,之前文章中的表格仍然为交换空间的分配提供了一个好的起点。 + +我找到的关于 zram 功能的文档在 zram 如何根据内存大小分配空间,以及分配给 zram 交换空间的数量方面是不一致的。 + +由于缺乏权威性的文档,我进行了一些实验来凭经验确定用于分配 zram 交换空间的算法。我为此使用了我自己的物理和虚拟系统。结果很有趣,与我迄今为止发现的任何文档都不一致。 + +在所有足够大的系统上,zram 的默认大小是 8GB,但在内存较小的主机上通常会大大减少。在我用于测试的一台虚拟机(VM)上,可以访问 4GB 的内存,zram 的虚拟交换空间被分配为 3.8GB。我的一台旧戴尔电脑拥有 8GB 的内存,zram 被设置为 7.6GB。当内存减少到 2GB 时,zram 就减少到 1.9GB。 + +我拥有的所有内存超过 8GB 的物理和虚拟主机都显示正好是 8GB 的 zram。这包括我拥有 64GB 内存的主工作站和其他拥有 16GB 或 32GB 内存的主机。 + +基于这几个数据点,我可以得出这样的结论:目前的默认设置是最多 8GB 的 zram,而在 8GB 或以下的主机上,zram 占内存的 95%。 + +我读过一些文章,其中提到了 zram 交换空间的其他大小,甚至高达 100% 的内存,但这些似乎都是理论上的,而不是现实。 + +你的发行版可能不同,但这里是 Fedora 和类似发行版的实际 zram 交换空间的分配情况: + +- 内存 ⇐ 8 GB:0.95 × 内存 +- 内存 > 8 GB:8 GB + +请注意,zram 交换空间大小的算法并没有基于对任何给定的现实世界的系统或应用程序的 “最佳” 交换大小的建议。这种 zram 交换空间的分配是一种相当概率性的方法,它应该在广泛的 Linux 主机上运行良好。然而,最大的 zram 交换空间大小被配置为 8GB,而且我一直推荐 8GB 作为传统交换空间的最大容量,我想我可以说它反映了 zram 交换空间的最佳大小。 + +### 管理 zram 交换空间 + +zram 的默认值保存在 `/usr/lib/systemd/zram-generator.conf` 配置文件中。以下是我的一个测试虚拟机,分配了 5097GB 的内存。 + +``` +# cat /usr/lib/systemd/zram-generator.conf +# This config file enables a /dev/zram0 device with the default settings: +# - size - same as available RAM or 8GB, whichever is less +# - compression - most likely lzo-rle +# +# To disable, uninstall zram-generator-defaults or create empty +# /etc/systemd/zram-generator.conf file. +[zram0]zram-size= min(ram, 8192) +``` + +你可以在 `zram-generator.conf` 配置文件的最后一行改变默认的 zram 交换空间大小。但我建议不要这样做,除非你能明确说明这样做的原因,并在你做任何改变后测试你的结果。像 Linux 中的许多其他配置默认值一样,zram 的默认值已经被很好地测试过了,适合大多数使用情况。 + +### 监控 zram + +可以使用 `zramctl` 工具来查看 zram 的当前状态。 + +``` +# zramctl +NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT +/dev/zram0 lzo-rle       4.8G   4K   80B   12K       4[SWAP] +``` + +传统的 `swapon` 命令也可以用来查看交换,包括作为交换使用的 zram: + +``` +# swapon --show +NAME       TYPE      SIZE USED PRIO +/dev/zram0 partition 4.8G   0B  100 +``` + +需要注意的是,`zramctl` 在不包含数据时不报告 zram,所以结果会包含空输出。而像 `lsblk`、`swapon`、 `top`、`free`、`htop` 等工具,即使不包含数据,也会显示 zram。 + +### 停用 zram + +`swapoff -a` 命令会关闭 zram 交换空间以及用作交换的传统 HDD 或 SSD 存储。`swapon -a` 命令在 zram 为空时不显示它,可以使用 `zramctl /dev/zram0` 代替。 + +``` +# swapon --show# lsblk +NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS +sda             8:00  120G  0 disk +├─sda1          8:10    1G  0 part /boot/efi +├─sda2          8:20    1G  0 part /boot +└─sda3          8:30  118G  0 part +  ├─vg01-root 253:00   10G  0 lvm  / +  ├─vg01-swap 253:10    3G  0 lvm  [SWAP] +  ├─vg01-usr  253:10   30G  0 lvm  /usr +  ├─vg01-home 253:20   10G  0 lvm  /home +  ├─vg01-var  253:30   30G  0 lvm  /var +  └─vg01-tmp  253:40   10G  0 lvm  /tmp +sr0            11:01 1024M  0 rom +zram0         252:00    0B  0 disk +# zramctl## zramctl /dev/zram0 +NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT +/dev/zram0 lzo-rle         0B   0B    0B    0B       4 +``` + +注意,`/dev/zram0` 在这些命令中并没有显示为交换空间,直到它被用于该目的。这给我造成了一些困惑,直到我的实验表明这是事实。 + +### 创建 zram 交换空间 + +zram 本身已经存在了大约 20 年,但只是在过去的一两年里才在一些发行版上作为交换空间使用。你的一些或所有主机上当前的 Linux 环境可能没有用 zram 创建交换空间。如果是这种情况,它可以很容易地被补救。 + +对于 Fedora 32,它是默认使用 zram 交换空间之前的最后一个版本,它只需要三个简单的命令。 + +首先,验证是否存在 `zram-swap.service` 文件,它作为 `zram` RPM 包的一部分安装: + +``` +# systemctl status zram-swap +● zram-swap.service - Enable compressed swap in memory using zram +     Loaded: loaded (/usr/lib/systemd/system/zram-swap.service; disabled; vendor preset: disabled) +     Active: inactive (dead) +``` + +接下来,安装 `zram-generator-defaults` 和 `zram-generator` 软件包: + +``` +# dnf install zram-generator-defaults zram-generator +``` + +启用并启动 `zram-swap` 服务: + +``` +# systemctl enable zram-swap.service# systemctl start zram-swap.service +``` + +然后验证 `zram0` 是否存在并被用作交换空间: + +``` +# lsblk +NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT +sda             8:00  120G  0 disk +├─sda1          8:10    2G  0 part /boot +└─sda2          8:20  118G  0 part +  ├─vg01-root 253:00   10G  0 lvm  / +  ├─vg01-swap 253:10    3G  0 lvm  [SWAP] +  ├─vg01-usr  253:20   35G  0 lvm  /usr +  ├─vg01-tmp  253:30   15G  0 lvm  /tmp +  ├─vg01-var  253:40   35G  0 lvm  /var +  └─vg01-home 253:50   20G  0 lvm  /home +sr0            11:01 1024M  0 rom +zram0         252:00  7.5G  0 disk [SWAP] +``` + +### 用 zram 改进交换空间 + +这就是全部内容了。在 Fedora 上这很容易。不同的发行版可能也一样简单,只是软件包名称和命令的细节可能不同。在你的电脑上试试 zram 交换空间吧。在我的下一篇文章中,我将进一步演示一些 zram 选项。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/11/zram-swap-linux + +作者:[David Both][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/dboth +[b]: https://github.com/lkxed +[1]: https://fedoraproject.org/wiki/Changes/SwapOnZRAM +[2]: https://opensource.com/article/19/2/swap-space-poll +[0]: https://img.linux.net.cn/data/attachment/album/202301/28/113826twvkkbrso9ws2kss.jpg \ No newline at end of file diff --git a/sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md b/sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md deleted file mode 100644 index df8dd3e3fa..0000000000 --- a/sources/tech/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md +++ /dev/null @@ -1,191 +0,0 @@ -[#]: subject: "Drop swap for zram on Linux" -[#]: via: "https://opensource.com/article/22/11/zram-swap-linux" -[#]: author: "David Both https://opensource.com/users/dboth" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Drop swap for zram on Linux -====== - -Zram is a tool for creating an in-RAM compressed cache, specifically for use as swap space. - -I spend a lot of time playing (I mean working) on my computers, and I've found a lot of interesting things. One that has most recently come to my attention is the `zram0` device. I first noticed it when working on one of my Opensource.com articles several months ago. It showed up in the output from the `lsblk` command: - -``` -# lsblk -NAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS -sda             8:00 931.5G  0 disk -├─sda1          8:10   600M  0 part -[...] -zram0         252:00     8G  0 disk [SWAP] -``` - -It's identified as swap space, which is what first piqued my curiosity, so I did some exploration. Zram was originally called "compcache," which stands for "compressed cache." It turns out that zram is a tool for creating an in-RAM compressed cache, specifically for use as swap space. - -But Why? - -When I began researching zram, all I found were a couple of basic articles about using zram for swap space. At first, this seemed a bit counterintuitive to me. After all, if you're running out of RAM and you swap pages into a virtual drive in RAM, what's gained? - -I then found the Fedora Project wiki page that proposed the use of [Swap on zram][1]. The proposal says: "Swap is useful, except when it's slow. zram is a RAM drive that uses compression. Create a swap-on-zram during start-up. And no longer use swap partitions by default." - -The rest of the page is about details, benefits, side effects, and feedback. - -### Zram for swap space on Linux - -Using zram for swap space is intended to do the same thing as regular partition-based or file-based swap space. When memory pressure becomes too great, some of the least recently used data is moved to swap space. On average, it's compressed to about 50% of its original size, and placed in zram space in RAM. This is much faster than storing those memory pages on a hard drive and frees up the RAM it was using for other use. - -### Saving on swap - -I tried to find revised recommendations for how much swap or zram swap to configure. This led me back to a reassessment of swap, and my previous article, [What's the right amount of swap space for a modern Linux system?][2] As far as I can tell from the most current documentation for RHEL and Fedora, the recommended amount of swap space has not changed. That documentation, however, ignores the use of zram. - -However, the tables in that previous article still provide a good starting point for swap space allocation when using older releases of Linux that don't use zram or in cases where zram has been disabled. - -The documents I found for the Zram feature are inconsistent in terms of how zram is allocated with respect to RAM size, and the amount of space allocated to zram swap. - -Due to the lack of authoritative documentation, I performed some experiments to empirically determine the algorithm used to allocate zram swap. I used my own physical and virtual systems for this. The results are interesting and do not match any documentation I've so far found. - -The default size of zram is 8 GB on all systems large enough to support that, but it's typically reduced significantly on hosts with small amounts of RAM. On one virtual machine (VM) I use for testing, with access to 4 GB of RAM, the zram virtual swap space is allocated to 3.8 GB. One old Dell I have contains 8 GB of RAM, and the zram is set to 7.6 GB. When RAM is reduced to 2 GB, Zram is reduced to 1.9 GB. - -All physical and virtual hosts I have with more than 8 GB of RAM show exactly 8 GB of zram. This includes my primary workstation with 64 GB of RAM and other hosts with 16 GB or 32 GB of RAM. - -Based on these few data points, I can draw the conclusion that the current default settings are for 8 GB of zram at most, and for zram to be 95% of RAM on hosts with 8 GB or less. - -I have read a number of articles that mention other sizes for zram swap, even up to 100% of RAM, but those all seem to be theoretical rather than reality. - -Your distribution may be different, but here are the actual zram swap allocations for Fedora and similar distributions: - -- **RAM ⇐ 8 GB:** 0.95 × RAM -- **RAM > 8 GB:** 8 GB - -Be aware that the zram swap size algorithm is not based on any recommendations for the "best" swap size for any given real-world system or application. This zram swap allocation is a rather probabilistic approach to what should work well on a wide range of Linux hosts. However, the fact that the maximum zram swap size is configured for 8 GB and the fact that I have always recommended 8 GB as the maximum amount of traditional swap, I think I can say it's reflective of the optimum sizes for zram swap. - -### Managing zram swap - -Zram defaults are stored in the `/usr/lib/systemd/zram-generator.conf` configuration file. The following is from one of my test VMs with 5097 GB of RAM allocated. - -``` -# cat /usr/lib/systemd/zram-generator.conf -# This config file enables a /dev/zram0 device with the default settings: -# - size - same as available RAM or 8GB, whichever is less -# - compression - most likely lzo-rle -# -# To disable, uninstall zram-generator-defaults or create empty -# /etc/systemd/zram-generator.conf file. -[zram0]zram-size= min(ram, 8192) -``` - -You can change the default Zram swap size in the last line of the `zram-generator.conf` configuration file. I recommend against doing that, unless you can definitively show a reason for doing so, and test your results once you make any changes. Like many other configuration defaults in Linux, the zram ones have been well-tested and are appropriate for most use cases. - -### Monitor zram - -The zramctl utility can be used to view the current state of zram. - -``` -# zramctl -NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT -/dev/zram0 lzo-rle       4.8G   4K   80B   12K       4[SWAP] -``` - -The traditional `swapon` command can also be used to view swap including zram used as swap: - -``` -# swapon --show -NAME       TYPE      SIZE USED PRIO -/dev/zram0 partition 4.8G   0B  100 -``` - -One thing to be aware of is that `zramctl` does not report on zram when it contains no data, so the results contain null output. Tools like `lsblk`, `swapon`, `top`, `free`, `htop`, and so on, do show zram even when it contains no data. - -### Deactivate zram - -The `swapoff -a` command turns off `zram` swap as well as traditional HDD or SSD storage used as swap. The `swapon -a` command does not show zram when it is empty. Use `zramctl /dev/zram0` instead. - -``` -# swapon --show# lsblk -NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS -sda             8:00  120G  0 disk -├─sda1          8:10    1G  0 part /boot/efi -├─sda2          8:20    1G  0 part /boot -└─sda3          8:30  118G  0 part -  ├─vg01-root 253:00   10G  0 lvm  / -  ├─vg01-swap 253:10    3G  0 lvm  [SWAP] -  ├─vg01-usr  253:10   30G  0 lvm  /usr -  ├─vg01-home 253:20   10G  0 lvm  /home -  ├─vg01-var  253:30   30G  0 lvm  /var -  └─vg01-tmp  253:40   10G  0 lvm  /tmp -sr0            11:01 1024M  0 rom -zram0         252:00    0B  0 disk -# zramctl## zramctl /dev/zram0 -NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT -/dev/zram0 lzo-rle         0B   0B    0B    0B       4 -``` - -Note that `/dev/zram0` doesn't show up in these commands as swap space until it's being used for that purpose. This caused me some confusion until my experiments showed it to be the case. - -### Creating Zram Swap - -Zram itself has been around for about 20 years, but has only been in use as swap space on some distributions for the last year or two. The current Linux installation on some or all of your hosts may not have been created with zram for swap. If that's the case, it can be easily remedied. - -For Fedora 32, the last release prior to the default use of zram for swap, it only takes three easy commands. - -First, verify the presence of the `zram-swap.service` file, installed as part of the `zram` RPM package. - -``` -# systemctl status zram-swap -● zram-swap.service - Enable compressed swap in memory using zram -     Loaded: loaded (/usr/lib/systemd/system/zram-swap.service; disabled; vendor preset: disabled) -     Active: inactive (dead) -``` - -Next, install the `zram-generator-defaults` and `zram-generator` packages. - -``` -# dnf install zram-generator-defaults zram-generator -``` - -Enable and start the zram-swap service: - -``` -# systemctl enable zram-swap.service# systemctl start zram-swap.service -``` - -And then verify that `zram0` exists, and is being used as swap space: - -``` -# lsblk -NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT -sda             8:00  120G  0 disk -├─sda1          8:10    2G  0 part /boot -└─sda2          8:20  118G  0 part -  ├─vg01-root 253:00   10G  0 lvm  / -  ├─vg01-swap 253:10    3G  0 lvm  [SWAP] -  ├─vg01-usr  253:20   35G  0 lvm  /usr -  ├─vg01-tmp  253:30   15G  0 lvm  /tmp -  ├─vg01-var  253:40   35G  0 lvm  /var -  └─vg01-home 253:50   20G  0 lvm  /home -sr0            11:01 1024M  0 rom -zram0         252:00  7.5G  0 disk [SWAP] -``` - -### Improve swap with zram - -That's all there is to it. It was easy with Fedora. Different distributions will likely be just as easy, with some possible different details in the package names and commands. Give zram swap a try on your computer. In my next article, I'll demonstrate some further zram options. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/11/zram-swap-linux - -作者:[David Both][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/dboth -[b]: https://github.com/lkxed -[1]: https://fedoraproject.org/wiki/Changes/SwapOnZRAM -[2]: https://opensource.com/article/19/2/swap-space-poll From 55e3dd2fea605f43133383c5b9fb6c804d980e0f Mon Sep 17 00:00:00 2001 From: onionstalgia <35531128+onionstalgia@users.noreply.github.com> Date: Sat, 28 Jan 2023 12:11:28 +0800 Subject: [PATCH 248/357] translating --- sources/talk/20220919 I got my first pull request merged!.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220919 I got my first pull request merged!.md b/sources/talk/20220919 I got my first pull request merged!.md index a1d2a7c32a..5a7350d66e 100644 --- a/sources/talk/20220919 I got my first pull request merged!.md +++ b/sources/talk/20220919 I got my first pull request merged!.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/9/first-pull-request-merged" [#]: author: "Oluwaseun https://opensource.com/users/jhhornn" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "onionstalgia" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From e26f57b0c100afbd552b647fd959fe66cd2948a0 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sat, 28 Jan 2023 12:49:00 +0800 Subject: [PATCH 249/357] translated --- ...alyse Sentiments Using Machine Learning.md | 113 +++++++++++------- 1 file changed, 71 insertions(+), 42 deletions(-) diff --git a/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md b/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md index 7f83a0b380..a9955e0fbf 100644 --- a/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md +++ b/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md @@ -7,27 +7,30 @@ [#]: publisher: " " [#]: url: " " -How to Analyse Sentiments Using Machine Learning +如何使用机器学习来分析情感 ====== -This article will help you understand the concept of sentiment analysis and learn how it is done. It uses different machine learning algorithms for sentiment analysis, and then compares them to decide which one is the best for the particular problem described here. -Sentiment analysis is a major area in the field of natural language processing. A sentiment is any opinion or feeling that we have about an event, a product, a situation or anything else. Sentiment analysis is the field of research in which human sentiments are automatically extracted from the text. This field started evolving in the early 90s. +>本文将帮助你理解什么是 情感分析sentiment analysis,并且你能了解如何使用机器学习进行情感分析。我们使用了不同的机器学习算法进行情感分析,然后将各个算法的准确率结果进行比较,以确定哪一种算法最适合这个问题。 -This article will help you understand how machine learning (ML) can be used for sentiment analysis, and compare the different ML algorithms that can be used. It does not try to improve the performance of any of the algorithms or methods. +情感分析是自然语言处理(NLP)中的一个重要的内容。情绪指的是我们对某一事件、物品、情况或事物产生的感觉。情感分析是一个从文本中自动提取人类情感的研究领域。它在上世纪 90 年代初才慢慢地开始发展起来。 -In today’s fast paced world, everything is online and everyone can post their views. A few negative online comments may hurt a company’s reputation and, thereby, its sales. Now that everything’s online, everyone can post their views and opinions. It becomes very important for companies to go through these to understand what their customers really want. But since there is so much data, it cannot be gone through manually. This is where sentiment analysis comes in. +本文将让你明白如何将机器学习 (ML) 用于情感分析,并比较不同机器学习算法的结果。本文的目标不在于研究提高算法性能的方法。 -Let us now start developing a model to do a basic sentiment analysis. +如今,我们生活在一个快节奏的社会中,所有的商品都能在网上购买到,每个人都可以在网上发表自己的评论。而一些商品的负面网络评论可能会损害公司的声誉,从而影响公司的销售额。因此对公司来说,通过商品评论来了解客户真正想要什么变得非常重要。但是这些评论数据太多了,无法一个个地手动查看所有的评论。这就是情绪分析诞生的缘由。 -### Let’s start! +现在,就让我们看看如何用机器学习开发一个模型,来进行基本的情绪分析吧。 -The first step is to select a data set. You can choose from any publicly available reviews or comments such as tweets or movie reviews. The two columns that should definitely be there in the data set are the label and the actual piece of text. +### 现在就开始吧! -Figure 1 shows a small sample of how the data looks. +#### 获取数据 + +第一步是选择一个数据集。你可以从任何公开的评论中进行选择,例如推文或电影评论。数据集中包含两列:标签和实际的文本段。 + +下图显示了我们选取的部分数据集。 ![Figure 1: Data sample][1] -Now we need to import the required libraries: +接下来,我们导入所需的库: ``` import pandas as pd @@ -37,29 +40,33 @@ import re import string ``` -As you can see in the above code, we have imported NumPy and Pandas for processing the data. We will look at the other imported libraries when we use them. +我们使用 NumPy 和 Pandas 库来处理数据。至于其他库,我们会在使用到它们时再说明。 -Now that the data set is ready and the libraries are imported, we need to bring the former into our project. The Pandas library is used for this purpose. We bring the data set into the Pandas data frame using the following line of code: +数据集已准备就绪,并且已导入所需的库。接着,我们需要用 Pandas 库将数据集读入到我们的项目中去。我们使用以下的代码将数据集读入 Pandas 数据帧(DataFrame)类型: ``` sentiment_dataframe = pd.read_csv(“/content/drive/MyDrive/Data/sentiments - sentiments.tsv”,sep = ‘\t’) ``` -Now that we have the data set in our project, let us manipulate it so that our algorithm can understand the features better. We begin by giving names to our columns in the data set. This is done by using the line of code given below: +#### 数据处理 + +现在我们的项目中已经导入好数据集了。然后,我们要对数据进行处理,以便算法可以更好地理解数据集的特征。我们首先为数据集中的列命名,通过下面的代码来完成: ``` sentiment_dataframe.columns = [“label”,”body_text”] ``` -We then assign numerical labels to the classes — negative is replaced with 1 and positive is replaced with 0. Figure 2 shows how the data frame looks at this stage. +然后,我们对 `label` 列进行数值化:`negative` 的评论替换为 1,`positive` 的评论替换为 0。下图显示了经过基本修改后的 `sentiment_dataframe` 的值。 ![Figure 2: Data frame with basic modifications][2] -The next step is the preprocessing of the data. This is a very important step as it helps us to convert string/text data into numerical data (machine learning algorithms can understand/process numerical data and not text). Also, the redundant and useless data needs to be removed as it may taint our training model. We remove the noisy data, missing values and other non-consistent data in this step. +#### 准备好特征值、目标值 -We will add the features text length and punctuation count in the data frame specifically for this application. We will also do the stemming, i.e., we will convert all similar words (like ‘give’, ‘giving’, etc) into a single form. Once this is done, we divide the data set into two — X and Y — where X is the features and Y is the prediction class. +下一步是数据的预处理。这是非常重要的一步,因为机器学习算法只能理解/处理数值形数据,而不能理解文本,所以此时要进行特征抽取,将字符串/文本转换成数值化的数据。此外,还需要删除冗余和无用的数据,因为这些数据可能会污染我们的训练模型。我们在这一步中去除了噪声数据、缺失值数据和不一致的数据。 -This is done using the following piece of code. Figure 3 shows the data frame after these steps are taken. +对于情感分析,我们在数据帧中添加特征文本的长度和标点符号计数。我们还要进行词干提取,即将所有相似词(如“give”、“giving”等)转换为单一形式。完成后,我们将数据集分为两部分:特征值 X 和 目标值 Y。 + +上述内容是使用以下代码完成的。下图显示了执行这些步骤后的数据帧。 ![Figure 3: Data frame after the division of the data set][3] @@ -68,7 +75,7 @@ def count_punct(text): count = sum([1 for char in text if char in string.punctuation]) return round(count/(len(text) - text.count(“ “)),3)*100 - tokenized_tweet = sentiment_dataframe[‘body_text’].apply(lambda x: x.split()) +tokenized_tweet = sentiment_dataframe[‘body_text’].apply(lambda x: x.split()) stemmer = PorterStemmer() tokenized_tweet = tokenized_tweet.apply(lambda x: [stemmer.stem(i) for i in x]) for i in range(len(tokenized_tweet)): @@ -80,43 +87,53 @@ X = sentiment_dataframe[‘body_text’] y = sentiment_dataframe[‘label’] ``` -We now need to convert the string into numerical data. We use a count vectorizer for this purpose; that is, we get the counts of each word and convert it into a vector. +#### 特征工程:文本特征处理 -After this, features such as length of text and punctuation count in the dataframe, i.e., X, are calculated. A sample of X is shown in Figure 4. +我们接下来进行文本特征抽取,对文本特征进行数值化。为此,我们使用计数向量器(CountVectorizer),它返回词频矩阵。 + +在此之后,计算数据帧 X 中的文本长度和标点符号计数等特征。X 的示例如下图所示。 ![Figure 4: Sample of final features][4] -Now the data is ready for training. The next step is to determine which algorithms we are going to use for training our model. As has been mentioned before, we are going to try several algorithms and determine the best one for sentiment analysis. Since we are basically trying to do binary classification, the following algorithms can be used: +#### 使用的机器学习算法 -* K-nearest neighbors (KNN) -* Logistic regression -* Support vector machines (SVMs) -* Stochastic gradient descent -* Naive Bayes -* Decision tree -* Random Forest +现在数据已经可以训练了。下一步是确定使用哪些算法来训练模型。如前所述,我们将尝试多种机器学习算法,并确定最适合情感分析的算法。由于我们打算对文本进行二元分类,因此我们使用以下算法: -We first need to split our data set into testing and training data. This is done by using the sklearn library using the following code: +* K-近邻算法(KNN) +* 逻辑回归算法 +* 支持向量机(SVMs) +* 随机梯度下降(SGD) +* 朴素贝叶斯算法 +* 决策树算法 +* 随机森林算法 + +#### 划分数据集 + +首先,将数据集划分为训练集和测试集。使用 sklearn 库,详见以下代码: ``` from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.20, random_state = 99) ``` -We will use 20 per cent of the data for testing and 80 per cent for the training part. We will separate the data because we want to test on a new set of data whether our model is working properly or not. +我们使用 20% 的数据进行测试,80% 的数据用于训练。划分数据的意义在于对一组新数据(即测试集)评估我们训练的模型是否有效。 -Now let us start with the first model. We will try the KNN algorithm first, and use the sklearn library for this. We will first train the model and then assess its performance (all of this can be done using the sklearn library in Python itself). The following piece of code does this, and we get an accuracy of around 50 per cent. +##### K-近邻算法 + +现在,让我们开始训练第一个模型。首先,我们使用 KNN 算法。先训练模型,然后再评估模型的准确率(具体的代码都可以使用 Python 的 sklearn 库来完成)。详见以下代码,KNN 训练模型的准确率大约为 50%。 ``` from sklearn.neighbors import KNeighborsClassifier -model = KNeighborsClassifier (n_neighbors=3) +model = KNeighborsClassifier(n_neighbors=3) model.fit(X_train, y_train) model.score (X_test,y_test) 0.5056689342403629 ``` -The code is similar in the logistic regression model — we first import the function from the library, fit the model, and then test it. The following piece of code uses the logistic regression algorithm. The output shows we got an accuracy of around 66 per cent. +##### 逻辑回归算法 + +逻辑回归模型的代码十分类似——首先从库中导入函数,拟合模型,然后对模型进行评估。下面的代码使用逻辑回归算法,准确率大约为 66%。 ``` from sklearn.linear_model import LogisticRegression @@ -127,7 +144,9 @@ model.score (X_test,y_test) 0.6621315192743764 ``` -The following piece of code uses SVM. The output shows we got an accuracy of around 67 per cent. +##### 支持向量机算法 + +以下代码使用 SVM,准确率大约为 67%。 ``` from sklearn import svm @@ -138,7 +157,9 @@ model.score(X_test,y_test) 0.6780045351473923 ``` -The following piece of code uses the Random Forest algorithm, and we get an accuracy of around 69 per cent. +##### 随机森林算法 + +以下的代码使用了随机森林算法,随机森林训练模型的准确率大约为 69%。 ``` from sklearn.ensemble import RandomForestClassifier @@ -149,7 +170,9 @@ model.score(X_test,y_test) 0.6938775510204082 ``` -Next we use the Decision tree algorithm, which gives an accuracy of around 61 per cent. +##### 决策树算法 + +接下来,我们使用决策树算法,其准确率约为 61%。 ``` from sklearn.tree import DecisionTreeClassifier @@ -160,7 +183,9 @@ model.score(X_test,y_test) 0.6190476190476191 ``` -The following piece of code uses the stochastic gradient descent algorithm. The output shows that we got an accuracy of around 49 per cent. +##### 随机梯度下降算法 + +以下的代码使用随机梯度下降算法,其准确率大约为 49%。 ``` from sklearn.linear_model import SGDClassifier @@ -171,7 +196,9 @@ model.score(X_test,y_test) 0.49206349206349204 ``` -The following piece of code uses Naive Bayes. We get an accuracy of around 60 per cent. +##### 朴素贝叶斯算法 + +以下的代码使用朴素贝叶斯算法,朴素贝叶斯训练模型的准确率大约为 60%。 ``` from sklearn.naive_bayes import GaussianNB @@ -182,13 +209,15 @@ model.score(X_test,y_test) 0.6009070294784581 ``` -Now that we have checked out all the algorithms, let us graph their accuracy performance. The graph is shown in Figure 5. +#### 情感分析的最佳算法 + +接下来,我们绘制所有算法的准确率图。如下图所示。 ![Figure 5: Accuracy performance of the different algorithms][5] -As you can see, the random forest algorithm gave the best accuracy for this problem and we can conclude that it is the best fit for sentiment analysis amongst ML algorithms. We can improve the accuracy much more by getting better features, trying out other vectorising techniques, and using a better data set or newer classification algorithms. +可以看到,对于情感分析这一问题,随机森林算法有最佳的准确率。由此,我们可以得出结论,随机森林算法是所有机器算法中最适合情感分析的算法。我们可以通过处理得到更好的特征、尝试其他矢量化技术、或者使用更好的数据集或更好的分类算法,来进一步提高准确率。 -Now that random forest is seen as the best algorithm for this problem, I am going to show you a sample prediction. In Figure 6, you can see that the right predictions are being made! Do try this out to improve upon this project! +既然,随机森林算法是解决情感分析问题的最佳算法,我将向你展示一个预处理数据的样本。在下图中,你可以看到模型会做出正确的预测!试试这个来改进你的项目吧! ![Figure 6: Sample predictions made][6] @@ -198,7 +227,7 @@ via: https://www.opensourceforu.com/2022/09/how-to-analyse-sentiments-using-mach 作者:[Jishnu Saurav Mittapalli][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[chai001125](https://github.com/chai001125) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 57b62b36b15b90c966d074c21bc14f7517265c5b Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Sat, 28 Jan 2023 12:50:14 +0800 Subject: [PATCH 250/357] translated --- .../20220906 How to Analyse Sentiments Using Machine Learning.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20220906 How to Analyse Sentiments Using Machine Learning.md (100%) diff --git a/sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md b/translated/tech/20220906 How to Analyse Sentiments Using Machine Learning.md similarity index 100% rename from sources/tech/20220906 How to Analyse Sentiments Using Machine Learning.md rename to translated/tech/20220906 How to Analyse Sentiments Using Machine Learning.md From e50328a681679c670eda13b9098bc8b4bbc27fbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:20:56 +0800 Subject: [PATCH 251/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230115.0=20=E2=AD=90=EF=B8=8F=20Share=20Folder=20Bet?= =?UTF-8?q?ween=20Guest=20and=20Host=20in=20GNOME=20Boxes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...older Between Guest and Host in GNOME Boxes.md | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md diff --git a/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md new file mode 100644 index 0000000000..a6260f7349 --- /dev/null +++ b/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md @@ -0,0 +1,119 @@ +[#]: subject: "Share Folder Between Guest and Host in GNOME Boxes" +[#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Share Folder Between Guest and Host in GNOME Boxes +====== + +**Use the below steps to share a folder between host and guest in GNOME Boxes app.** + +GNOME Boxes is a front-end application to create and manage virtual machines. It is primarily compatible with the GNOME desktop. However, you can use it in other desktop environments, such as KDE Plasma and others. + +At the backend, it uses QEMU, KVM, and libvirt tech and provides an easy-to-use user interface to manage multiple virtual machines. + +If you want to learn more, you can also refer to [these guides][1] on GNOME Boxes to create virtual machines. + +In the prior articles, we have explained how to share folders in [virt-manager][2] and [VirtualBox][3]. And the following steps explain the same for GNOME Boxes. + +### How to share folder and file in GNOME Boxes + +GNOME Boxes primarily support [SPICE protocol][4] to enable remote access, sharing and many virtualization features. SPICE is one of the oldest open-source packages in the virtualization space. + +#### 1. Initial setup + +- Firstly, make sure to install the following spice packages inthe **guest system**. + +``` +sudo apt install spice-vdagent spice-webdavd #for Ubuntu-based distros +sudo dnf install spice-vdagent spice-webdavd #Fedora, RHEL, etc +pacman -S --needed spice spice-gtk spice-protocol spice-vdagent #Arch Linux (optional) +``` + +- After you install the above, **reboot** the host and guest systems. +- In the host system (for GNOME desktop), open settings and go to Sharing panel. +- **Enable Sharing** using the top toggle button. +- Then, click on File Sharing and **Enable File Sharing**. Make sure to enable the network. The password is optional. If you want to enable password-based authentication for your shared folder, enable it. + +![Enable sharing in settings][5] + +![Enable File Sharing][6] + +- Close the settings window. +- Open GNOME Boxes. Right-click on the VM and select **preferences**. +- Click on **Devices and Shares** on the preference window and click on the **[+] button** under Shared folders. +- Under **Local Folder**: Select the folder from your host you want to access inside the guest. +- **Name**: Give any name you want. This name will be visible in the guest’s file manager. +- Click Save. + +![Add a share folder in host][7] + +#### 2. Setup for guest + +- Start your guest virtual machine. +- Inside the guest virtual machine, open the file manager. If you are using a GNOME desktop, open Nautilus (i.e. Files). +- Click on **Other Locations**. you should see the “**Spice client folder**” under Networks. +- Double-click on this, and you should see the folder contents of your host system. +- Sometimes, the above folder takes some time to appear. if it is not visible, wait for 1 or 2 minutes. Refresh the file manager window via `F5`. + +![Spice client folder in guest][8] + +#### 3. Some troubleshooting + +- Furthermore, if you are getting the following error, then you need to access the path manually. + +``` +Unable to access location - HTTP Error: Could not connect: Connection refused +``` + +![error while accessing the spice client folder][9] + +- Press `CTRL+L` in the file manager to bring up the address bar. In the address bar, type the following: + +``` +dav://localhost:9843 +``` + +- And hit enter. And you should see the folder contents. The `dav` protocol is used by the SPICE server, which connects the guest and host at port 9843. + +![accessing via dav protocol][10] + +And that’s it. Now you can enjoy file sharing between guests and hosts in GNOME Boxes. + +Here’s a screenshot of the same folder accessed by the guest and host. + +![Share folder and its contents between guest and host in GNOME Boxes (sample)][11] + +If you run into any error, drop a comment below. + +[_Some references are used in this article from GitLab._][12] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/share-folder-gnome-boxes/ + +作者:[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/boxes +[2]: https://www.debugpoint.com/share-folder-virt-manager/ +[3]: https://www.debugpoint.com/share-folder-between-host-guest-virtualbox/ +[4]: https://www.spice-space.org/index.html +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-sharing-in-settings.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-File-Sharing.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-share-folder-in-host.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Spice-client-folder-in-guest.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/error-while-accessing-the-spice-client-folder.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/accessing-via-dav-protocol.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Share-folder-and-its-contents-between-guest-and-host-in-GNOME-Boxes-sample.jpg +[12]: https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/430 From 4c813ae5f53ae27075af17b7e62b6805b6e04563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:27:40 +0800 Subject: [PATCH 252/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230116.0=20=E2=AD=90=EF=B8=8F=20Meet=20ecode=20An=20?= =?UTF-8?q?Upcoming=20Modern,=20Lightweight=20Code=20Editor=20With=20a=20B?= =?UTF-8?q?rand=20New=20GUI=20Framework.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Code Editor With a Brand New GUI Framework.md | 113 ++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md diff --git a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md new file mode 100644 index 0000000000..5abb721cd2 --- /dev/null +++ b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md @@ -0,0 +1,113 @@ +[#]: subject: "Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework" +[#]: via: "https://news.itsfoss.com/ecode-editor/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework +====== + +A new exciting code editor is in the works, built on its own GUI framework. + +![Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework][1] + +If you look around for open-source code editors, a couple of promising new projects may challenge the likes of Visual Studio Code. + +Sure, that may not happen anytime soon. **But it does not hurt to be optimistic about supporting new projects.** + +We recently covered some of those options here: + +Now, I have stumbled upon another editor, "**ecode**". The project's author mentions that it takes inspiration from editors like [Lite XL][2]. + +**What's different?** + +- It is built on top of its **new GUI framework [eepp][3]** which focuses on providing a rich user interface. +- While it aims to use minimal resources, ecode's philosophy targets **modern hardware** with systems that have SSDs, high cores count, and decent GPU acceleration. +- The code editor can be compiled to run in any modern browser. However, the current focus is not on the development of the web version. + +![ecode official screenshot][4] + +That sounds good. So, let us take a look. + +> 🚧 The project is under heavy development. You should not rely on the tool for everyday tasks. + +Learn to Code - for Free | CodecademyLearn the technical skills to get the job you want. Join over 50 million people choosing Codecademy to start a new career (or advance in their current one).![][5]Codecademy![][6] + +### Features of ecode + +![ecode][7] + +[ecode][8] is a capable editor with all the essentials loaded from the start. + +Sure, it has plans to add more stuff as the development progresses. As it stands, here are some of the key highlights: + +- **Portable** +- **Syntax highlighting** +- **Terminal support** +- **Auto-completion** +- **Customizable color schemes** +- **Customizable keyboard bindings** +- **LSP Support** +- **Minimap** +- **Plugin manager** +- **Dark and light mode** +- **Various types of split views to adapt to different workflows** + +I tried the editor briefly on Linux Mint, and it sure looks like a work in progress. + +But, even in its early stages, it supports the essentials to support a wide range of languages and syntax highlights accordingly. + +![ecode options][9] + +You can customize the editor's theme quickly from a set of pre-defined themes. + +The minimap will be handy for users who write a lot of code (lengthy snippets) and need to navigate it quickly. + +The app crashed for me initially as I performed a right-click in a blank area. But, it was quickly fixed with the next version update, **0.4.1** (at the time of publishing this). So, I would say the **development progress seems promising**. + +![][10] + +Cloud IDE · Online Code Editor · CodeanywhereSave time by deploying a development environment in seconds. Collaborate, code, learn, build, and run your projects directly from your browser.![][11]Cloud IDE · Online Code Editor · CodeanywhereCodeanywhere![][12] + +### Download ecode + +You can try the [live demo][13] available to test-drive some options quickly. + +An AppImage file is available for all Linux distributions. Packages for macOS and Windows are also available. + +You can get these packages from its [GitHub releases section][14] or explore its [source code][3]. + +[Download ecode][14] + +💬 With so many promising new code editors in development, do you think we'll have a good competition to Microsoft's VS Code? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ecode-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/2023/01/ecode-first-look.png +[2]: https://itsfoss.com/lite-xl/ +[3]: https://github.com/SpartanJ/eepp/ +[4]: https://news.itsfoss.com/content/images/2023/01/ecode-official.jpg +[5]: https://www.pjtra.com/apple-touch-icon.png +[6]: https://images.codecademy.com/social/logo-codecademy-social.png +[7]: https://news.itsfoss.com/content/images/2023/01/ecode.png +[8]: https://github.com/SpartanJ/ecode +[9]: https://news.itsfoss.com/content/images/2023/01/ecode-options.png +[10]: https://news.itsfoss.com/content/images/2023/01/ecode-plugins.png +[11]: https://codeanywhere.com/apple-touch-icon.png +[12]: https://codeanywhere.com/img/backgrounds/codeanywhere-bg.jpg +[13]: https://cdn.ensoft.dev/eepp-demos/demo-fs.html?run=ecode.js +[14]: https://github.com/SpartanJ/ecode/releases/tag/ecode-0.4.1 From 249b4af4b4140c264924331892b83bc481349642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:35:30 +0800 Subject: [PATCH 253/357] =?UTF-8?q?Update=2020230116.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=20Meet=20ecode=20An=20Upcoming=20Modern,=20Lightweigh?= =?UTF-8?q?t=20Code=20Editor=20With=20a=20Brand=20New=20GUI=20Framework.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..., Lightweight Code Editor With a Brand New GUI Framework.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md index 5abb721cd2..b60dd11627 100644 --- a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md +++ b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md @@ -34,8 +34,6 @@ That sounds good. So, let us take a look. > 🚧 The project is under heavy development. You should not rely on the tool for everyday tasks. -Learn to Code - for Free | CodecademyLearn the technical skills to get the job you want. Join over 50 million people choosing Codecademy to start a new career (or advance in their current one).![][5]Codecademy![][6] - ### Features of ecode ![ecode][7] @@ -70,8 +68,6 @@ The app crashed for me initially as I performed a right-click in a blank area. B ![][10] -Cloud IDE · Online Code Editor · CodeanywhereSave time by deploying a development environment in seconds. Collaborate, code, learn, build, and run your projects directly from your browser.![][11]Cloud IDE · Online Code Editor · CodeanywhereCodeanywhere![][12] - ### Download ecode You can try the [live demo][13] available to test-drive some options quickly. @@ -102,12 +98,9 @@ via: https://news.itsfoss.com/ecode-editor/ [3]: https://github.com/SpartanJ/eepp/ [4]: https://news.itsfoss.com/content/images/2023/01/ecode-official.jpg [5]: https://www.pjtra.com/apple-touch-icon.png -[6]: https://images.codecademy.com/social/logo-codecademy-social.png [7]: https://news.itsfoss.com/content/images/2023/01/ecode.png [8]: https://github.com/SpartanJ/ecode [9]: https://news.itsfoss.com/content/images/2023/01/ecode-options.png [10]: https://news.itsfoss.com/content/images/2023/01/ecode-plugins.png -[11]: https://codeanywhere.com/apple-touch-icon.png -[12]: https://codeanywhere.com/img/backgrounds/codeanywhere-bg.jpg [13]: https://cdn.ensoft.dev/eepp-demos/demo-fs.html?run=ecode.js [14]: https://github.com/SpartanJ/ecode/releases/tag/ecode-0.4.1 From 6d6874ce71ae5250723db79e9ba6ca750726596c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:36:58 +0800 Subject: [PATCH 254/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230116.1=20=E2=AD=90=EF=B8=8F=20Kodi=2020.0=20Nexus?= =?UTF-8?q?=20Update=20Includes=20Support=20for=20AV1=20Video=20and=20Stea?= =?UTF-8?q?m=20Deck=20Controller.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ort for AV1 Video and Steam Deck Controller.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md diff --git a/sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md new file mode 100644 index 0000000000..70bffab23f --- /dev/null +++ b/sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -0,0 +1,111 @@ +[#]: subject: "Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller" +[#]: via: "https://news.itsfoss.com/kodi-20-nexus-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller +====== + +Multiple major feature additions with the Kodi v20 release. + +![Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller][1] + +[Kodi][2] is a cross-platform open-source media player developed by the Kodi Foundation that offers a plethora of features. + +Its previous major release was [Kodi 19 'Matrix'][3] which came **almost two years ago**. + +Now, an improved release is here, called **Kodi 'Nexus'**. It promises several new features and improvements. + +Let's take a look at those. + +### 🆕 Kodi 20 'Nexus': What's New? + +The release is bringing in plenty of new things. Some of the highlights include: + +- **AV1 Codec Support** +- **Enhanced PVR support** +- **Updated Scrapers** +- **Various Fixes and Improvements** + +![kodi 20 nexus][4] + +#### AV1 Codec Support + +Kodi now features support for the open, royalty-free [AV1 codec][5] on Linux. + +Hardware acceleration for decoding AV1 was made possible through [Video Acceleration API][6] (VA-API), and AV1 support was also added for InputStream. + +#### Enhanced PVR support + +TV watching and radio listening via [PVR][7] has also received many improvements, some of the notable ones include: + +- A redesigned channel manager. +- Ability to show the provider of a specific channel or recording. +- Ability to sort channels and recordings by provider. +- Support for read-only recordings. +- Improvements to EPG search. +- Automatic cleanup of cached PVR images. +- Various performance improvements. +- Multi-instance support for PVR client-addons. +- Various tweaks to the PVR experience under the Estuary theme. + +#### Updated Scrapers + +The TVDB TV Show scraper was updated to prevent breakage after introducing a change that broke the 'VideoStreamDetail' and 'InfoTagVideo; Python APIs. + +> 🗒️ Users of older Kodi 20 releases are recommended to update to the latest version to avoid any disruptions with this scraper. + +Furthermore, the Python TV Show scrapers were updated to fix a potentially confusing issue where the new scrapers were using a different XML format than the existing providers used. + +Due to that, now, when you add new episodes to existing TV shows in your library, you will have to refresh the show to download the new episode guide. Even if you are using the NFO files. + +#### 🛠️ Various Fixes and Improvements + +Other than that, Kodi 20 features several fixes and improvements, such as: + +- Built-in support for Steam Deck controller. +- Initial support for the NFSv4 file system. +- 'Continue Watching' feature for certain video folders. +- Support for mounting optical media by default. +- Ability to set HDR output when using the Generic Buffer Management API. +- Addressed an issue with DRMPrime. +- Various Teletext improvements. +- Fixed black screen issue with standalone games. + +To explore more, you can read the [official announcement post][8]. + +### 📥 Download Kodi 20 + +Kodi 20 'Nexus' is available from the [official website][9] and its [GitHub repository][10]. + +It should be available on app stores and official repositories as well. + +Kodi v21 (codename: Omega) development is already underway. So, if you wanted more from this release, keep an eye on the next one. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kodi-20-nexus-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/kodi-nexus-20-release.png +[2]: https://kodi.tv +[3]: https://news.itsfoss.com/kodi-19-release/ +[4]: https://news.itsfoss.com/content/images/2023/01/Kodi_20_Nexus.jpg +[5]: https://en.wikipedia.org/wiki/AV1 +[6]: https://en.wikipedia.org/wiki/Video_Acceleration_API +[7]: https://kodi.wiki/view/PVR +[8]: https://kodi.tv/article/kodi-20-0-nexus-release +[9]: https://kodi.tv/download/ +[10]: https://github.com/xbmc/xbmc/releases/tag/20.0-Nexus From 167868cd5f1ef6c7662cb39ac0e2dad46842e0f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:37:29 +0800 Subject: [PATCH 255/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230117.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Le?= =?UTF-8?q?arn=20zip=20Command=20in=20Linux=20Using=20Examples.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Learn zip Command in Linux Using Examples.md | 181 ++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md diff --git a/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md b/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md new file mode 100644 index 0000000000..e87ffac5c2 --- /dev/null +++ b/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md @@ -0,0 +1,181 @@ +[#]: subject: "Learn zip Command in Linux Using Examples" +[#]: via: "https://www.debugpoint.com/zip-command-linux-examples/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn zip Command in Linux Using Examples +====== + +**Here’s a beginner’s guide on understanding the zip command in Linux with a few examples.** + +![][1] + +A zip file is a compressed archive containing one or more files. It is widely used as a lossless data compression technique. Thanks to compression, it takes less disk space and requires fewer data to transfer over computer networks. + +These compressed files can be extracted easily in Linux, Windows and macOS. Various software is available that supports zip file compression and also offers to extract them. + +Since it is popular, almost all operating systems have this built-in. + +In this tutorial, we will talk about several terminal-based methods to zip a file in Linux. + +### Zip Command in Linux: Examples + +#### Syntax + +The program name you need to use in Linux to zip a file is `zip`. Here’s the basic syntax. + +``` +zip [compress file name] file1 file2 file3 +``` + +And here’s the official syntax. + +``` +zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] +``` + +Ideally, it should be installed in all the major Linux distributions. If not, use the following commands to install it. + +#### Install zip on Debian, Ubuntu and related distributions + +``` +sudo apt install zip +``` + +#### Install in Fedora, RHEL-based systems + +``` +sudo dnf install zip +``` + +#### Arch Linux + +``` +pacman -S zip +``` + +Let’s take a look at some examples. + +#### How to zip files and folders + +I have the following three files in my test directory. They are file1.txt, file2.txt and file3.txt. If I want to compress three files using zip and create a zip myfiles.zip, the following command is sufficient. + +``` +zip myfiles.zip file1.txt file2.txt file3.mp3 +``` + +Output: + +``` +adding: file1.txt (stored 0%)adding: file2.txt (stored 0%)adding: file3.mp3 (deflated 13%) +``` + +![Output of Basic zip command in Linux][2] + +A few points you should remember here. + +- When creating a zip file, you should have the modify access to the current directory. +- The zip file format doesn’t contain the permissions, i.e. read(4), write(2), and execute(1). So, the user who creates it becomes the owner of the file. +- If you want to use zip with permission, try the tar command (to be explained in a later tutorial). +- In the above output, the zip command shows the file names being added to the archive and the compression method. +- Specifying the .zip file name extension in the target file name is not mandatory. If you omit .zip, zip will add the .zip at the end. + +When you have hundreds or thousands of files in operation, it’s a good idea to suppress the output in the terminal. You can use -q command to suppress the output in the zip command. + +``` +zip -q myfiles.zip file1.txt file2.txt file3.txt +``` + +#### Recursive compression of subfolders + +The `-r` option of zip command enables you to include subdirectories and their contents. This option recursively traverses until the last child of a directory structure and adds all of them to the zip file. + +The following command creates a compressed file with all the contents and subdirectories inside my_folder. + +``` +zip -r myfolder.zip my_folder +``` + +You can also use the wild card characters (*) to include specific types of files in your zip file. + +``` +zip -0 my_movies.zip *.mp4 +``` + +#### Adding a mix of files and directories + +With all the above options, the zip command allows you to specify files and directories together as arguments. + +``` +zip -r myfiles.zip file1.txt file2.txt file3.txt my_folder1 my_folder2 +``` + +### Compression algorithms + +The default output of the zip file contains two distinct words, i.e. deflate and store. The default compression method used by zip is deflate. If it successfully compresses the file, then the output shows deflate. And when it can’t compress a file, it simply stores them inside the .zip file as is. Those file outputs show stored. + +There any many compression algorithm present. One of them is the bzip2 compression method which is supported by zip command in Linux. You can specify the compression algo as a command option to use. Use the option -Z followed by the algorithm name, as shown below. + +``` +zip -r -Z bzip2 myfolder.zip my_folder +``` + +#### Compress levels + +The zip command also allows you to specify the compression level. The compression level is how much you want the zip optimized to reduce the package size. It’s a numeric value range from 0 to 9. A value of 9 compression level is the highest compression. The default value is 6. + +Remember, if you are using zip to compress thousands of files of varying sizes, it might use higher system resources and take time. So, if you use it in programs, or shell scripts for many files, follow proper programming standards. + +``` +zip -9 -r myfolder.zip my_folder +``` + +#### Password protect a zip file + +You can also password protect a zip file using `-e` option like the one below. + +``` +zip -e -r myfolder.zip my_folder +``` + +It will ask for the password after you run the command. + +Caution: Don’t use the zip command to password-protect a zip file. The encryption algorithm of the zip is PKZIP using a stream cipher. And it can be cracked easily. If you want to protect your file, use 7-Zip or other advanced tools. + +#### Split size zip files + +Many applications, servers, and file shares may contain restrictions of a fixed-size file upload. For example, you have a 10GB file, but the service allows only 1GB per file. Using the -s option of the zip, you can compress and split them into chunks for upload. + +``` +zip -s 1g -r myfolder.zip my_folder +``` + +### Wrapping Up + +You learned some basics of the zip command. It is useful for most local cases where you need to take quick backups by compressing them on the fly. However, for more advanced options, you should use 7-Zip or other commands, which I will share in the next few articles. + +In the meantime, you can learn more in the [zip manual][3]. + +_This article is part of the [Linux command][4] learning series._ + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/zip-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/zip-file-head.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/Output-of-Basic-zip-command-in-Linux.jpg +[3]: https://linux.die.net/man/1/zip +[4]: https://www.debugpoint.com/category/linux-commands From a742f122f6675bd5b1a4ebaa8ccfcc80ef5c12f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:48:58 +0800 Subject: [PATCH 256/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230117.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20To?= =?UTF-8?q?p=2010=20Linux=20Distributions=20for=20Servers=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Top 10 Linux Distributions for Servers in 2023.md | 149 ++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md diff --git a/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md b/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md new file mode 100644 index 0000000000..25f0e785d0 --- /dev/null +++ b/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md @@ -0,0 +1,149 @@ +[#]: subject: "Top 10 Linux Distributions for Servers in 2023" +[#]: via: "https://www.linuxtechi.com/top-10-linux-distributions-for-servers/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Top 10 Linux Distributions for Servers in 2023 +====== + +Linux operating system is a popular choice for servers – and for multiple reasons. First, it’s free (with exception of a few commercial distributions such as RHEL and SUSE Linux Enterprise Server ) and open-source. Its open-source nature implies that developers can view its source code, modify it and redistribute it according to the laid-out license terms. In addition, Linux is generally considered stable, versatile, and more secure than Windows. Furthermore, it can easily be deployed across various platforms such as bare-metal, virtual, and cloud environments. + +In this article, we highlight the top 10 Linux distributions for servers. + +### 1) Red Hat Enterprise Linux (RHEL) + +[Red Hat Enterprise Linux][1], abbreviated as RHEL, is a commercial Linux distribution that was developed specifically for enterprise environments. It is a performance-driven, reliable, and secure operating system that provides enhanced usability and seamless deployment which makes it ideal for server environments. + +RHEL supports a wide range of workloads in bare-metal, virtual, and cloud environments. In fact, it’s the world’s leading open-source solutions provider offering a myriad of products including Red Hat OpenShift, Ansible automation platform, Open hybrid cloud, JBoss Enterprise Application Platform, and SAP to mention a few. + +![Neofetch-Command-Output-RHEL-System][2] + +### 2) Ubuntu Server + +Developed and maintained by Canonical, Ubuntu is one of the most popular and widely used Linux distributions. It is a Debian-based Linux distribution that is absolutely free and open-source and is renowned for Its Desktop edition which is intuitive, user-friendly, and considered ideal for learners and beginners. Ubuntu comes in 3 editions namely; Desktop, Ubuntu Server, and Core. + +While the Desktop Edition enjoys massive global usage, the Server edition also offers a solid platform for server environments. First, it can be deployed in any environment, be it on a physical, virtual, or cloud environment with extensive scale-out functionality. This implies you can add resources on the go to meet evolving demands. + +And since the server version is completely stripped down without any GUI, it’s relatively lightweight leading to low resource overhead. This means low CPU and memory usage. This consequently leads to improved performance and enterprise-grade stability. + +Apart from installing it on physical data centers and virtual servers, Ubuntu server is available in public clouds such as AWS and Azure. According to Canonical, 55% of OpenStack clouds run on Ubuntu.  In addition, you can have your own managed Openstack cloud for a fee. + +![][3] + +### 3) Debian + +Debian is one of the earliest Linux distributions that is renowned for its rock-solid stability. It comes in three variants: Stable, Unstable, and Testing. + +The Debian stable branch is the latest officially released distribution of Debian and is the most popular version for servers and desktop PCs. All packages shipped with this branch have undergone rigorous testing and debugging, and are hence considered ready for production workloads. + +Debian server is tailored to be a fast and reliable operating system with an emphasis on security and stability. It’s for this reason that it makes for a perfect choice for server environments. In addition, It provides extensive hardware support with over 59,000 software packages, by far the greatest number of packages provided by any OS. + +Just like Ubuntu Server, Debian is lightweight, versatile, and highly stable for enterprise workloads. In fact, it is considered more stable and easier to manage than Ubuntu. + +![][4] + +##### 4) SUSE Linux Enterprise Server + +Another formidable and worthy contender in providing an excellent platform for servers is SUSE Linux Enterprise Server ( SLES ). The server operating system is created and maintained by SUSE, a German-based organization. + +SLES is a commercial distribution that was built to handle enterprise-grade workloads. It is adaptable to any environment and is optimized for stability, reliability, and security. It is highly scalable and allows IT teams to efficiently deploy their applications and services in response to growing business demands. + +The latest SLES release provides interoperability with ease of administration. It also provides increased support and compatibility with Docker containers, Kubernetes, and geo-clusters. The latter provides flexibility with high availability allowing IT teams to configure replication clusters that span multiple data center regions. + +SUSE Linux Enterprise Server not only supports in-house workloads but is also offered on popular cloud providers including Microsoft Azure, Google Compute Engine, and Amazon Web Services. + + +##### 5) OpenSUSE Leap + +Developed by the OpenSUSE project, OpenSUSEis a non-commercial RPM-based Linux distribution that is developed and maintained by SUSE. OpenSUSE is free and open-source and provides two editions: + +- OpenSUSE Leap +- OpenSUSE Tumbleweed + +OpenSUSE TumbleWeed is the rolling release version of OpenSUSE. It contains the latest stable applications including an updated kernel, git, SAMBA, desktop applications, and many more. It, therefore, makes a perfect distribution of choice for developers or power users who need to leverage the latest software stacks in their workloads. However, due to frequent kernel updates, it’s not the ideal choice for servers since frequent updates can cause inconsistencies with other third-party driver modules. + +OpenSUSE Leap is the preferred OpenSUSE option for servers. It’s an open-source and community-driven distribution that has a slower release cycle and, hence, a better fit than TumbleWeed. It is community-driven and this means that it undergoes rigorous testing before being released. + +Leap is comparatively easy to use and offers high performance and stability ideal for handling enterprise-grade workloads. It is a great alternative to commercial server distributions such as SLES and RHEL and allows companies to deploy their workloads both on bare metal and cloud deployments. + +![][6] + +### 6) Rocky Linux + +Rocky Linux is a Linux distribution that was developed as a replacement for CentOS Linux which reached EOL ( End Of Life ) on 31st,  December 2021. It is a free and opensource Linux distribution that is enterprise-ready, providing rock-solid stability, reliability, and regular updates with a 10-year support lifecycle at absolutely no cost + +Rocky Linux is an enterprise operating system designed to be 100% bug-for-bug compatible with Red Hat Enterprise Linux and is currently under intensive development by the community. + +The distribution has gained massive popularity since the untimely discontinuation of CentOS Linux. It can be installed on both servers, and desktop computers. It’s also available in custom-built images on Public cloud providers such as Amazon AWS, and Google Compute Engine. + +Rocky Linux developers have availed a migration script that allows users to migrate from other enterprise editions such as CentOS Linux and Oracle Linux to Rocky Linux. + +![][7] + +### 7) AlmaLinux + +Another alternative that was developed to plug in the gap left by CentOS Linux is AlmaLinux. This is yet another enterprise operating system that is completely free and opensource. + +AlmaLinux was originally created by CloudLinux but is currently community driven. It offers a production-grade enterprise operating system that is 1:1 binary compatible with Red Hat Enterprise Linux (RHEL). In a nutshell, it’s a clone of RHEL and provides rock-solid stability and benefits that come with RHEL at no cost. + +Being an Enterprise-grade server OS, AlmaLinux can comfortably run heavy and critical workloads. In addition, it provides regular releases that come with long-term support. + +![][8] + +### 8) Oracle Linux + +Developed by Oracle Corporation, Oracle Linux is a secure and high-performance operating system that is compiled from RHEL source code. It is optimized for hybrid and multi-cloud deployments, and just like Rocky and AlmaLinux, Oracle Linux is 100% binary compatible with Red Hat Linux. + +Oracle Linux is a viable option for data centers and certainly a perfect replacement for CentOS which reached EOL. It is rock-solid stable and posts incredible performance ideal for enterprise applications. + +Unlike Commercial Linux distributions such as RHEL and SUSE, Oracle Linux is completely free to download, use and redistribute. It is available under the GNU General Public License (GPLv2). + +### 9) Fedora Server + +Fedora is a free and open-source Linux distribution that is developed and maintained by Fedora Project which is sponsored by Red Hat. + +Fedora serves as the upstream, community distribution of Red Hat Enterprise Linux. All the applications go through rigorous testing before they are pushed to RHEL. As such, it is referred to as a ‘Bleeding Edge’ operating system. This implies is regularly gets the latest software applications and updates. + +For a long time, Fedora has been popular for its Workstation Edition which was built for laptop and desktop computers. Over time, it has expanded to include other editions such as Fedora Server, Fedora IoT, and Fedora CoreOS. + +Fedora Server is a robust, reliable, and flexible operating system that ships with the best and latest data center technologies. As a leading-edge edition, it offers the very latest technologies in the open-source community. It is easy to install, set up, and administer using various tools such as Cockpit web console. + +Fedora is also fast, remarkably stable, and secure. It works just fine for production and enterprise workloads.  New releases of Fedora are pushed out once every 6 months. + +![][10] + +### 10) Fedora CoreOS + +Last on our list is Fedora CoreOS. This is a minimal operating system that is optimized specifically for running containerized applications and workloads. According to its home page, it touts itself as  “an automatically-updating, minimal operating system for running containerized workloads securely and at scale.” + +By default, it ships with both podman and docker and comes in three release streams namely:  Stable, Testing, and Next. You can get images for bare-metal servers and virtualized environments as well as cloud images that are hosted by major cloud providers such as Amazon Web Service (AWS) and Google Cloud Platform (GCP). + +##### Conclusion + +That was a round-up of the best Linux distributions for servers. We hope you found this guide insightful. Any thoughts on our guide? Your feedback is very much welcome. + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/top-10-linux-distributions-for-servers/ + +作者:[Pradeep Kumar][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.linuxtechi.com/author/pradeep/ +[b]: https://github.com/lkxed +[1]: https://www.redhat.com/en +[2]: https://www.linuxtechi.com/wp-content/uploads/2019/10/Neofetch-Command-Output-RHEL-System.png +[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Login-Screen-After-Ubuntu-Server-22-04-Installation.png +[4]: https://www.linuxtechi.com/wp-content/uploads/2021/08/Login-screen-Debian11.png +[6]: https://www.linuxtechi.com/wp-content/uploads/2018/09/openSUSE-Leap15-Installation-Option.jpg +[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png +[8]: https://www.linuxtechi.com/wp-content/uploads/2021/04/AlmaLinux8-Dashboard-After-Installation.jpg +[10]: https://www.linuxtechi.com/wp-content/uploads/2016/11/Fedora-Linux-Desktop.png From 6a734c765d26bea5311b79cb60ca4305733e1d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:56:04 +0800 Subject: [PATCH 257/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?talk]:=2020230117.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Ma?= =?UTF-8?q?king=20Content=20that=20Resonates=20An=20Interview=20with=20'Th?= =?UTF-8?q?e=20Linux=20Cast'=20Creator,=20Matthew=20Weber.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ew with 'The Linux Cast' Creator, Matthew Weber.md | 147 ++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 sources/talk/20230117.2 ⭐️⭐️ Making Content that Resonates An Interview with 'The Linux Cast' Creator, Matthew Weber.md diff --git a/sources/talk/20230117.2 ⭐️⭐️ Making Content that Resonates An Interview with 'The Linux Cast' Creator, Matthew Weber.md b/sources/talk/20230117.2 ⭐️⭐️ Making Content that Resonates An Interview with 'The Linux Cast' Creator, Matthew Weber.md new file mode 100644 index 0000000000..ace76eb40f --- /dev/null +++ b/sources/talk/20230117.2 ⭐️⭐️ Making Content that Resonates An Interview with 'The Linux Cast' Creator, Matthew Weber.md @@ -0,0 +1,147 @@ +[#]: subject: "Making Content that Resonates: An Interview with 'The Linux Cast' Creator, Matthew Weber" +[#]: via: "https://news.itsfoss.com/interview-matthew-weber/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Making Content that Resonates: An Interview with 'The Linux Cast' Creator, Matthew Weber +====== + +A conversation with Matthew Weber, the mastermind behind 'The Linux Cast' YouTube channel. + +![Making Content that Resonates: An Interview with 'The Linux Cast' Creator, Matthew Weber][1] + +If you have been following us, you probably know that we promised to interact with interesting personalities in the Linux and open-source world. + +Here, we have Matthew, a **content creator** known for his "[**The Linux Cast**][2]" YouTube channel. + +He creates podcasts and YouTube videos related to Linux, covering news and other exciting stuff. + +As a fellow content creator, **I find his content very insightful** 🤓 + +We asked him a couple of questions that **should help Linux users and content creators in the Linux/Open-Source space gain some insights** from someone with an excellent level of experience. + +**Q. The Linux Cast is an informative YouTube channel that we all love. What inspired you to start it?** + +![thelinuxcast youtube channel][3] + +**A:** My friend Ricky and I have been podcasting along with our friend Vince since **2009**. In 2017 we decided that we were going to switch to Linux and start a podcast. Ricky works in IT and has way more Linux know-how than I did at the time, so we thought it’d be **fun to start a podcast and see how it went**. We didn’t stick with it, doing only a few episodes in seasons 2017 and 2018. + +In about July or August 2020, bored because of the pandemic, I visited the anchor page for the podcast and found to my surprise, that people were listening to it, each of our old episodes has hundreds of listens. + +So, I decided to start it back up again. I found a new co-host in Martin and carried on. In **September 2020**, I decided **I’d start making a few YouTube videos to go along with the podcast**. That’s why the YouTube Channel exists. + +It was started to host the podcast, and I threw some really, really bad videos up to see if I could draw in listeners. And then it just kind of took off. + +**Q. Apart from The Linux Cast, what else do you do Linux-wise?** + +**A:** I’m beginning to **learn Python**, which has been fun. I also have started to **care more about privacy lately**, so I’ve been working on interesting FOSS-related ways of tackling that problem as well. + +12 Simple Tools to Protect Your PrivacyQuick ways to enhance online privacy? Use these simple tools to take control of your data easily.![][4]It's FOSSAnkush Das![][5] + +**Q. Do you have any other plans that you want to share with our readers for your channel/blog?** + +![youtube illustration][6] + +My main goal for the channel is just to keep getting better at making videos. It sounds kind of lame, but I do want to improve the production quality while retaining the style that I have. I can’t script a video to save my life, so I know that’s not in the cards, but I’d like to just improve at video making. I’d also like to live stream more. I’ve done that in the past, but as a New Year’s resolution, I’ve decided to start my Sunday night streams up again. + +‘Don’t be Afraid to Contribute’: Mirko Brombin Talks about Vanilla OS and Other Future ProjectsA conversation with Mirko Brombin, founder of Vanilla OS and Bottles creator.![][7]It's FOSS NewsAnkush Das![][8] + +**Q. I noticed that you love i3 window manager. For someone new to the concept, what tip would you give to get them started? And why do you think they should give it a try?** + +**A:** Tiling window managers aren’t for everyone, butI think everyone should try one at least once (after all, how do you know you don’t like it unless you try?). If you, dear reader, **find yourself wanting to use the keyboard to navigate Linux, a tiling window manager is probably a good choice.** + +Now as for why i3 itself is great, I like it because I’ve spent so much time in it and I have spent most of my time configuring it. That means I have all the keybindings and such just the way I like them and everything is properly customized just to my liking.It has taken ages to get here, but it’s a fun process. **i3wm is great because it’s not fussy like DWM or Xmonad (both are coded and configured in actual programming languages, which makes them harder to configure)**, and it’s not as odd as something like bspwm. It’s simple and has just enough features to make it good. + +![][9] + +As for a tip? Would it be rude to say **watch my videos on i3**? Probably. My best tip for anyone wanting to get into i3 (or any tiling window manager, really), is to **try it in a VM first**. Get it installed and start to customize. Don’t give up when you hit the first problem; push through and make it yours. + +The best part about i3 and other window managers is that you can customize them in an infinite number of ways. Linux fans love to claim that Linux is all about customization, but **until you’ve used a window manager, you’ve never really experienced that freedom**. + +**Q. For someone who switched from Arch to Fedora, what would you suggest for someone deciding between the two?** + +![arch fedora illustration][10] + +**A:****Try both. I preach this all the time**, but the distro I use should make no difference on the distro you choose. I have a hardware setup that is different than yours, and yours is different than someone else’s. That means that every distro is going to run differently on your hardware. + +As for Arch VS. Fedora, the big difference comes down to package managers and versioning of software. **Arch will have slightly newer software than Fedora**, and it has the AUR. Fedora is a more traditional release-based distro, but it still has newer software than something like Debian. + +Getting Started With FedoraCollection of useful tutorials for new Fedora users.![][11]It's FOSSAbhishek Prakash![][12] + +So, choosing between them really comes down to answering two questions: **do you need the latest software and do you need the AUR? This is why I say try both** because you need to experience the AUR before you can decide if you like it or not. + +But mostly, **Fedora is easier to use, and I think it’s slightly more stable than Arch**, which is why I've chosen it as my daily driver. + +**Q. What are your thoughts on “the year of Linux desktop” for 2023?** + +![year of linux desktop][13] + +**A:** 2022 was the year of the Linux Desktop. Last year was the year when Linux made it, and it’s all because of the Steam Deck. Linux is never going to compete with Windows in tems of market share. But it arrived last year as a consumer product for the first time (unless you count Android, which I do not). + +I think 2023 will just be a continuation of that. Slow and steady growth. That’s where it’s at. Anyone wanting an explosion of people using Linux on the Desktop is and always has been asking for disappointment. + +**Q. With a blog, YouTube channel, podcast, and writing, how do you manage your time or remain productive?** + +![the linux cast pc setup][14] + +**A: Todo lists and a bullet journal**. I’ve found that if I keep a list of things I have to do, I will get them done. And I ensure that I spend plenty of time doing things for fun and spending time away from my computer. If all I do is work, I get burned out, so really, it’s all about **ensuring that there is a balance there**. + +**Q. What do you do in your spare time?** **A:****Fanfiction and reading books** mostly. I read a ton. I also enjoy watching sports. I’m a **Philadelphia Eagles fan**, a fan of the Golden State Warriors, and I’m an alumnus of Michigan State University, so I cheer for them when it comes to college sports. + +![book sports illustration][15] + +I also spend a terrible amount of time on YouTube. I’m slowly getting this down to a reasonable amount of time, but in the past, I’d definitely spend more time there than I should. + +**Q. How do you see the future as a Linux content creator?** + +**A:** Change is inevitable, but predicting it is hard. I think **we’re going to see more Linux in the world, and that makes me happy as a Linux content creator**. Over the last two years, I’ve seen many people create their own Linux channels and I think that’s great. The more people cover Linux on YouTube and the web in general, the better. + +Obviously, the big thing for all of us in the next year or so is the **continued transition to Wayland**. Most big DEs have gone to it now, which is great. Now it’s going to be the turn of the window manager. We’ll see how all that plays out. + +I also think we’ll see **more and more immutable distros out there, like Silverblue and OpenSuse’s Micro**. That seems to be where Linux is heading, which should make things very interesting for everyone, content creator or not. + +**Q. Is there a message you would like to give our readers who aim to work in the Linux/Open-Source space as a content creators?** + +![message to readers illustration][16] + +**A:** The hardest part is starting. **Don’t let dreams of being DistroTube, Chris Titus, or The Linux Experiment stop you from continuing once you start**. If you start making videos, those first few months or even years can be rough, especially if you look at those big guys and compare your subscriber count to theirs. It isn’t a competition. + +The thing that I’ve learned if I’ve learned anything, is that **consistency in posting is the best thing you can do**. Post on a predictable schedule (I did every day for a long time, but two or three times a week will work too). The more you post, the better you’ll be (though don’t do more than one a day). + +And finally, **don’t do it if you’re not having fun doing it**. Not many YouTubers can make this a full-time job, so if you’re doing it for the money, then you shouldn’t do it. Being able to be that successful is very much like winning the lottery; it probably isn’t going to happen. So do it for fun. Do it on a schedule that you can keep up long term and still keep it fun. **Make content that you enjoy**, because then others will enjoy it too. If you remember to keep it fun, the viewers will come. + +> 💭 Share your thoughts on the interview and if you want us to talk to your favorite open-source/Linux creator, feel free to mention them in the comments. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/interview-matthew-weber/ + +作者:[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/2023/01/interview-with-the-linux-cast.png +[2]: https://www.youtube.com/@TheLinuxCast +[3]: https://news.itsfoss.com/content/images/2023/01/thelinuxcast.jpg +[4]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png +[5]: https://itsfoss.com/content/images/wordpress/2022/02/privacy-tools-ft.jpg +[6]: https://news.itsfoss.com/content/images/2023/01/youtube-illustration-1.png +[7]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png +[8]: https://news.itsfoss.com/content/images/2022/12/interview-with-mirko-brombin.png +[9]: https://news.itsfoss.com/content/images/2023/01/linux-i3wm--1-.png +[10]: https://news.itsfoss.com/content/images/2023/01/arch-fedora-illustration-1.png +[11]: https://itsfoss.com/content/images/size/w256h256/2022/12/android-chrome-192x192.png +[12]: https://itsfoss.com/content/images/2023/01/fedora-tutorials.png +[13]: https://news.itsfoss.com/content/images/2023/01/year-of-linux-desktop-2023.png +[14]: https://news.itsfoss.com/content/images/2023/01/linux-cast-setup.png +[15]: https://news.itsfoss.com/content/images/2023/01/sports-book-hobby.png +[16]: https://news.itsfoss.com/content/images/2023/01/message-to-readers.png From a90c95d9fc046b8b4a65ba21681d8623c127989a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:56:58 +0800 Subject: [PATCH 258/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230117.3=20=E2=AD=90=EF=B8=8F=20A=20ChatGPT=20GNOME?= =?UTF-8?q?=20Extension=20is=20in=20Development=20for=20Linux=20Users.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Extension is in Development for Linux Users.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md diff --git a/sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md new file mode 100644 index 0000000000..23d6d3974d --- /dev/null +++ b/sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md @@ -0,0 +1,79 @@ +[#]: subject: "A ChatGPT GNOME Extension is in Development for Linux Users" +[#]: via: "https://news.itsfoss.com/chatgpt-gnome-extension-development/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A ChatGPT GNOME Extension is in Development for Linux Users +====== + +AI-powered GNOME desktop? This extension can make things seem like it. + +![A ChatGPT GNOME Extension is in Development for Linux Users][1] + +[ChatGPT][2] is a popular chatbot that can interact with its users as if they are having a conversation. + +Recently, ChatGPT has been in the news, sometimes for the wrong reasons. + +You see, there are two sides to the ChatGPT saga. In fact, for any artificial intelligence implementation. + +On one side, the potential of this tool has impressed many. But on the other side, it has led to quite a ruckus in the tech world for its abuse/misuse. + +So much so it has led its creator, [OpenAI][3], to develop a tool to detect its use. + +Combatting Academic Dishonesty: OpenAI to Help Detect ChatGPT TextWe’re living in the age of AI already. To not make that worse, the makers of ChatGPT have decided to help detect text generated by the tool.![][4]It's FOSS NewsSourav Rudra![][5] + +Now, I spotted a Reddit thread where a developer mentioned something interesting. + +A developer who goes by the user handle '[HorrorPills][6]' has started working on a **GNOME extension for ChatGPT**. + +This sounds interesting; let's take a look. + +### Work in Progress: Let's Keep an Eye! + +![chatgpt gnome extension][7] + +This is a GNOME desktop extension that adds ChatGPT to the system tray of your desktop. + +In its current form, it is in a **very work-in-progress state**, with basic functionality and a few bugs here and there. + +As [noted][8] by the developer: + +You will need an **existing ChatGPT account** to use this extension and your keyboard to navigate around it because the mouse cursor implementation is quite buggy. + +Moreover, **support for GNOME 43 is also quite patchy**, with a temporary fix being provided and added to the to-do list in the development of this extension. + +If you like, you can **give this extension a try**. It's available via its [GitHub repo][9], with all the instructions and files required to run it. + +The developer has also [said][10] that they will be making this available on the **GNOME extensions**[website][11] when the extension is more stable. + +Furthermore, they have also [hinted][12] at a possible **KDE Plasma implementation** in the future. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/chatgpt-gnome-extension-development/ + +作者:[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/chatgpt-gnome-extension.png +[2]: https://chat.openai.com +[3]: https://openai.com +[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png +[5]: https://news.itsfoss.com/content/images/2023/01/openai-to-detect-chatgpt-text.png +[6]: https://github.com/HorrorPills +[7]: https://news.itsfoss.com/content/images/2023/01/ChatGPT_GNOME_Ext.jpg +[8]: https://www.reddit.com/r/linux/comments/10ay23v/comment/j46yp15/ +[9]: https://github.com/HorrorPills/ChatGPT-Gnome-Desktop-Extension +[10]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j4al4cg/ +[11]: https://extensions.gnome.org +[12]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j48uofo/ From ad4cf57f4e45ca2654fe7722259787f2c10acb05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sat, 28 Jan 2023 23:57:20 +0800 Subject: [PATCH 259/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230118.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20KD?= =?UTF-8?q?E=20Plasma=205.27=20Top=20New=20Features=20and=20Release=20Deta?= =?UTF-8?q?ils.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lasma 5.27 Top New Features and Release Details.md | 179 ++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md diff --git a/sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md b/sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md new file mode 100644 index 0000000000..0179989fc6 --- /dev/null +++ b/sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md @@ -0,0 +1,179 @@ +[#]: subject: "KDE Plasma 5.27: Top New Features and Release Details" +[#]: via: "https://www.debugpoint.com/kde-plasma-5-27/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +KDE Plasma 5.27: Top New Features and Release Details +====== + +**The list of impressive features and enhancements of the KDE Plasma 5.27 desktop is arriving in February.** + +In a way, KDE Plasma 5.27 is a milestone release. + +Firstly, it is the final LTS release of the Plasma 5 version and the last instalment of the Plasma 5 series. Initial porting work has already started for Plasma 6 series, which would be based on Qt 6 version. + +Release number-wise, it is the 29th version of the KDE Plasma desktop, followed by the [prior plasma 5.26 release][1]. + +Visible feature-wise, it’s of moderate size. However, the bug fixes, code refactoring, cleanup, and optimization are significant. Most are not visible on the deck, but you can feel the changes when using this fluid desktop. + +Before I walk you through the key features, here’s the schedule. + +- **Beta:** Jan 19, 2023 +- **KDE Plasma 5.27 Final release:** Feb 14, 2023 + +![KDE Plasma 5.27 dev edition][2] + +### KDE Plasma 5.27: Best New Features + +#### Plasma Workspace + +A brand new app welcomes you to Plasma desktop from now on. It was a good idea to add this app to Plasma. It will give you some initial information about Plasma, setting up online accounts and so on. + +![Plasma Welcome App][3] + +The media controller applet introduces two new layouts in this release. A vertical layout showing album art, song title and artist name. And an icon-only display showing only album art. [MR 2176][4] + +The icon size settings slide in the Appearance is moved under the preview with more descriptive text. Also, the window size is slightly larger to accommodate the overall items. [MR 2213][5] + +![Changes in icon size slide][6] + +KDE Plasma battery monitor will now show the charging, discharging, and fully charged status for non-power supply batteries such as a wireless mouse, and mobile phones when connected to the Plasma desktop. [MR 2210][7] + +Also, the battery monitor stops showing 100% when the battery is fully charged. You can only see the power icon without any text. [MR 2306][8] + +In another change, the battery monitor shows “Estimating…” text when the remaining time is 0. Also, the remaining time calculation is changed to give you accurate hours and minutes remaining to full charge. + +The middle click features are now exposed in the applet UI when available. The features existed for some apps, but the discovery was difficult unless tried. [MR 2205][9] + +![Exposing the middle click options][10] + +In the upcoming Qt6, the GaussianBlur is not available. Hence it has been removed in this version, and FastBlur is now incorporated. This is part of the initial Qt6 porting of the future Plasma 6 release. [MR 2083][11] + +The “do not disturb” applet now shows a clearer message for the duration. Earlier it used to show “Until today”, and it has been changed to “Automatically ends: Today at ….”. [MR 1412][12] + +In KDE Plasma 5.27, you can directly drag the wallpaper from the image list to any other application which accepts images. For example, you can directly drag and drop an image from the wallpaper window to the Gwenview image viewer. This definitely eases up many workflows and should save hassles from going to the folder and opening them. However, the feature is not working in my test, so I can’t show you a demo. [MR 2284][13] + +We all love Krunner, the most excellent launcher ever! In this release, Krunner now searches for the key in any part of the file name in the recent document list. It sorts the result from the best match, starting with the search key in the file name to the bottom. [MR 2273][14] + +Also, when there is no match in any documents in your system, Krunner now prompts a web search with the search key. [MR 2311][15] + +![Krunner is great][16] + +The developers can now prioritise the applet notification by assigning a notification value of 256. Once it is a high priority, the notification becomes part of the top header instead of the menu. [MR 2245][17] + +The Users settings page, fingerprint register, and authentication selection are much more visually attractive with an actual hand image. [MR 2347][18] + +![New Visual cue for fingerprint][19] + +The accessibility of KDE Plasma is now more robust because the Orca screenreader app can read the notifications. It includes the app name and the notification description. [MR 2295][20] + +#### Wayland, Kwin and Plasma desktop + +KDE Plasma 5.27 now supports **high-resolution scrolling** in Wayland, thanks to libinput 1.9 version changes. With this change, you should experience smooth scrolling performance in Chrome and Firefox browsers. I hope this makes it on par with the Windows experience. To this day, I still feel Windows scrolling in the popular browser is very smooth. [MR 3034][21] + +Another Wayland fix in this release is the inclusion of the Wayland implementation of **idle notification protocol**. In the Wayland session, if you become idle, the data can now be consumed by various apps and modules to save power, change the status in messaging apps, etc. [MR 2959][22] + +Wayland session in Plasma desktop also brings content type. This allows Kwin to tweak the display behaviour (direct scanout, variable refresh rate, etc.) based on the content displayed on the screen. So, you should get an optimized session based on whether you are watching a movie, playing games or casually browsing the web. [MR 2467][23] + +KDE Plasma Wayland session now supports **fractional scaling** natively. The upstream Wayland change for this was [merged][24] a few months back in 2022. You should get native resolution options in Wayland sessions. [MR 2598][25] + +If you are a multi-monitor user, you should be glad to know that the settings to manage multiple displays are now easily accessible via the system tray display configuration. + +![Multiple display configuration is now available from system tray][26] + +#### Discover + +Discover now shows a proper message when you are offline that it cannot fetch software information from servers instead of showing a progress bar. [MR 383][27] + +For the past few releases, Discover has been improved for Flatpak management. This release also gets some goodies for Flatpak apps. Firstly, the Flatpak application view now shows more permissions entries that an app needs. A new settings page lists all the installed Flatpak and its permissions. [MR 372][28] + +![Flatpak Permission in Discover][29] + +Secondly, Discover now waits a few moments before checking updates for Flatpak. While it waits, it shows the locally cached Flatpak data. [MR 421][30] + +Thirdly, the Discover home is revamped. Honestly, it was due for a long time. Now it looks far better with the popular apps, editor’s choice and other categories. [MR 398][31] + +![Discover homepage now revamped][32] + +#### Additional updates + +Other key change includes: + +- Plasma 5.27 is based on KDE Framework 5.102 and Qt 5.15.2. +- Transition animation when changing wallpaper. +- The weather applet now shows weather info in overlay mode. +- The location picker in the weather applet now gives you a possible list of locations. +- The network applet now shows 5G connection label and icons when used. +- And hopefully, a new wallpaper as always! + +[_Detailed changelog_][33] _(5.26.5-5.26.90)_ + +### Download + +The BETA of KDE Plasma 5.27 is now out. You can download the ISO file and torrent via the KDE Neon distribution from the below link. Remember, this is a testing copy, and there may be bugs. So use it with caution. + +[Download KDE Neon (testing edition)][34] + +### Wrapping Up + +Overall, the change list is enormous and impossible to cover in one article. It’s amazing to see so many changes pulled up in each release by the KDE team. The KDE Framework and app changes are not part of this article which is also significant. + +The final release is planned on Feb 14, 2023. + +Distro-wise, KDE Plasma 5.27 should be available in Fedora 38 and Ubuntu 23.04 Lunar Lobster within the March-April timeframe. + +So, which one of the features do you choose as your favourite? Let me know in the comment box below. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/kde-plasma-5-27/ + +作者:[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/kde-plasma-5-26/ +[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/KDE-Plasma-5.27-dev-edition.jpg +[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Plasma-Welcome-App.jpg +[4]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2176 +[5]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2213 +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Changes-in-icon-size-slide2.jpg +[7]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2210 +[8]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2306 +[9]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2205 +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/Exposing-the-middle-click-options.jpg +[11]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2083 +[12]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1412 +[13]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2284 +[14]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2273 +[15]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2311 +[16]: https://www.debugpoint.com/wp-content/uploads/2023/01/Krunner-is-great.jpg +[17]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2245 +[18]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2347 +[19]: https://www.debugpoint.com/wp-content/uploads/2023/01/New-Visual-cue-for-fingerprint.jpg +[20]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2295 +[21]: https://invent.kde.org/plasma/kwin/-/merge_requests/3034 +[22]: https://invent.kde.org/plasma/kwin/-/merge_requests/2959 +[23]: https://invent.kde.org/plasma/kwin/-/merge_requests/2467 +[24]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/143 +[25]: https://invent.kde.org/plasma/kwin/-/merge_requests/2598 +[26]: https://www.debugpoint.com/wp-content/uploads/2023/01/Multiple-display-configuration-is-now-available-from-system-tray.jpg +[27]: https://invent.kde.org/plasma/discover/-/merge_requests/383 +[28]: https://invent.kde.org/plasma/discover/-/merge_requests/372 +[29]: https://www.debugpoint.com/wp-content/uploads/2023/01/Flatpak-Permission-in-Discover.jpg +[30]: https://invent.kde.org/plasma/discover/-/merge_requests/421 +[31]: https://invent.kde.org/plasma/discover/-/merge_requests/398 +[32]: https://www.debugpoint.com/wp-content/uploads/2023/01/Discover-homepage-now-revamped.jpg +[33]: https://kde.org/announcements/changelogs/plasma/5/5.26.5-5.26.90/ +[34]: https://files.kde.org/neon/images/testing/current/ From 5073a892f92fa5bdf273e5c8b7a479ec5a4ef335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 29 Jan 2023 00:01:54 +0800 Subject: [PATCH 260/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?news]:=2020230119.0=20=E2=AD=90=EF=B8=8F=20Over=2090%=20Systems?= =?UTF-8?q?=20Had=20Flatpak=20Installed,=20Says=20GNOME's=20Research=20Rep?= =?UTF-8?q?ort.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...pak Installed, Says GNOME's Research Report.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md diff --git a/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md b/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md new file mode 100644 index 0000000000..f10d007cab --- /dev/null +++ b/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md @@ -0,0 +1,92 @@ +[#]: subject: "Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report" +[#]: via: "https://news.itsfoss.com/gnome-research-report/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report +====== + +GNOME's survey data reveals some exciting user preferences. Will this influence GNOME's development decisions in the near future? Only time will tell. + +![Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report][1] + +In **August 2022**, GNOME developed [a tool][2] that let users provide anonymous insights about their system configuration, extension, and GNOME-tuned settings. + +This was meant to **help GNOME learn** more about its users' preferences and to make better decisions based on analyzing the data. + +[Allan Day][3], a member of the GNOME design team, shared the collected data in a recent blog post. It contains some interesting insights and findings. + +Let me take you through it. + +### Research Report Findings + +The research report consists of **data from 2,517 users** across varying hardware and software configurations. + +> 📋 This data was procured from people who provided their data to GNOME via the [gnome-info-collect tool][4], and does not represent the whole user base of GNOME. + +Initially, they had received **2,560 responses**, but they had to remove some from the dataset due to them not using a GNOME installation or being on a virtual machine. + +**What does it contain?:** It has anonymized non-sensitive data metrics that show how users were setting up their systems. + +> 💡 This can be of **great use to the GNOME team**, who can now use this data to make design and developmental decisions. + +One such data metric that caught our eye was the **percentage of people using Flatpak** on their GNOME system. + +**Over 90% of systems had Flatpak installed.** + +Of the 2,517 users, a whopping 2,344 users had Flatpak installed on their GNOME system. With 2,102 of them having it fully enabled. + +That is a huge number in such a small data set! 🤯 + +On this, Allan had this to add: + +> Flatpak and Flathub are both important to GNOME’s strategic direction, so it is useful to know the extent of their adoption. This adoption level is also relevant to the design of GNOME’s Software app. + +**Other than that, some key takeaways included:** + +- The most used default web browser was **Mozilla Firefox**. +- The most used distro among the participants with GNOME was **Fedora**. +- **Google** was the account of choice for users using the online account configuration feature. +- **GIMP** was one of the most popular apps installed on GNOME, followed closely by **VLC**. +- **83%** of users had at least one **GNOME extension** enabled. + +I suggest you go through the [research report][5] to get an even more in-depth look. + +### Will This Help Improve the GNOME Experience? + +Collecting this data was to improve the desktop experience by analyzing it and providing it to the design and development teams. + +However, the data collected is still quite limited and may not represent the majority of GNOME users. + +To address that, the blog post mentions: + +> Overall, the data gives some strong hints about which features should be concentrated on by the GNOME project. It also provides evidence about which features shouldn’t be prioritized.It needs to be remembered that, while we have evidence here about some of the decisions that some GNOME users are making, the data doesn’t give us much insight into why they are making the decisions that they are. + +The GNOME team wants to be cautious about making decisions based on this data. And, surveys like these should give them a better understanding of user preferences and focus on what's more important on a fundamental level. + +Of course, it is impossible to cater to every type of user. But, as long as the fundamentals have been taken care of, the desktop experience should eventually improve. + +_💬 What are your thoughts on these findings? Feel free to share your thoughts in the comments down below._ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-research-report/ + +作者:[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/flatpak-gnome-research-report.jpg +[2]: https://news.itsfoss.com/gnome-improve-tool/ +[3]: https://twitter.com/allanday +[4]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ +[5]: https://blogs.gnome.org/aday/2023/01/18/gnome-info-collect-what-we-learned/ From 255fcb09b77c43d99007454af735fd0e919def54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 29 Jan 2023 00:02:21 +0800 Subject: [PATCH 261/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230119.1=20=E2=AD=90=EF=B8=8F=20GNOME=20Screenshot?= =?UTF-8?q?=20Tool=20Old=20and=20New=20Methods.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... GNOME Screenshot Tool Old and New Methods.md | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md diff --git a/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md new file mode 100644 index 0000000000..3e0c0aa77b --- /dev/null +++ b/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md @@ -0,0 +1,144 @@ +[#]: subject: "GNOME Screenshot Tool: Old and New Methods" +[#]: via: "https://www.debugpoint.com/gnome-screenshot-tool-usage/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GNOME Screenshot Tool: Old and New Methods +====== + +**Here are the details about the GNOME Screenshot tool, its usage and how to install and launch them in older and modern methods.** + +![][1] + +In 2022, GNOME changed its default screenshot tool and built the screenshot function as part of the GNOME Shell. It’s not a separate application anymore. + +Earlier, GNOME featured a native GTK app gnome-screenshot via all the major Linux distributions such as Ubuntu and Fedora. However, from [GNOME 42][2] onwards, this has been removed. Hence [Ubuntu 22.04][3] and Fedora 36 onwards, you only get the following new screenshot UI as a default screenshot utility. + +This change fundamentally broke many workflows. Since it is not an executable you can launch separately, you only depend on the keyboard’s print-screen key. And only a shortcut is available via application search. + +Hence, capturing screenshots with a delay in the new GNOME screenshot UI becomes much more challenging. + +Here are some of the ways you can still use the older GNOME Screenshot tool and how to trigger the new screenshot UI manually. + +### GNOME Screenshot Tool: How to install the old GUI + +If you are using Ubuntu 22.04 and above, or any Ubuntu-based distribution with a GNOME desktop, run the following command to install it. + +``` +sudo apt install gnome-screenshot +``` + +And for Fedora users, use the following command. + +``` +sudo dnf install gnome-screenshot +``` + +If you are using a **GNOME desktop in Arch Linux** or Manjaro Linux GNOME, then use the below command to install it. + +``` +pacman -S gnome-desktop +``` + +After installation, launch it via the application menu. + +![GNOME Screenshot (old)][4] + +![GNOME Screenshot main window (old)][5] + +For further customization, you can open Settings and remove the keybinding of Print-Screen from the Shell’s new UI and create a custom keyboard shortcut with the following commands. + +``` +gnome-screenshot --window +gnome-screenshot --area +gnome-screenshot +``` + +### GNOME Screenshot UI: How to manually trigger it via the command line + +The function which executes when you press the Print-Screen key from the keyboard is part of the [GNOME Shell code][6]. Unfortunately, it is protected inside dbus API, and you can not invoke it directly. + +It has been done to make you safe under Wayland so that no arbitrary code gets access to dbus call functions via any script. + +However, this broke many use cases and scripts which people wrote over the years. For example, many users reported [Zoom][7] videoconferencing calls [broke][8] under GNOME-Wayland due to this, which was eventually solved via the below method of turning off the safe mode. + +Let’s see how you can turn it off and trigger the gnome-shell screenshot + +Use caution before using the following steps. Since it may open up your GNOME Shell for arbitrary script access. Make sure you know what you are doing. + +First, you need to open [GNOME looking glass][9] to turn off the safe mode. + +Press `ALT+F`2 and type below: + +``` +lg +``` + +![Launch looking glass][10] + +Select Evaluator at the top, and in the command window, type the following. And hit enter. + +``` +global.context.unsafe_mode = true +``` + +![Turn off safe mode][11] + +You should see a response that it is turned off. + +![Verification][12] + +Now press escape to close the looking glass. And open a terminal prompt. + +And type the following to launch the screenshot tool. + +``` +gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.screenshotUI.open();' +``` + +You should see the new GNOME Shell screenshot triggered. + +![Launch new GNOME Shell Screenshot UI from CLI][13] + +If you want to turn it off, open `lg` again and set it to false. + +``` +global.context.unsafe_mode = true +``` + +### Closing Notes + +Usage-wise, you can still use the new screenshot feature via any shell script by turning off the safe mode. But it is not recommended. It’s always better to use the old GNOME Screenshot tool to avoid all the hassles. + +Cheers. + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/gnome-screenshot-tool-usage/ + +作者:[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/gnome-sc1-1.jpg +[2]: https://www.debugpoint.com/gnome-42/ +[3]: https://www.debugpoint.com/ubuntu-22-04-review/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-old.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-main-window-old.jpg +[6]: https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/screenshot.js#L2210 +[7]: https://www.debugpoint.com/zoom-install-linux-ubuntu-download/ +[8]: https://community.zoom.com/t5/Meetings/Wayland-screen-sharing-broken-with-GNOME-41-on-Fedora-35/m-p/22539 +[9]: https://wiki.gnome.org/Projects/GnomeShell/LookingGlass +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-looking-glass.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Turn-off-safe-mode.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2023/01/Verification.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-new-GNOME-Shell-Screenshot-UI-from-CLI.jpg From cb119ad82fbfdce0d51b4337f00d3c6bc377521e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Sun, 29 Jan 2023 00:14:43 +0800 Subject: [PATCH 262/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230118.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Be?= =?UTF-8?q?yond=20Bash=209=20Lesser-Known=20Linux=20Shells=20and=20Their?= =?UTF-8?q?=20Capabilities.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...esser-Known Linux Shells and Their Capabilities.md | 346 ++++++++++++++++++ 1 file changed, 346 insertions(+) create mode 100644 sources/tech/20230118.2 ⭐️⭐️ Beyond Bash 9 Lesser-Known Linux Shells and Their Capabilities.md diff --git a/sources/tech/20230118.2 ⭐️⭐️ Beyond Bash 9 Lesser-Known Linux Shells and Their Capabilities.md b/sources/tech/20230118.2 ⭐️⭐️ Beyond Bash 9 Lesser-Known Linux Shells and Their Capabilities.md new file mode 100644 index 0000000000..a16da415aa --- /dev/null +++ b/sources/tech/20230118.2 ⭐️⭐️ Beyond Bash 9 Lesser-Known Linux Shells and Their Capabilities.md @@ -0,0 +1,346 @@ +[#]: subject: "Beyond Bash: 9 Lesser-Known Linux Shells and Their Capabilities" +[#]: via: "https://itsfoss.com/shells-linux/" +[#]: author: "Sreenath https://itsfoss.com/author/sreenath/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Beyond Bash: 9 Lesser-Known Linux Shells and Their Capabilities +====== + +A Shell provides an interface to Linux and Unix-like systems by interpreting commands and acts as an intermediary between the user and the core workings of the operating system. + +Undoubtedly, the **bash shell is the most popular one**, and some users prefer other shells like ZSH, which is the default shell in macOS. But many shells exist other than these popular ones, with different features and use cases. + +In this article, we will take a look at some less popular shells that are actively maintained and provide a different user experience. + +### 1. Fish Shell + +When talking about shells other than bash/zsh, the first name coming to our mind is the fish shell. + +Fish is a **smart, user-friendly command line shell** primarily for UNIX-like operating systems. + +![fish shell][1] + +**Features of Fish Shell** + +- Autosuggestion of commands based on history and completions. +- Supports 24-bit color. +- It supports syntax highlighting, and all features work out of the box. + +**Install Fish** + +Fish is available in the official repos of almost all Linux distributions. In Ubuntu, you can install it by: + +``` +sudo apt install fish +``` + +The version in the Ubuntu repos is a bit old. If you want to install the latest version, you can use the official PPA provided by the team. + +``` +sudo apt-add-repository ppa:fish-shell/release-3 +sudo apt update +sudo apt install fish +``` + +[Fish Shell][2] + +### 2. Nushell + +Nushell is a new type of shell that works in **Linux, macOS, Windows, BSD**, etc. **Nu**, as it’s also called, it takes its philosophy and inspiration from projects like [PowerShell][3], functional programming languages, and modern [CLI][4] tools. + +![nushell][5] + +**Features of Nushell** + +- **Everything is data:** Nu pipelines use structured data so you can safely select, filter, and sort the same way every time. +- **Powerful plugins:** It's easy to extend Nu using a powerful plugin system. +- **Easy to read error messages.** Nu operates on typed data, so it catches bugs that other shells don’t. And when things break, Nu tells you exactly where and why. +- Clean IDE support. + +**Install Nushell** + +If you’re on Ubuntu, you won’t find an apt repository to install Nushell. But you can build it by installing the required dependencies, as per its [instructions on GitHub][6]. + +Fortunately, there is a way to install it on any distro using **Homebrew**. You can refer to our tutorial on [installing and using Homebrew Package Manager on Linux][7]. + +Once you successfully set it up on Linux, you need to type in the following command to install Nushell: + +``` +brew install nushell +``` + +Head to its official website to explore more installation options. + +[Nushell][8] + +### 3. Dune + +The project's creator describes **Dune** as a shell by the beach. Dune is a **fast, useful and pretty shell**, offering a few niche metaprogramming features such as quoting. + +![dune shell][9] + +**Features of Dune Shell** + +- Before entering the interactive mode, Dune executes _the prelude,_ a startup file stored in the home directory. +- Dune's REPL is entirely customizable +- You can define aliases by assigning a variable to a program's name +- Use a macro to write functions that modify your shell's environment and act like commands or programs +- Dune offers an extensive standard library and also provides a pretty interface to see all the functions available in each module. + +**Install Dune Shell** + +Dune shell is available in the Arch Linux repository as **dunesh**. + +For all other users, the Dune shell can be installed with cargo. So first, you need to [install the latest version of rust][10]. If you already have rust installed, ensure you have the latest version and then proceed to install Dune. + +``` +cargo install -f dune +``` + +Once installed, you can access the shell by entering the following: + +``` +dunesh +``` + +[Dune Shell][11] + +### 4. Xonsh + +Xonsh is a **Python-powered, cross-platform shell** and command prompt. It combines Python and bash shell so that you can run Python commands directly in the shell. You can even combine Python and shell commands. + +![xonsh shell][12] + +We had a separate article on Xonsh if you are curious to learn more: + +**Features of Xonsh Shell** + +- The Xonsh language has shell primitives that you are used to from Bash +- Prepare environment variables and arguments in Python and use them in shell commands +- Xontribs is a 3rd-party extension system +- Customizable tab completion, key bindings, color styles +- Rich interface to discover history + +**Installing Xonsh Shell** + +Xonsh is available in the repos of many Linux distributions like Ubuntu, Fedora, etc. So, to install it on Ubuntu, run: + +``` +sudo apt install xonsh +``` + +Xonsh also provides an AppImage package, which can be downloaded from their download page. You may refer to our [AppImage guide][13] if you are new to the file format. + +[Xonsh][14] + +### 5. Hilbish + +Hilbish is an **extensible shell** that is very customizable via the Lua programming language. The shell is aimed at both casual users and power users. + +![hilbish shell][15] + +Features of Hilbish + +- Simple and Easy Scripting +- History and Completion Menus: Provides the user with proper menus for completions and history searching +- Syntax highlighting and hinting are available via the Lua API +- It works on Unix systems and Windows, but on Windows, there may encounter issues. + +**Installing Hilbish** + +Hilbish is not available in the package repositories of Ubuntu. So, you will be building it from the source. + +To install it, you need **Go and task** installed. + +``` +sudo apt install golang-go +sudo snap install task --classic +``` + +Once the dependencies are installed, run the following commands to install Hilbish shell: + +``` +git clone --recursive https://github.com/Rosettea/Hilbish +cd Hilbish +go get -d ./... +``` + +If you want a stable branch, run these commands: + +``` +git checkout $(git describe --tags `git rev-list --tags --max-count=1`) +task build +sudo task install +``` + +[Hilbish][16] + +### 6. Elvish + +Elvish is an expressive programming language and a versatile interactive shell. It runs on Linux, Mac, and Windows. Even if **v1.0** has not been released, it is already suitable for most daily interactive use. + +![elvish shell][17] + +**Features of Elvish** + +- **Powerful Pipelines:** Pipelines in Elvish can carry structured data, not just text. You can stream lists, maps, and even functions through the pipeline. +- **Intuitive Control Structures** +- **Directory History:** Elvish remembers all the directories you have been to. You can access it by pressing `CTRL+L`. +- **Command History** +- **Built-in File Manager:** Accessible by pressing CTRL + N + +**Install Elvish** + +Elvish shell is available in Ubuntu and Arch Linux package managers. So to install it, open a terminal and run: + +``` +sudo apt install elvish +``` + +[Elvish][18] + +### 7. Oh + +According to its developers, Oh is a reimagining of the Unix shell. + +It aims to become a more powerful and robust replacement to modern options while respecting the conventions established by the Unix shell over the last half-century. + +![][19] + +**Features of Oh Shell** + +- First-class channels, pipes, environments, and functions +- Rich return values that work with standard shell constructs +- Support for modularity. +- A simplified set of evaluation and quoting rules. +- A syntax that deviates as little as possible from established conventions; + +**Installing Oh** + +Oh provides a pre-compiled binary. You need to download it from their [official GitHub page][20]. + +You need to give execution permission to the file using the command: + +``` +chmod +x filename +``` + +Now, you can run it by : + +``` +./ +``` + +[Oh][21] + +### 8. Solidity + +Solidity is an interactive shell with lightweight session recording and remote compiler support. When you change the solidity pragma/language, it automatically fetches a matching remote compiler. + +![][22] + +**Features of Solidity** + +- `pragma solidity ` attempts to dynamically load the selected compiler version +- Sessions can be saved and restored using the `.session`  command. +- Settings are saved on exit (not safe when running concurrent shells). +- `$_` is a placeholder for the last known result. +- Special commands are dot-prefixed. Everything else is evaluated as Solidity code. + +**Install Solidity** + +You can install solidity shell through npm. + +[Ensure you have the latest version of nodejs][23] and npm installed, then type the following command: + +``` +npm install -g solidity-shell +``` + +Once installed, run **solidity-shell** to start the session. + +[Solidity Shell][24] + +### 9. Yash + +Yash, or yet another shell is a POSIX-compliant command line shell written in C99 (ISO/IEC 9899:1999). It has features for daily interactive and scripting use. + +![][25] + +**Features of Yash Shell** + +- Global aliases +- Socket redirection, pipeline redirection, and process redirection +- Prompt command and command-not-found handler +- Command line completion with predefined completion scripts for more than 100 commands +- Command line prediction based on command history + +**Installing Yash Shell** + +To install the shell, you need to go to their [GitHub releases][26] page and download the tar file. Now extract the tar file; inside it, you will find an INSTALL file with instructions to install it. + +Typically, you should execute the below command inside the extracted folder. + +``` +./configure && make && sudo make install +``` + +[Yash][27] + +### Honorable Mentions + +- **Ion:** [Ion Shell][28] is a modern system shell written in Rust, primarily for **RedoxOS**. It is still a work in progress, and users should expect syntax changes. +- **Closh:** [Closh][29] is a bash-like shell that combines the best of traditional UNIX shells with the power of [Clojure][30]. It aims to be a modern alternative to bash. This, too, is in the early stages of development. +- **Dash**: [Dash][31] is a POSIX-compliant, fast and lightweight shell from Debian. + +💬 _What do you think about these shells listed? Would you experiment by changing the default shell to some of the options here? What's your favorite one? Share your thoughts in the comments box below._ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/shells-linux/ + +作者:[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/content/images/2023/01/fish-shell.png +[2]: https://fishshell.com/ +[3]: https://itsfoss.com/microsoft-open-sources-powershell/ +[4]: https://itsfoss.com/gui-cli-tui/ +[5]: https://itsfoss.com/content/images/2023/01/nushell.png +[6]: https://github.com/nushell/nushell +[7]: https://itsfoss.com/homebrew-linux/ +[8]: https://www.nushell.sh/ +[9]: https://itsfoss.com/content/images/2023/01/dunesh.png +[10]: https://itsfoss.com/install-rust-cargo-ubuntu-linux/ +[11]: https://github.com/adam-mcdaniel/dune +[12]: https://itsfoss.com/content/images/2023/01/xonsh.png +[13]: https://itsfoss.com/use-appimage-linux/ +[14]: https://xon.sh/ +[15]: https://itsfoss.com/content/images/2023/01/hilbish.png +[16]: https://rosettea.github.io/Hilbish/ +[17]: https://itsfoss.com/content/images/2023/01/elvish.png +[18]: https://elv.sh/ +[19]: https://itsfoss.com/content/images/2023/01/oh_Shell.png +[20]: https://github.com/michaelmacinnis/oh#linux +[21]: https://github.com/michaelmacinnis/oh +[22]: https://itsfoss.com/content/images/2023/01/solidity-shell.png +[23]: https://itsfoss.com/install-nodejs-ubuntu/ +[24]: https://github.com/tintinweb/solidity-shell +[25]: https://itsfoss.com/content/images/2023/01/yash.png +[26]: https://github.com/magicant/yash/releases/tag/2.53 +[27]: https://yash.osdn.jp/index.html.en +[28]: https://gitlab.redox-os.org/redox-os/ion +[29]: https://github.com/dundalek/closh +[30]: https://clojure.org/ +[31]: https://linuxhandbook.com/dash-shell/ + From 37659ddca1778602541d7db97c07546a5a677781 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 29 Jan 2023 08:46:39 +0800 Subject: [PATCH 263/357] translated --- ...ookStack, an open source Confluence alternative.md | 98 ------------------- ...ookStack, an open source Confluence alternative.md | 98 +++++++++++++++++++ 2 files changed, 98 insertions(+), 98 deletions(-) delete mode 100644 sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md create mode 100644 translated/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 deleted file mode 100644 index 1d79a34124..0000000000 --- a/sources/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md +++ /dev/null @@ -1,98 +0,0 @@ -[#]: 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: "geekpi" -[#]: 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/ diff --git a/translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md b/translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md new file mode 100644 index 0000000000..741c8ca683 --- /dev/null +++ b/translated/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: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 BookStack 写文档,一个开源的 Confluence 替代品 +====== + +BookStack 是一个开源的、基于网络的文档系统,它允许你创建一个结构化的知识库供个人、团队或公司使用。BookStack 专注于易用性和设计,以提供适合具有潜在的混合技术技能的受众的体验。它建立在 PHP 框架 Laravel 之上,使用 MySQL 或 MariaDB 作为数据存储。 + +在尝试为我的工作场所寻找文档或 wiki 系统后,我构建了 BookStack。[Confluence][1] 是最符合我要求的选项,但基于用户的定价带了的阻碍。Confluence 的封闭性也对我要构建的文档的寿命提出了质疑。最后,我决定建立自己的平台来满足我的需求。我用 MIT 许可发布它,以回馈我多年来喜爱并从中受益的开源社区。 + +### 内容层次和组织选项 + +为了保持熟悉和直观,BookStack 使用了现实世界的书籍术语来描述其组织结构。文档内容被创建“页”: + +- 页属于一个特定的“书”。 +- 在一本书中,页可以选择性地被分组为“章节”。 +- 随着文档的增长,你可以使用“书架”来对“书”进行分类,如果需要,“书”可以成为多个书架的一部分。 + +这种结构是 BookStack 的核心,而且往往是决定 BookStack 是否适合你的使用情况的爱与恨的方面。 + +在这个核心层次上,BookStack 还提供了标签、用户收藏夹和高级搜索功能,以确保内容可被发现。 + +### 编写文档 + +在 BookStack 中编写文档的主要方法是通过使用其所见即所得(WYSIWYG)编辑器,它利用了开源的 [Tiny][2] 项目。这个编辑器提供了一系列的内容格式,包括: + +- 各种标题级别 +- 代码块 +- 可折叠的块 +- 表格 +- 图片 +- 链接 +- iFrame 嵌入 +- 提醒呼出 +- 项目符、编号和任务列表 +- 绘图(通过与开源 [diagrams.net][3] 的整合) + +如果你喜欢 [Markdown][4],你可以使用内置的 Markdown 编辑器,它提供实时预览并支持与所见即所得编辑器相同的功能集。如果权限允许,你甚至可以根据你所编辑的页面,在这些编辑器选项之间跳转。 + +### 你的数据是如何存储的 + +文档以相对简单的 HTML 格式存储在 [MySQL 或 MariaDB][5] 数据库中,如果使用了 Markdown,除了原始的 Markdown 内容外。很多设计和开发决定都是为了保持这种 HTML 格式的简单性。它尽可能地使用普通的标准 HTML 元素,以确保原始文档内容保持开放和可移植。 + +上传的图片、附件和创建的图纸被保存在本地文件系统中,但也可以选择存储在一个与 s3 兼容的数据存储中,比如开源的 [MinIO][6]。 + +为了保持你的内容可访问性,有内置的选项可以将内容导出为 PDF、HTML、纯文本或 Markdown。对于外部消费,有一个 HTTP REST API 和一个 webhook 系统。在扩展方面,一个“逻辑主题系统”允许在广泛的系统事件中运行自定义的 PHP 代码。 + +### 为业务做好准备 + +BookStack 具有一系列的功能来支持商业环境。内置了对一系列认证选项的支持,包括 SAML2、OpenID Connect 和 LDAP,允许使用 [KeyCloak][7] 等平台轻松实现单点登录。MFA 选项是可用的,并且可以根据角色进行授权。审计日志提供整个实例的修改活动的完整可见性。 + +一个完全基于角色的权限系统为管理员提供了对系统内容的创建、查看、更新和删除操作的完全控制。这允许每个角色的系统默认值,以及在每个层次项目基础上设置自定义权限的选项。 + +### 一个支持的社区 + +经过 7 年多的活跃,BookStack 的社区已经发展到了各种讨论和支持的渠道。我们现在有: + +- [我们的文档站点][8] +- [YouTube 上的视频指南][9] +- [一个 subreddit][10] +- [一个活跃的 GitHub 问题列表][11] +- [付费业务支持][12] + +如果你想玩玩 BookStack,你可以[在我们的演示网站][13]试试。要了解如何设置你自己的实例,请访问[我们文档的安装页面][14]。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/bookstack-open-source-documentation + +作者:[Dan Brown][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/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 99b30c80ce0f770ee33ccc7a67abf75e9363adf0 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sun, 29 Jan 2023 08:51:49 +0800 Subject: [PATCH 264/357] translating --- ...️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 1446699a97..66564fd179 100644 --- 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 @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/fedora-media-writer/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From c46a4d669601000f2496c66e7d9a3943b652bb92 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sun, 29 Jan 2023 09:32:59 +0800 Subject: [PATCH 265/357] =?UTF-8?q?Rename=20sources/tech/20230116.1=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20Kodi=2020.0=20Nexus=20Update=20Includes=20?= =?UTF-8?q?Support=20for=20AV1=20Video=20and=20Steam=20Deck=20Controller.m?= =?UTF-8?q?d=20to=20sources/news/20230116.1=20=E2=AD=90=EF=B8=8F=20Kodi=20?= =?UTF-8?q?20.0=20Nexus=20Update=20Includes=20Support=20for=20AV1=20Video?= =?UTF-8?q?=20and=20Steam=20Deck=20Controller.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Update Includes Support for AV1 Video and Steam Deck Controller.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => news}/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md (100%) diff --git a/sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md similarity index 100% rename from sources/tech/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md rename to sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md From 6dd8a7c0c97d09a7dea5f6e63e294c0d2caa25e2 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sun, 29 Jan 2023 09:35:44 +0800 Subject: [PATCH 266/357] =?UTF-8?q?Rename=20sources/tech/20230117.3=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20A=20ChatGPT=20GNOME=20Extension=20is=20in?= =?UTF-8?q?=20Development=20for=20Linux=20Users.md=20to=20sources/news/202?= =?UTF-8?q?30117.3=20=E2=AD=90=EF=B8=8F=20A=20ChatGPT=20GNOME=20Extension?= =?UTF-8?q?=20is=20in=20Development=20for=20Linux=20Users.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ A ChatGPT GNOME Extension is in Development for Linux Users.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => news}/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md (100%) diff --git a/sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md similarity index 100% rename from sources/tech/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md rename to sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md From 9c5d18c73ffa630a4cba1d926e7d3dbac8212ccc Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sun, 29 Jan 2023 09:36:21 +0800 Subject: [PATCH 267/357] =?UTF-8?q?Rename=20sources/tech/20230118.0=20?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20KDE=20Plasma=205.27=20To?= =?UTF-8?q?p=20New=20Features=20and=20Release=20Details.md=20to=20sources/?= =?UTF-8?q?news/20230118.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20KDE=20?= =?UTF-8?q?Plasma=205.27=20Top=20New=20Features=20and=20Release=20Details.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => news}/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md (100%) diff --git a/sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md b/sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md similarity index 100% rename from sources/tech/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md rename to sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md From d363ea8a4091fed72baf0cdc9328a9830155564f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 29 Jan 2023 14:09:57 +0800 Subject: [PATCH 268/357] RP @yzuowei https://linux.cn/article-15489-1.html --- ...️ 10 universal steps for open source code review.md | 142 ++++++++++++++++++ ...️ 10 universal steps for open source code review.md | 137 ----------------- 2 files changed, 142 insertions(+), 137 deletions(-) create mode 100644 published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md delete mode 100644 translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md diff --git a/published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md new file mode 100644 index 0000000000..4fba5a0966 --- /dev/null +++ b/published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md @@ -0,0 +1,142 @@ +[#]: subject: "10 universal steps for open source code review" +[#]: via: "https://opensource.com/article/22/10/code-review" +[#]: author: "Martin Kopec https://opensource.com/users/martin-kopec" +[#]: collector: "lkxed" +[#]: translator: "yzuowei" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15489-1.html" + +开源代码评审的十个通用步骤 +====== + +![][0] + +> 只要你遵循这些通用流程,代码评审并不可怕。 + +你是否需要在你还没有完全理解整个项目时就对代码进行评审?抑或你避开了评审,以免让你看起来不知道如何进行。 + +本篇文章想要告诉你一个更好的方法。代码评审code review 并不需要你知道所有事情。实际上,就我个人经验而言,这种情况非常普遍。 + +我还记得作为实习生加入 红帽Red Hat 的时候,被要求参与代码评审。我们当时采取的是 +1 或 -1 的投票系统,而我在一开始的时候常常踌躇于该如何评审。我发现我会问自己,如果我对于一处改动给予了 +1,而别人却投了 -1,我是不是看起来很蠢? + +如果你对一处改动投了 +1,而别人投了 -1,这又意味着什么呢?答案是不意味任何事!你可能只是漏掉了一处别人注意到的细节。这不意味着世界末日。这也是为什么我们会用投票系统。正如同所有开源项目一样,代码合并是一项协同工作。 + +最近,我接到了太多的代码评审工作,以至于我几乎做不过来。我同时也注意到,参与评审的贡献者数量正在稳步减少。 + +出于这个原因,我想要写一篇文章阐述我对代码评审的个人观点。在这篇文章里,我会分享一些诀窍与技巧。我将会向你展示几个用来问自己的问题,以及在评审代码时需要注意的一些地方。 + +### 代码评审的目的是什么? + +你是否曾写过一个非常简单的补丁?你认为它是如此微不足道,不需要审查。或许你直接就合并了它。直到晚些时候,你意识到你犯了个错误,一个明显的或是愚蠢的错误,比如错误的缩进,比如几行重复的代码而不是调用函数(是的,这些都是经验之谈!)。 + +如果有其他人来审查代码,就会发现这些东西。 + +代码评审的一个目的便是为你带来一双新的眼睛,从新的视角看待你要尝试解决的问题。这种新的背景也正是为什么代码评审至关重要。 + +你可能认为你必须是一个语言专家,才能审查别人的代码、项目,或两者。让我来告诉你一个所有代码评审者都想跟你说的秘密吧:大错特错!你并不需要完全理解该项目或者编程语言,就可以为一个改动提供全新的视角。下面,我将向你展示代码评审的通用流程。 + +### 代码评审的通用流程 + +这是我的代码评审流程,拆分成了几个要点。这个流程包含了我会问自己的一些问题,以帮助我专注于代码的变化以及其后果。你不需要严格依照这个顺序来进行评审。如果有任何原因导致你无法执行其中的某一步,跳过那一步就好。 + +#### 1、理解改动,它想要解决的问题,以及为什么要这么做 + +为什么需要改动的解释以及任何相关背景都应该被放在 提交commit 信息里。如果没有,请要求提供,并请投 -1 直到相关信息被提供。 + +改动想解决的问题需要被解决吗?它是项目应当关注的问题,还是与项目完全无关? + +#### 2、你会如何实现解决方案?它会不一样吗? + +在这个时候,你应该已经知道代码改动是为了什么。换做是你会怎么做?在进一步对改动进行细节评审前,先思考这个问题。如果你想出了一个不一样的解决方案,并且你认为你的方案更好,在评审中提出来。你不需要投 -1;去问问作者为什么没有往那个方向走,看看这次讨论会把你们带向何方。 + +#### 3、运行有改动和没有改动的代码 + +我通常会在代码中设置几个断点,运行代码并检查新代码是如何与其余部分互动的。 + +如果你无法运行整个代码,试着将带有新代码的函数复制到一个新的本地文件,模拟输入数据,然后运行。这在你不知道怎么运行整个项目,或者无法接触到运行所需的特殊环境时很有帮助。 + +#### 4、新代码会破坏任何东西吗? + +我是说,任何东西。想一想可能的后果。 + +以一个新的命令行选项为例,它会总是被目标所接受吗? + +是否存在这样一种情况,使得新选项无法被接受或是会与其他东西起冲突? + +或许新代码是导入了新的东西。那么这个新的库,以及可能的新的依赖关系,能够在老版本或者项目的运行系统中被找到吗? + +安全方面呢?新的依赖足够安全吗?你至少可以在网上快速地搜索一下。还有,注意一下控制台日志里的警告。有的时候在同一个库里也可以找到更安全的函数。 + +#### 5、新代码是否有效? + +你刚刚确认了被提出的解决方案大概是正确的。现在该检查代码本身了。你需要关注代码的有效性和必要性。 + +检查新代码的风格。它与项目的代码风格相匹配吗?任何开源项目都(应该)有一份文档告知(新)贡献者项目所遵循的风格和优秀实践。 + +比如说,OpenStack 社区的所有项目都有一份 HACKING.rst 文件。你经常也能找到一份[新贡献者指南][1]包含所有必须知道的信息。 + +#### 6、确认所有新增的变量和导入都被使用 + +你正在评审的代码常常已经过多次迭代,有的时候代码的最终版本与初始版已迥然不同。所以我们很容易忘记一些在历史版本中加入的变量与引用。自动化检测通常会用到 lint 工具,类似 Python 中的 [flake8][12]。 + +(LCTT 译注:[lint][5] 指编程中用来发现代码潜在错误和约束代码风格的工具,起源于 C 语言编程中的静态分析工具 `lint`。“lint” 本意为衣服上积累的绒毛与灰尘,“lint” 的取名寓意则在于捕捉编程时产生的“绒毛与灰尘”) + +(LCTT 校注:我建议,“Lint” 工具可以翻译为 “代码清理” 或 “代码清洁” 工具。) + +你可以在不声明新变量的情况下重写代码吗?通常情况下你可以,但问题是这样是否更好。这会带来什么益处吗?我们的目标不是要创造尽可能多的单行代码,而是写出高效且易读的代码。 + +#### 7、新的函数和方法是否必要? + +项目里的别的地方是否存在可以被复用的功能类似的函数?确保避免重新发明轮子以及重新实现已经被定义的逻辑永远都是值得的。 + +#### 8、有单元测试吗? + +如果补丁增加了新的函数或者在函数内添加了新的逻辑,它也应该附带对应的单元测试。新函数的作者总是比别人更适合写该函数的单元测试。 + +#### 9. 验证重构 + +如果这次提交对现有代码进行了重构(它可能重命名了某个变量,或者是改变了的变量的作用域,或者是通过加减参数来改变函数的足迹,又或者是删去了某个东西),问一问你自己: + +- 这个可以被删除吗?它会影响到稳定分支吗? +- 所有出现的地方都删掉了吗? + +你可以利用 [grep 命令][3] 来查找。你不会相信有多少次我投 -1 就是因为这个。这是一个任何人都会犯的简单错误,也正因如此任何人都可以发现它。 + +提交的所有者很容易忽略这些事情,这完全可以理解。我也犯过很多次这种错误。我最终发现问题的根源在于我太急于提出评审,以至于我忘记了对仓库进行整体检查。 + +除了对项目仓库的检查外,检查其他代码用户也十分必要。如果有别的项目导入了这个项目,它们可能也需要进行重构。在 OpenStack 社区中,我们有对应的工具来查询别的社区项目。 + +#### 10、项目文档是否需要做出更改? + +你可以再一次使用 [grep 命令][4] 来检查在项目文档中是否提到了相关的代码改动。用常识来判断这次改动是否需要被收入文档以告知最终用户,还是只是一个不会影响用户体验的内部变化。 + +#### 额外提示:考虑周到 + +当你在评审完新代码后提出建议或评论时,要考虑周到,反馈准确,描述详尽。如果有你不理解的地方就发出提问。如果你认为代码存在错误,解释你的理由。记住,如果作者不知道什么地方出了问题,他们就无法修复它。 + +### 最后几句 + +唯一的坏评审是没有评审。通过评审和投票,你提供了你的观点并为此投票。没有人指望你来做出最终决定(除非你是核心维护者),但是投票系统允许你提供你的观点和意见。相信我,补丁所有者会很高兴你这么做了的。 + +你能想到别的要点来给出好的评审吗?你是否有我不知道的特殊技巧?在评论中分享它们吧! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/10/code-review + +作者:[Martin Kopec][a] +选题:[lkxed][b] +译者:[yzuowei](https://github.com/yzuowei) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/martin-kopec +[b]: https://github.com/lkxed +[1]: https://docs.openstack.org/tempest/latest/contributor/contributing.html +[2]: https://opensource.com/article/19/5/python-flake8 +[3]: https://opensource.com/downloads/grep-cheat-sheet +[4]: https://www.redhat.com/sysadmin/how-to-use-grep +[5]: https://codedocs.org/what-is/lint-software +[0]: https://img.linux.net.cn/data/attachment/album/202301/29/140840wsbypukbubp69buv.jpg \ No newline at end of file diff --git a/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md deleted file mode 100644 index 26e1f558c7..0000000000 --- a/translated/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md +++ /dev/null @@ -1,137 +0,0 @@ -[#]: subject: "10 universal steps for open source code review" -[#]: via: "https://opensource.com/article/22/10/code-review" -[#]: author: "Martin Kopec https://opensource.com/users/martin-kopec" -[#]: collector: "lkxed" -[#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -开源代码评审的十个通用步骤 -====== - -只要你遵循这些通用流程,代码评审code review并不可怕。 - -你是否曾需要对代码进行评审,但你还没有完全理解整个项目?或许你避开去评审从而避免你看起来像是什么都不知道的洋相。 - -本篇文章想要告诉你一个更好的方法。代码评审并不需要你知道所有事情。实际上,就我个人经验而言,这种情况非常普遍。 - -我还记得在我刚加入红帽Red Hat做实习的时候,我被要求参与代码评审。我们当时采取的是 +1 或 -1 的投票系统,而我在一开始的时候常常踌躇该如何评审。我发现我总是问自己对于一处改动是否应该给予 +1 当别人已经投了 -1,我会看起来很蠢吗? - -如果你对一处改动投了 +1, 但是别人又投了 -1,这又意味着什么呢?这不意味任何事!你可能只是漏掉了一处细节而别人又恰好注意到了。这不意味着世界末日。这也是为什么我们会用投票系统。正如同所有开源项目一样,代码合并是一项协同工作。 - -最近,我接到了太多的代码评审工作以至于我难以维持进度。我同时也注意到了参与评审的贡献者数量正在稳步减少。 - -基于这个原因,我想要写一篇文章阐述我对代码评审的个人观点。在这篇文章里,我会分享一些诀窍与技巧。我会向你展示几个问题你可以用来自问自答,我也会为在评审代码时需要注意什么提供一些想法。 - -### 代码评审的目的是什么? - -你是否曾写过一个非常简单的补丁?补丁太过琐碎以至于你认为评审是多余的?或许你马上进行了合并。直到晚些时候,你意识到你犯了个错误,一个明显或是愚蠢的错误,或是错误缩进,或是几行重复的代码在本可以调用函数的地方(是的,这些都是经验之谈!)。 - -一段代码本可以交予他人评审并及时发现这些问题。 - -代码评审的一个目的便是为你在尝试解决的问题带来一双全新的视角。新开阔的视野也正是为什么代码评审至关重要。 - -你可能会认为评审别人的代码需要你是一名专家,或是编程语言专家,或是项目专家,或两者兼具。让我来告诉你一个所有代码评审者都想跟你说的秘密吧:大错特错!你并不需要完全理解项目或者编程语言来为改动提供全新视角。我将向你展示代码评审的通用流程。 - -### 代码评审的通用流程 - -这是我的代码评审流程被拆分成几个要点。这个流程包含了我会问我自己的一些问题,以帮助我专注于代码的变化以及其后果。你不需要严格依照顺序来进行评审。如果有任何原因导致你无法执行其中的某一步,跳过那一步就好。 - -### 1. 理解改动,问改动想要解决的问题,以及为什么要解决这个问题 - -为什么需要改动的解释以及任何相关背景都应该被放在提交commit信息里。如果没有,要求相关信息并请随意投 -1 直到相关信息被提供。 - -改动想解决的问题需要被解决吗?它是项目应当聚焦的问题,还是与项目完全无关? - -### 2. 你会如何实现解决方案?它会不一样吗? - -在这个时候,你应该已经知道代码改动是为了什么。换做是你会怎么做?在进一步对改动进行细节评审前思考这个问题。如果你想出了一个不一样的解法,并且你认为你的解法更好,在评审中提出来。你不需要投 -1;去问问作者为什么没有往那个方向走,看看这次讨论会把你们带向何方。 - -### 3. 运行有改变和无改变的代码 - -我通常会在代码中设置几个断点,运行代码并检查新代码是如何与其余部分互动的。 - -如果你无法运行整个代码,试着将带有新代码的函数复制到一个新的本地文件,模拟输入数据,然后运行。这在你不知道怎么运行整个项目或者无法接触到运行所需的特殊环境时很有帮助。 - -### 4. 新代码会破坏任何东西吗? - -我是说,任何东西。想一想可能的后果。 - -以一个新的命令行选项为例,它会总是被目标所接受吗? - -是否存在这样一种情况使得新选项无法被接受或是会与其他东西起冲突? - -或许新代码是一个新的导入。那么这个新的库,很可能也是新的依赖,能够在老版本或者项目的运行系统中被找到吗? - -安全方面呢?新的依赖足够安全吗?你至少可以在网上快速地搜索一下。还有,注意一下控制台日志里的警告。有的时候在同样的库里也可以找到更安全的方法。 - -### 5. 新代码是否有效? - -你刚刚确认了被提出的解决方案大概是正确的。现在该检查代码本身了。你需要关注代码的有效性和必要性。 - -检查新代码的风格。它与项目的代码风格相匹配吗?任何开源项目都(应该)有一份文档告知(新)贡献者项目所遵循的风格和优秀实践。 - -比如说,OpenStack 社区的所有项目都有一份 HACKING.rst 文件。你经常也能找到一份[新贡献者指南][1]包含所有必须知道的信息。 - -### 6. 确认所有新增的变量和导入都被使用 - -你正在评审的代码常常已经过多次迭代,有的时候代码的最终版本与初始版已迥然不同。所以我们很容易忘记一些在历史版本中加入的变量与引用。自动化检测通常会用到 lint 工具,类似 Python 中的 [flake8][12]。 - -(LCTT 译注:[lint][5] 指编程中用来发现代码潜在错误和约束代码风格的工具,起源于 C 语言编程中的静态分析工具 lint。lint 本意为衣服上积累的绒毛与灰尘,lint 的取名寓意则在于捕捉编程时产生的“绒毛与灰尘”) - -你可以在不声明新变量的情况下重写代码吗?通常情况下你可以,但问题是这样是否更好。这会带来什么益处吗?我们的目标不是多写花式的一行代码,而是写出高效且易读的代码。 - -### 7. 新的函数和方法是否必要? - -项目里的别的地方是否存在可以被复用的功能类似的函数?确保避免重新发明轮子以及重新实现已经被定义的逻辑永远都是值得的。 - -### 8. 有单元测试吗? - -如果补丁增加了新的函数或者在函数内添加了新的逻辑,它也应该附带对应的单元测试。新函数的作者总是比别人更适合写该函数的单元测试。 - -### 9. 验证重构 - -如果这次提交对现有代码进行了重构(它可能重命名了某个变量,或者是改变了的变量的作用域,或者是通过加减参数来改变函数的足迹,又或者是删去了某个东西),问一问你自己: - -- 这个可以被删除吗?它会影响到稳定分支吗? -- 所有出现的地方都删掉了吗? - -你可以利用 [grep 命令][3]来查找。你不会相信有多少次我投 -1 就是因为这个。这是一个任何人都会犯的错误,也正因如此任何人都可以发现它。 - -提交的所有者很容易忽略这些事情,这完全可以理解。我也犯过很多次这种错误。我最终发现问题的根源在于我太急于提出评审,以至于我忘记了对仓库进行整体检查。 - -除了对项目仓库的检查外,检查其他代码用户也十分必要。如果有别的项目导入了这个项目,它们可能也需要进行重构。在 OpenStack 社区中,我们有对应的工具来查询别的社区项目。 - -### 10. 项目文档是否需要做出更改? - -你可以再一次使用 [grep 命令][4]来检查在项目文档中是否提到了相关的代码改动。用常识来判断这次改动是否需要被收入文档以告知最终用户,还是只是一个不会影响用户体验的内部变化。 - -### 额外提示:考虑周到 - -当你在评审完新代码后提出建议或评论时,要考虑周到,反馈准确,描述详尽。如果有你不理解的地方就发出提问。如果你认为代码存在错误,解释你的理由。记住,作者无法修复他不知道的漏洞。 - -### 最后几句 - -唯一的坏评审是没有评审。通过评审和投票,你提供了你的观点并为此发声。没有人指望你来做出最终决定(除非你是核心维护者),但是投票系统允许你提供你的观点和意见。相信我,补丁所有者会很高兴你这么做了的。 - -你能想到别的要点来给出好的评审吗?你是否有我不知道的特殊技巧?在评论中分享它们吧! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/code-review - -作者:[Martin Kopec][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/martin-kopec -[b]: https://github.com/lkxed -[1]: https://docs.openstack.org/tempest/latest/contributor/contributing.html -[2]: https://opensource.com/article/19/5/python-flake8 -[3]: https://opensource.com/downloads/grep-cheat-sheet -[4]: https://www.redhat.com/sysadmin/how-to-use-grep -[5]: https://codedocs.org/what-is/lint-software From 736d70a30b8cd0115aed010dcfdae1f0dd940550 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 29 Jan 2023 15:16:18 +0800 Subject: [PATCH 269/357] ATRP @wxy https://linux.cn/article-15490-1.html --- ...pak Installed, Says GNOME's Research Report.md | 92 +++++++++++++++++++ ...pak Installed, Says GNOME's Research Report.md | 92 ------------------- 2 files changed, 92 insertions(+), 92 deletions(-) create mode 100644 published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md delete mode 100644 sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md diff --git a/published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md b/published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md new file mode 100644 index 0000000000..a88bb4dc53 --- /dev/null +++ b/published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md @@ -0,0 +1,92 @@ +[#]: subject: "Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report" +[#]: via: "https://news.itsfoss.com/gnome-research-report/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15490-1.html" + +GNOME 的研究报告称 90% 以上的系统都安装了 Flatpak +====== + +> GNOME 的调查数据揭示了一些令人感兴趣的用户偏好。这是否会影响 GNOME 在不久的将来的开发决策?让我们拭目以待。 + +![GNOME 的研究报告说,超过 90% 的系统安装了 Flatpak][1] + +在 2022 年 8 月,GNOME 开发了 [一个工具][2],让用户可以匿名提供关于他们的系统配置、扩展和 GNOME 调整的设置。 + +这是为了**帮助 GNOME 深入了解**用户的偏好,并在分析数据的基础上做出更好的决定。 + +GNOME 设计团队的成员 [Allan Day][3] 在最近的一篇博文中分享了收集的数据。它包含了一些有趣的洞察和发现。 + +让我带你了解一下: + +### 研究报告的发现 + +本研究报告包括来自 2,517 个用户的数据,这些用户的硬件和软件配置各不相同。 + +> 📋 这些数据是使用 [gnome-info-collect 工具][4] 从向 GNOME 提供数据的人那里获得的,并不代表 GNOME 的全部用户。 + +最初,他们收到了 2,560 个回复,但由于一些数据没有来自使用 GNOME 的系统或来自虚拟机,他们不得不从数据集中删除一些。 + +它包含什么?它含有匿名的非敏感数据指标,显示了用户是如何设置他们的系统的。 + +> 💡 这对 GNOME 团队来说可以有很大的用处,他们现在可以使用这些数据来做出设计和开发的决定。 + +其中一个引起我们注意的数据指标是在他们的 GNOME 系统上使用 Flatpak 的人的百分比。 + +**超过 90% 的系统都安装了 Flatpak。** + +在 2517 个用户中,有高达 2344 个用户在他们的 GNOME 系统上安装了 Flatpak。其中 2,102 人完全启用了它。 + +在这样一个小的数据集中,这是一个巨大的数字! 🤯 + +关于这一点,Allan 有这样的补充说明: + +> Flatpak 和 Flathub 对 GNOME 的战略方向至关重要,所以了解它们的采用程度是很有用的。这种采用程度也与 GNOME 的软件应用设计有关。 + +除此之外,一些关键的收获包括: + +- 最常用的默认网页浏览器是 Mozilla Firefox。 +- 在使用 GNOME 的人中,最常用的发行版是 Fedora。 +- 谷歌是配置了在线账户的用户的首选账户。 +- GIMP 是安装在 GNOME 上最受欢迎的应用程序之一,紧随其后的是 VLC。 +- 83% 的用户至少启用了一个 GNOME 扩展。 + +我建议你通过该 [研究报告][5] 来获得更深入的了解。 + +### 这是否有助于改善 GNOME 的体验? + +收集这些数据是为了通过分析和提供给设计和开发团队来改善桌面体验。 + +然而,收集到的数据仍然相当有限,可能无法代表大多数的 GNOME 用户。 + +为了解决这个问题,博文中提到: + +> 总的来说,这些数据对于 GNOME 项目应该专注于哪些功能给出了一些有力的提示。它也提供了关于哪些功能不应该被优先考虑的证据。需要记住的是,虽然我们在这里有关于一些 GNOME 用户做出的决定的证据,但这些数据并没有让我们深入了解为什么他们会做出这样的决定。 + +GNOME 团队希望在根据这些数据做出决定时保持谨慎。而且,像这样的调查应该能让他们更好地了解用户的偏好,并把重点放在基本层面上更重要的东西上。 + +当然,不可能照顾到每一种类型的用户。但是,只要基本面得到了照顾,桌面体验最终应该得到改善。 + +你对这些发现有什么看法?欢迎在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/gnome-research-report/ + +作者:[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/flatpak-gnome-research-report.jpg +[2]: https://news.itsfoss.com/gnome-improve-tool/ +[3]: https://twitter.com/allanday +[4]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ +[5]: https://blogs.gnome.org/aday/2023/01/18/gnome-info-collect-what-we-learned/ diff --git a/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md b/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md deleted file mode 100644 index f10d007cab..0000000000 --- a/sources/news/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md +++ /dev/null @@ -1,92 +0,0 @@ -[#]: subject: "Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report" -[#]: via: "https://news.itsfoss.com/gnome-research-report/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report -====== - -GNOME's survey data reveals some exciting user preferences. Will this influence GNOME's development decisions in the near future? Only time will tell. - -![Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report][1] - -In **August 2022**, GNOME developed [a tool][2] that let users provide anonymous insights about their system configuration, extension, and GNOME-tuned settings. - -This was meant to **help GNOME learn** more about its users' preferences and to make better decisions based on analyzing the data. - -[Allan Day][3], a member of the GNOME design team, shared the collected data in a recent blog post. It contains some interesting insights and findings. - -Let me take you through it. - -### Research Report Findings - -The research report consists of **data from 2,517 users** across varying hardware and software configurations. - -> 📋 This data was procured from people who provided their data to GNOME via the [gnome-info-collect tool][4], and does not represent the whole user base of GNOME. - -Initially, they had received **2,560 responses**, but they had to remove some from the dataset due to them not using a GNOME installation or being on a virtual machine. - -**What does it contain?:** It has anonymized non-sensitive data metrics that show how users were setting up their systems. - -> 💡 This can be of **great use to the GNOME team**, who can now use this data to make design and developmental decisions. - -One such data metric that caught our eye was the **percentage of people using Flatpak** on their GNOME system. - -**Over 90% of systems had Flatpak installed.** - -Of the 2,517 users, a whopping 2,344 users had Flatpak installed on their GNOME system. With 2,102 of them having it fully enabled. - -That is a huge number in such a small data set! 🤯 - -On this, Allan had this to add: - -> Flatpak and Flathub are both important to GNOME’s strategic direction, so it is useful to know the extent of their adoption. This adoption level is also relevant to the design of GNOME’s Software app. - -**Other than that, some key takeaways included:** - -- The most used default web browser was **Mozilla Firefox**. -- The most used distro among the participants with GNOME was **Fedora**. -- **Google** was the account of choice for users using the online account configuration feature. -- **GIMP** was one of the most popular apps installed on GNOME, followed closely by **VLC**. -- **83%** of users had at least one **GNOME extension** enabled. - -I suggest you go through the [research report][5] to get an even more in-depth look. - -### Will This Help Improve the GNOME Experience? - -Collecting this data was to improve the desktop experience by analyzing it and providing it to the design and development teams. - -However, the data collected is still quite limited and may not represent the majority of GNOME users. - -To address that, the blog post mentions: - -> Overall, the data gives some strong hints about which features should be concentrated on by the GNOME project. It also provides evidence about which features shouldn’t be prioritized.It needs to be remembered that, while we have evidence here about some of the decisions that some GNOME users are making, the data doesn’t give us much insight into why they are making the decisions that they are. - -The GNOME team wants to be cautious about making decisions based on this data. And, surveys like these should give them a better understanding of user preferences and focus on what's more important on a fundamental level. - -Of course, it is impossible to cater to every type of user. But, as long as the fundamentals have been taken care of, the desktop experience should eventually improve. - -_💬 What are your thoughts on these findings? Feel free to share your thoughts in the comments down below._ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/gnome-research-report/ - -作者:[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/flatpak-gnome-research-report.jpg -[2]: https://news.itsfoss.com/gnome-improve-tool/ -[3]: https://twitter.com/allanday -[4]: https://gitlab.gnome.org/vstanek/gnome-info-collect/ -[5]: https://blogs.gnome.org/aday/2023/01/18/gnome-info-collect-what-we-learned/ From 96ef902725949c5a247692553a7497efd47bc473 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 30 Jan 2023 08:49:44 +0800 Subject: [PATCH 270/357] translated --- ...ver the power of the Linux SpaceFM file manager.md | 93 ------------------- ...ver the power of the Linux SpaceFM file manager.md | 93 +++++++++++++++++++ 2 files changed, 93 insertions(+), 93 deletions(-) delete mode 100644 sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md create mode 100644 translated/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 deleted file mode 100644 index faa89b2497..0000000000 --- a/sources/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md +++ /dev/null @@ -1,93 +0,0 @@ -[#]: 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: "geekpi" -[#]: 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 diff --git a/translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md b/translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md new file mode 100644 index 0000000000..000421e242 --- /dev/null +++ b/translated/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: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +发现 Linux SpaceFM 文件管理器的强大 +====== + +SpaceFM 是一个使用 GTK 工具包的 Linux 的标签式文件管理器,所以它很适合在 [GNOME][1]、[Mate][2]、[Cinnamon][3] 等的桌面上使用。SpaceFM 还具有一个内置的设备管理器系统,所以它特别适合于窗口管理器,像 [Fluxbox][4] 或 [fvwm][5],它们通常不包括一个图形设备管理器。如果你对 Linux 上的文件管理器满意,但你想尝试一个设计上有点不同的文件管理器,SpaceFM 值得一看。 + +### 安装 SpaceFM + +在 Linux 上,你可能会在你的发行版的仓库中找到 **SpaceFM**。在 Fedora、Mageia、OpenMandriva 和类似的软件中: + +``` +$ sudo dnf install spacefm +``` + +在 Debian 和基于 Debian 的系统上: + +``` +$ sudo apt install spacefm +``` + +### 面板 + +我不知道为什么 SpaceFM 被称为 SpaceFM,但可能是因为它做出了一致的努力,让你把窗口中的每一点空间都用来做有用的事情。默认情况下,SpaceFM 实际上是相当简单的、标准的文件管理器。它有一个列出你的文件的面板,一个工具栏,和一个菜单栏。 + +![SpaceFM is typical in design. At first.][6] + +所有的“常规”规则都适用。 + +- **双击**打开一个目录或在其默认的应用中打开一个文件。 +- **右键点击**可获得一个上下文菜单,提供许多标准选项(复制、粘贴、重命名、查看属性、创建新文件夹,等等)。 + +不过,SpaceFM 使自己与众不同的方式是它的面板系统。SpaceFM 默认显示一个面板。这就是列出你的文件的大文件窗口。但它最多可以有四个面板视图,再加上一些用于某些特定任务的额外面板。 + +### 打开一个新的面板 + +在你的文件管理器中,你可以看到两个目录,而不是看到一个目录。要在自己的窗格中调出另一个目录,按 **Ctrl+2** 或进入**视图**菜单,选择 **Panel 2**。或者,点击菜单面板中从左开始的第二个绿点图标。 + +有了两个面板,你可以把文件从一个目录移到另一个目录,而不需要打开一个新的文件管理器窗口,或者你可以浏览两个目录来比较其内容。 + +但为什么要满足于两个面板呢?也许你更想一次看到三个目录。要在一个专门的窗格中调出第三个目录,请按 **Ctrl+3** 或进入**查看**菜单,选择 **Panel 3**。或者,点击菜单面板中从左开始的第三个绿点图标。这个面板出现在 SpaceFM 窗口的底部。 + +打开三个面板后,你可以在几个目录之间移动文件,或将文件从一个公共的“垃圾场”(如你的桌面或下载文件夹)分类到特定的目录。 + +当然,当你尝试了三个面板,你可能会发现自己很想拥有第四个面板。要在自己的窗格中打开第四个目录,按 **Ctrl+4** 或进入**查看**菜单,选择 **Panel 4**。或者,点击菜单面板中从左开始的第四个绿点图标。这个会在面板 3 旁边打开,并将你的 SpaceFM 窗口分成四份。 + +![SpaceFM can have up to four panels.][7] + +那么_第五个_面板呢?好吧,实际上 SpaceFM 仅有四个面板。如果你真的想有第五个面板,你必须打开一个新的 SpaceFM 窗口。然而,仍有更多的面板,用于文件列表以外的信息,可供探索。 + +### 特殊面板 + +在**查看**菜单中可以看到,除了文件面板外,还有一些特定的任务面板可以选择显示。这包括: + +- **任务管理器**:列出正在进行的文件管理器进程。这不是一个通用的任务管理器,所以要设置 nice 值或检测僵尸 PID,[htop 或 top][8] 仍然是你选择的工具。 +- **书签**:常用文件夹的链接,如桌面、文档、下载和任何你想保持方便的位置。 +- **设备**:USB 驱动器和远程文件系统。 +- **文件树**:按照目录继承顺序查看文件系统。 + +这些面板在 SpaceFM 的左侧打开,但它们是堆叠的。你可以同时打开书签、设备、任务和文件树,尽管它会有一个非常高的 SpaceFM 窗口。 + +### 为 SpaceFM 腾出空间 + +SpaceFM 是一个可配置的多任务文件管理器。它最大限度地增加了你可以在一个窗口中展示的信息,并让你决定什么是重要的,以及什么时候重要。本文重点介绍了 SpaceFM 的面板,因为至少在我看来,这些是该应用最独特的方面。然而,SpaceFM 还有很多东西,包括插件、首选项、设计模式、键盘快捷键和自定义。这不是一个小的应用,尽管它是一个轻量级的。花些时间在 SpaceFM 上,因为你永远不知道你会发现什么。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-spacefm + +作者:[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/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 ac74e8061e732d479a9b14033e383a977bbe1d69 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 30 Jan 2023 08:55:16 +0800 Subject: [PATCH 271/357] translating --- ...odern, Lightweight Code Editor With a Brand New GUI Framework.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md index b60dd11627..274d7430a2 100644 --- a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md +++ b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/ecode-editor/" [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From f713f468860928b64e4d9a61b60558ebd1b48cff Mon Sep 17 00:00:00 2001 From: ZZJ Date: Mon, 30 Jan 2023 10:04:01 +0800 Subject: [PATCH 272/357] =?UTF-8?q?Update=2020230117.1=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Top=2010=20Linux=20Distributions?= =?UTF-8?q?=20for=20Servers=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit translating --- ...117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md b/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md index 25f0e785d0..c570871d5d 100644 --- a/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md +++ b/sources/tech/20230117.1 ⭐️⭐️ Top 10 Linux Distributions for Servers in 2023.md @@ -2,7 +2,7 @@ [#]: via: "https://www.linuxtechi.com/top-10-linux-distributions-for-servers/" [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: " Veryzzj" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4030c5725cefe934aed443b898246f31932649dc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 30 Jan 2023 11:11:19 +0800 Subject: [PATCH 273/357] RP @yzuowei https://linux.cn/article-15492-1.html --- ...y need to know about open source to get started.md | 53 ++++++++++--------- 1 file changed, 28 insertions(+), 25 deletions(-) rename {translated/talk => published}/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md (55%) diff --git a/translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/published/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md similarity index 55% rename from translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md rename to published/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md index 08b3af812a..64cc2ea564 100644 --- a/translated/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md +++ b/published/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md @@ -3,42 +3,44 @@ [#]: author: "Katie Edwards https://opensource.com/users/kaedward" [#]: collector: "lkxed" [#]: translator: "yzuowei" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15492-1.html" 关于开源,你需要知道些什么 ====== -一份用简单直白的语句来解释开源的新手指南。 +![][0] -所以你想要(或需要)知道[开源][1]的意思究竟是什么。我会介绍开源的一些基础,无论你是对项目贡献感兴趣,还是在想要融入的新工作圈子里总是听到这个名词。 +> 一份用简单直白的语句来解释开源的新手指南。 -我坦白,我这个人没什么技术经验,在极具技术性的开源社区中从事着内容设计的边缘工作。考虑到我原来的背景是营销与传播,我决定换工作时感觉就像离了水的鱼儿。[Git][2],数据科学,软件的各种输入输出……直到一年后的今天,我依然感到难以消化。 +要是你想要(或需要)知道 [开源][1] 的意思究竟是什么。我会介绍开源的一些基础,无论你是对项目贡献感兴趣,还是在想要融入的新工作圈子里总是听到这个名词,因为这个词总是被人不断的提起。 -但这正是为什么我要写这篇文章。我想要让开源变得不那么吓人。毕竟,开源的背后是支持型学习社区——这个社区对所有人开放,无论你是否有技术经验。 +我坦白,我这个人没什么技术经验,在极具技术性的开源社区中从事着内容设计的边缘工作。考虑到我原来的背景是营销与传播,我决定换工作时感觉就像离了水的鱼儿。[Git][2]、数据科学、软件的来龙去脉……直到一年后的今天,我依然感到难以消化。 -我会从基本中的基本开始。 +但这正是为什么我要写这篇文章。我想要让开源变得不那么令人生畏。毕竟,开源的中心是一个支持型的学习社区 —— 这个社区对所有人开放,无论你是否有技术经验。 + +我会从基础中的基础开始。 ### 什么是开源? -在此声明,开源的行业内定义可以在[开放源代码促进会(Open Source Initiative)][3]的网站找到。 +在此声明,业界对开源的定义可以在 [开放源代码促进会][3]Open Source Initiative 的网站找到。 -然而,大众对“开源”软件的认知通常为它不用花钱,它的源代码是公开的,任何人都可以对其贡献,你可以重新发布它或者做任何你想用它做的事。 +然而,大众对“开源”软件的认知通常为它不用花钱,它的源代码是公开的,任何人都可以对其贡献,你可以重新发布它或者用它做任何你想做的事。 这里面有些是真的,而有些则属于常见的误解,其中之一就是关于花费。 #### 开源只要 0 元 -这是真的吗?大部分情况下是,但不是所有情况。开源软件的本质在于代码的公开性,所以获取软件本身确实不需要花费。但是,依赖开源项目的营利公司也确实存在。但如果软件不需要花钱,开源公司又是如何生存的?他们该如何盈利? +这是真的吗?大部分情况下是,但不是所有情况。开源软件的本质在于代码的公开性,所以获取软件本身确实不需要花费。但是,依赖开源项目营利的公司也确实存在。但如果软件不需要花钱,开源公司又是如何生存的?他们该如何盈利? -拥有“免费产品”这个概念本身是反直觉的。但你要知道:一个公司不一定要靠出售软件来赚钱,它也可以推销它的产品管理,数据储存,以及客户支持。 +拥有“免费产品”这个概念本身是反直觉的。但你要知道:一个公司不一定要靠出售软件来赚钱,它也可以从产品的管理,数据的储存,以及对客户的支持中获利。 -很多公司都采用了订阅模式,他们提供客户支持服务以帮助客户调试软件并为客户解答疑惑。数据储存也并非免费,这片领域也能为公司带来收入。从这个角度来说,在销售的“产品”不是软件,而是订阅服务。 +很多公司都采用了订阅模式,他们提供客户支持服务以帮助客户解决软件问题并为客户解答疑惑。数据储存也并非免费,这也是能为公司带来收入的另一领域。从这个角度来说,在销售的“产品”不是软件,而是订阅服务。 -- **开源代码是公开的**:这是真的吗?是的,永远都是。“开源”一词的先决条件正是这份公开性。源代码必须允许被查看、使用、修改并重新发布。 -- **你可以用这份代码做任何你想做的事**:这是真的吗?依情况而定。许可证条款会对你对代码的使用方式作出限制,但你通常都可以用代码做你想做的事。无论是调整项目以满足特殊需求,还是以此为基础做些别的,开源软件允许你和所有人对其修改。 -- **任何人都可以贡献开源项目**:这是真的吗?是的,但有限制。所有有[合适技能][4]的人都可以贡献开源。但是,这不意味着所有的贡献都会被接受和采纳。 +- **开源代码是公开访问的**:这是真的吗?是的,永远都是。“开源”一词的先决条件正是这份公开性。源代码必须允许被查看、使用、修改和重新发布。 +- **你可以用这份代码做任何你想做的事**:这是真的吗?依情况而定。许可证条款会对你对代码的使用方式作出限制,但你通常都可以用代码做你想做的事。无论是调整该项目以满足特殊需求,还是以此为基础做些别的,开源软件允许你和其他所有人对其修改。 +- **任何人都可以贡献开源项目**:这是真的吗?是的,但有限制。所有有 [合适技能][4] 的人都可以贡献开源。但是,这不意味着所有的贡献都会被接受和采纳。 比如说,你对一个目标是对地球上所有的鸟类进行分类的项目感兴趣。你恰好很喜欢恐龙,特别是那些最终进化成如今的鸟类的恐龙。于是,你为所有最像鸟类的恐龙提交了条目。项目所有者在看到这些后可能会想:“不错,这都是些很棒的史前鸟类。”但他们也可能会认为:“嗯……这些恐龙看起来像鸟,但他们还不是鸟,因此他们不属于鸟类百科。” @@ -46,32 +48,32 @@ ### 为什么选择开源呢? -那么,在众多贡献之后(如果能贡献完的话),为什么人们愿意免费赠送他们的软件?如果有那么多人为此付出了时间与精力,他们为什么不能联合起来为软件明码标价? +那么,在众多贡献之后(如果这些贡献完成的话),为什么人们愿意免费赠送他们的软件?如果有那么多人为此付出了时间与精力,他们为什么不能联合起来为软件明码标价? 这个问题有很多回答。我在这里给出了一些: - 创业是艰难的,如果你开发的项目展现不出赚钱的潜力则尤其如此。召集一群志同道合的人,没有承诺也没有对薪水的期望,相对而言要简单得多。 -- 大部分开源社区的成员对软件的改进或者实现感兴趣,但他们没有时间或者不愿意将项目作为他们的全职工作。有时候开源代表的是热情驱动的项目,极客组成的团体,还有凝聚众人智慧对恼人问题的解决方案。 +- 大部分开源社区的成员对软件的改进或者实现感兴趣,但他们没有时间或者不愿意将项目作为他们的全职工作。有时候开源代表的是热情驱动的项目、极客组成的团体,还有凝聚众人智慧对恼人问题的解决方案。 - 围绕各种规模的开源项目形成的团体促进了支持型社区的成形,在这里贡献者与旁观者都可以练习他们的技能,改进他们常用的软件,互教互学,并为发声被听到而感到振奋。很多开源社区本质上就是高度集中的线上爱好者俱乐部。 ### 我该如何参与呢? 现在你可能会问你自己:“我知道了这些信息又可以做些什么呢?我能贡献开源项目吗?如果我不够优秀的话该怎么办?” -不要害怕——即便是[新手][5]也欢迎贡献开源项目。在与社区一起朝着更大的目标共同努力的同时,你也得到了一个磨练技能的绝佳机会。况且,正如我之前所说,最坏的情况也不过是你的提交不被鸟类百科所接受(而这也是因为项目的所有者看不到你对鸟类百科的愿景,那是一片关于鸟类知识的网络天地,鸟与他们的祖先在那里一起幸福地生活)。 +不要害怕 —— 即便是 [新手][5] 也欢迎为开源项目做贡献。在与社区一起朝着更大的目标共同努力的同时,你也得到了一个磨练技能的绝佳机会。况且,正如我之前所说,最坏的情况也不过是你的提交不被“鸟类百科”所接受(而这也是因为项目的所有者看不到你对鸟类百科的愿景,那是一片关于鸟类知识的网络天地,鸟与他们的祖先在那里愉快地共存)。 -你需要会写代码来贡献开源吗?与大众认知相违的是,[你不需要][6]。项目需要“民生”以兴旺,这意味着他们需要来自不同背景的人的贡献。视觉设计师、撰稿人、营销、评审、翻译、主题爱好者,甚至只是最终产品的用户,都是可贵的贡献者。他们不仅是帮忙搭建并改进了产品,他们也识别出了漏洞,提出了修改建议,为项目做出宣传,最终使得社区强大。 +你需要会写代码来贡献开源吗?与大众认知相违的是,[你不需要][6]。项目“需要举全村之力”以兴旺,这意味着他们需要来自不同背景的人的贡献。视觉设计师、撰稿人、营销、评审、翻译、主题爱好者,甚至只是最终产品的用户,都是可贵的贡献者。他们不仅是帮忙搭建并改进了产品,他们也识别出了漏洞,提出了修改建议,为项目做出宣传,最终使得社区强大。 -简单来说,不论你的背景是什么,经验有多少,只要你对开源或是某个特别的项目感兴趣,你几乎被保证了一个会张开双臂欢迎你的社区。 +简单来说,不论你的背景是什么,经验有多少,只要你对开源或是某个特别的项目感兴趣,你几乎可以保证会被张开双臂欢迎。 ### 现在就加入开源吧 还是不确定应该从哪开始?这里有些能帮助你的想法和资源: - - [Up For Grabs][7] 是一份“专门为新贡献者策划任务的开源项目清单。”这里很适合新贡献者们来寻找简单的初次 PR 机会,这次机会也能让你探寻你更喜欢哪种贡献。 -- 来看看 GitHub 上的这份[新手友好项目][8]列表吧。 -- 如果你还是缺乏灵感,考虑一下[贡献][9]红帽(Red Hat)的开放设计系统 [PatternFly][10](或者一起飞)。 +- 来看看 GitHub 上的这份 [新手友好项目][8] 列表吧。 +- 如果你还是缺乏灵感,考虑一下[贡献][9](或一起“飞”) 红帽Red Hat的开放设计系统 [PatternFly][10]。 +- LCTT 夹带私货:你还可以通过参与 LCTT 的翻译工作来首次体验如何参与开源,这几乎简单到你只需要懂一点点英文和一些热情,本文就是由开源贡献者翻译贡献而成的。入口在此: https://linux.cn/lctt/ -------------------------------------------------------------------------------- @@ -80,7 +82,7 @@ via: https://opensource.com/article/22/11/get-started-open-source 作者:[Katie Edwards][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/) 荣誉推出 @@ -96,3 +98,4 @@ via: https://opensource.com/article/22/11/get-started-open-source [8]: https://github.com/MunGell/awesome-for-beginners [9]: https://github.com/patternfly [10]: https://www.patternfly.org/v4/get-started/design +[11]: https://img.linux.net.cn/data/attachment/album/202301/30/110936lhhk216wajijdh22.jpg \ No newline at end of file From 3fd23b4b766e64426c53834447afe1188f099107 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Mon, 30 Jan 2023 14:04:04 +0800 Subject: [PATCH 274/357] translating --- ... A ChatGPT GNOME Extension is in Development for Linux Users.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md index 23d6d3974d..13eaff0d53 100644 --- a/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md +++ b/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/chatgpt-gnome-extension-development/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "chai001125" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 2a0821642f1d248381f5085fee7531c36bdeb430 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 30 Jan 2023 15:43:39 +0800 Subject: [PATCH 275/357] ATRP @wxy https://linux.cn/article-15493-1.html --- ...rminal a Retro Look Using this Neat Application.md | 107 ++++++++++++++++ ...rminal a Retro Look Using this Neat Application.md | 115 ------------------ 2 files changed, 107 insertions(+), 115 deletions(-) create mode 100644 published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md delete mode 100644 sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md diff --git a/published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md b/published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md new file mode 100644 index 0000000000..97ae7325bf --- /dev/null +++ b/published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md @@ -0,0 +1,107 @@ +[#]: subject: "Give your Terminal a Retro Look Using this Neat Application" +[#]: via: "https://www.debugpoint.com/cool-retro-terminal/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15493-1.html" + +给你的终端一个复古的外观 +====== + +> 想让你的终端有一个复古的外观?本指南将帮助你在 Linux 发行版中安装 Cool Retro Terminal 应用程序。 + +![酷炫复古终端][1] + +你有没有想过如何在你的 Linux 终端中模仿那些老式 CRT 显示器的外观? + +那些 CRT 屏幕有自己的粉丝。如果你把苹果 2 或 IBM 3278 终端之类与今天的 4K 显示器显示相比较,它们的外观真的很酷。我并不是说 4K 显示器不好,但有时传统的显示器会让我们想起那些过去的日子。闲话少说。让我们开始安装这个应用程序。 + +### Cool Retro Terminal + +该应用程序是自由开源的。它被称为 [cool-retro-term][2]。它是轻量级的,有许多自定义选项,有预先设置的配置文件,如 Apple 2 等。它还能在你的终端中提供那些静态噪音和扫描线效果。很酷,不是吗? + +它是用 Qt 构建的,需要 Qt 5.2 或更高版本。如果你使用的是最新的 Linux 发行版,在依赖性方面你应该没问题。 + +![绿色扫描线主题][3] + +### 如何下载和安装 Cool Retro Terminal + +Ubuntu、Linux Mint 和其他基于 Debian 的发行版: + +使用下面的简单命令在你的 Ubuntu 和其他相关发行版中安装这个应用程序: + +``` +sudo apt install cool-retro-term +``` + +Arch Linux: + +这个软件包在 Arch 用户仓库(AUR)中可用。如果你没有启用 AUR,请使用 [本指南][4] 启用它,然后使用以下命令来安装它: + +``` +pacman -S cool-retro-term +``` + +Fedora、RHEL 和其他相关发行版: + +对于 Fedora 和其他相关的 Linux,使用下面的命令来安装这个应用程序: + +``` +sudo dnf install cool-retro-term +``` + +Appimage: + +也有一个 AppImage 格式的独立的可执行程序,你可以直接下载并运行。不需要安装。按照下面的命令来做: + +``` +wget https://github.com/Swordfish90/cool-retro-term/releases/download/1.1.1/Cool-Retro-Term-1.1.1-x86_64.AppImage +chmod a+x Cool-Retro-Term-1.1.1-x86_64.AppImage +./Cool-Retro-Term-1.1.1-x86_64.AppImage +``` + +注意:在 GitHub 中,没有 1.2.0 以后的版本的 AppImage 构建版。 + +### 配置 + +安装完成后,你可以在应用程序菜单中找到终端应用程序 “Cool Retro Term”。那么,启动该应用程序并享受其中吧。 + +请记住,这覆盖你的 Linux 发行版中的默认控制台/终端应用程序。它是一个独立的控制台应用程序。 + +配置选项可以通过右键菜单访问。 + +上下文菜单给你提供了以下预设。然后你可以通过设置窗口对它们中的每一个进行颜色和外观设置的配置。例如,如果你想要更多的透明度、对比度或更多的噪音、环境光或闪烁。所有这些都可以从下面的设置窗口通过几个选项进行配置。 + +而且,你可以轻松地制作你自己的主题。 + +![Cool Retro Term 中的预装主题][5] + +![设置中的各种效果][6] + +### 总结 + +Cool Retro Terminal 是一个用于 Linux 桌面的老式显示管终端,它可以让你体验到如同坐在复古终端前的感觉。你可能喜欢,也可能不喜欢,而且人们几乎不把它作为日常使用。但它仍然是一个漂亮的终端,可以时不时地体验一下,以摆脱平凡的终端。 + +你喜欢复古的外观吗?你最喜欢的主题是什么?请在下面的评论区告诉我。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/cool-retro-terminal/ + +作者:[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/2021/12/cool-retro-terminal-1024x576.jpg +[2]: https://github.com/Swordfish90/cool-retro-term +[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/Green-Scanlines-Theme-1024x594.jpg +[4]: https://www.debugpoint.com/2021/01/install-yay-arch/ +[5]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pre-loaded-Themes-in-Cool-Retro-Term-1024x599.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2021/12/Various-Effects-in-Settings.jpg diff --git a/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md b/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md deleted file mode 100644 index 368c395c73..0000000000 --- a/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md +++ /dev/null @@ -1,115 +0,0 @@ -[#]: subject: "Give your Terminal a Retro Look Using this Neat Application" -[#]: via: "https://www.debugpoint.com/cool-retro-terminal/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Give your Terminal a Retro Look Using this Neat Application -====== - -**Want to give your Terminal a retro look? This guide contains instructions to help you to install Cool Retro Terminal application in all Linux distributions.** - -![Cool Retro Terminal][1] - -Cool Retro Terminal - -Have you ever wondered how you can mimic the look of those old CRT monitors displayed in your Linux terminal? - -Those CRT screens have their own fan base. Like the Apple 2 or the IBM 3278 terminals – they are really cool looking if you compare them to today’s 4K monitor displays. I am not saying 4K is bad, but sometimes legacy displays remind us of those bygone days. Enough of these ramblings. Let’s get started installing the app. - -### Cool Retro Term - -The application is free and open-sourced. And it is called [cool-retro-term][2]. It is lightweight and has many customization options with pre-set profiles, such as Apple 2, etc. It also gives you those static noises and scan-lines effects in your terminal. Cool, isn’t it? - -It is built in Qt and requires Qt 5.2 and higher. If you are using the latest Linux distributions, you should be good in terms of dependencies. - -![Green Scanlines Theme][3] - -Green Scanlines Theme - -### How to Download and Install Cool Retro Terminal - -#### Ubuntu, Linux Mint and other Debian-based distributions - -The following simple command will install this application in your Ubuntu and other related distributions. - -``` -sudo apt install cool-retro-term -``` - -#### Arch Linux - -This package is available in Arch User Repository AUR. If you do not have AUR enabled, enable it using [this guide][4] and then use the following commands to install it. - -``` -pacman -S cool-retro-term -``` - -#### Fedora, RHEL and other related distributions - -For Fedora and other related Linux, use the following command to install this app. - -``` -sudo dnf install cool-retro-term -``` - -#### Appimage - -A self-contained executable as AppImage is also available, which you can just download and run. No installation is required. Follow the below commands to do that. - -``` -wget https://github.com/Swordfish90/cool-retro-term/releases/download/1.1.1/Cool-Retro-Term-1.1.1-x86_64.AppImage -chmod a+x Cool-Retro-Term-1.1.1-x86_64.AppImage -./Cool-Retro-Term-1.1.1-x86_64.AppImage -``` - -Note: Version 1.2.0 onwards there are no AppImage build in the GitHub. - -### Configurations - -After the installation is finished, you can find the terminal application “Cool Retro Term” in the application menu. So, launch the application and enjoy. - -Remember, this is not overriding your default console/terminal application in your Linux distributions. It is a stand-alone console application. - -The configuration options are available via the Right Click context menu. - -The context menu gives you the following pre-sets. You can then configure each of them for colour, and appearance settings via the settings window. For example, if you want more transparency, contrast or more noise, ambient light or flickering – all of them can be configured from the below settings window via several options. - -And easily you can make your own theme. - -![Pre-loaded Themes in Cool Retro Term][5] - -Pre-loaded Themes in Cool Retro Term - -![Various Effects in Settings][6] - -Various Effects in Settings - -### Summary - -Cool Retro Terminal is an old tube-style terminal for Linux desktops that allows you to experience it as if you are sitting in front of a retro terminal. You may or may not like it, and one hardly uses it for a daily driver. But still, a nice-looking terminal to experience from time to time to get away from the mundane terminal. - -Do you like the retro look? What is your favourite theme? Let me know in the comment section below. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/cool-retro-terminal/ - -作者:[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/2021/12/cool-retro-terminal-1024x576.jpg -[2]: https://github.com/Swordfish90/cool-retro-term -[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/Green-Scanlines-Theme-1024x594.jpg -[4]: https://www.debugpoint.com/2021/01/install-yay-arch/ -[5]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pre-loaded-Themes-in-Cool-Retro-Term-1024x599.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2021/12/Various-Effects-in-Settings.jpg From 839741e3c09a02c26324bc8a56dd7fb248d5ea67 Mon Sep 17 00:00:00 2001 From: onionstalgia Date: Tue, 31 Jan 2023 00:38:31 +0800 Subject: [PATCH 276/357] translated --- ...919 I got my first pull request merged!.md | 94 ------------------- ...919 I got my first pull request merged!.md | 94 +++++++++++++++++++ 2 files changed, 94 insertions(+), 94 deletions(-) delete mode 100644 sources/talk/20220919 I got my first pull request merged!.md create mode 100644 translated/talk/20220919 I got my first pull request merged!.md diff --git a/sources/talk/20220919 I got my first pull request merged!.md b/sources/talk/20220919 I got my first pull request merged!.md deleted file mode 100644 index 5a7350d66e..0000000000 --- a/sources/talk/20220919 I got my first pull request merged!.md +++ /dev/null @@ -1,94 +0,0 @@ -[#]: subject: "I got my first pull request merged!" -[#]: via: "https://opensource.com/article/22/9/first-pull-request-merged" -[#]: author: "Oluwaseun https://opensource.com/users/jhhornn" -[#]: collector: "lkxed" -[#]: translator: "onionstalgia" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -I got my first pull request merged! -====== -Experience the joy that contributing to open source brings. - -![Dandelion zoomed in][1] - -Image by: Photo by Rob Tiller, CC BY-SA 4.0 - -Words cannot express my joy when I got the notification about the merge below, and I owe it to my current engineering school, [AltSchool Africa][2]. - -![successful merge message][3] - -Before this, I had been introduced to open source many times, told about its importance in the tech space, and even attended open source conferences (e.g., OSCAFest). I had all the instant excitement to start, but imposter syndrome set in on opening GitHub to create something. - -Fast forward to Monday, the 8th of August, 2022, when I watched Bolaji's video on contributing to open source. I felt pumped again, but I wanted to apply what I learned, so I noted some steps. - -The steps: - -1. I made up my mind I was going to contribute to a project. -2. I was focused on a site ([good first issue][4]) to pick my first project from, which I filtered to suit my skill level. I kept opening the next page till I found one. -3. I made sure I was equipped with the required [Git and GitHub][5] knowledge to complete the project. - -### The project - -After long hours searching for projects, I finally found one titled, [Ensure no missing alt attributes][6]. I was to give descriptive alt values to images from the site. Alt values in images help to improve the accessibility of the site such that screen readers can provide a detailed description of the image to, say, a visually impaired person. Easy right? Yes, but if I didn't make up my mind to get the first contribution, I wouldn't find it, and open source would continue to be a myth to me. - -I was still pumped until I discovered it was from [MDN][7]. Wait, MDN? As in Mozilla developer? Will they merge my contribution even with how seemingly easy it looks? [Imposter syndrome][8] set in. - -Upon checking the issue, I saw that people were already contributing. I summoned my courage and started reading about it. Taking my time to read and understand the project and how I needed to approach the issue was another challenge I had to overcome. - -The project is as easy as you try to understand it. - -So, I picked two images to begin with. I gave alt values to them, committed my changes, then made a pull request. The time between when I made the pull request and when I got the approval mail was full of self-doubts. Should I close the pull request? This is MDN. Well, it's not coding... What if I don't get merged? I might never contribute again. All it took to clear all of the doubts were the emails I got from my reviewer below: - -![Email of approved pull request][9] - -![mail showing that pull request has been merged][10] - -![congratulatory mail on contributing and merging of pull request][11] - -I was indeed delighted, and this inspired me to check for more. It gave me the courage I needed to request additional issues to solve. - -![Mail of issue assignment][12] - -### Summary - -A few lessons I'd love you to take home from this article are: - -* Open source is for all. Do you see that typo on that site you just visited? You helping to correct it is a way of contributing. -* No skillset is too small. A basic understanding of HTML was what I needed to contribute. -* Only you can stop yourself from contributing. -* The first contribution is all you need to get the ball rolling. - -I hope you have been able to pick something from my story and apply it today. This is another space I'd like to keep contributing to, so see you in my next article, and happy open sourcing! - -*[This article originally appeared on I got my first Pull Request merged! and is republished with permission.][13]* - -Image by: (Awosise Oluwaseun, CC BY-SA 4.0) - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/9/first-pull-request-merged - -作者:[Oluwaseun][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/jhhornn -[b]: https://github.com/lkxed -[1]: https://opensource.com/sites/default/files/dandelion_zoom.jpg -[2]: https://www.altschoolafrica.com/ -[3]: https://opensource.com/sites/default/files/2022-09/successfulmerge.png -[4]: https://goodfirstissues.com/ -[5]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models -[6]: https://github.com/mdn/content/issues/19334 -[7]: https://developer.mozilla.org/en-US/ -[8]: https://opensource.com/article/20/9/imposter-syndrome -[9]: https://opensource.com/sites/default/files/2022-09/approved.png -[10]: https://opensource.com/sites/default/files/2022-09/merged_0.png -[11]: https://opensource.com/sites/default/files/2022-09/thanks.png -[12]: https://opensource.com/sites/default/files/2022-09/next.png -[13]: https://dev.to/jhhornn/i-got-my-first-pull-request-merged-3ei9 diff --git a/translated/talk/20220919 I got my first pull request merged!.md b/translated/talk/20220919 I got my first pull request merged!.md new file mode 100644 index 0000000000..caa06c812b --- /dev/null +++ b/translated/talk/20220919 I got my first pull request merged!.md @@ -0,0 +1,94 @@ +[#]: subject: "I got my first pull request merged!" +[#]: via: "https://opensource.com/article/22/9/first-pull-request-merged" +[#]: author: "Oluwaseun https://opensource.com/users/jhhornn" +[#]: collector: "lkxed" +[#]: translator: "onionstalgia " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +我的第一个拉取请求被合并了! +====== +> 体验为开源做出贡献的快乐。 + +![Dandelion zoomed in][1] + +图片来自 Rob Tiller, CC BY-SA 4.0 + +难以用言语形容我在收到合并通知(如下图)时的喜悦,当然这要归功于现在我上的工程学校,[AltSchool Africa][2]。 + +![successful merge message][3] + +在此之前,我曾多次接触过开源的概念,了解它在技术领域的重要性,甚至参加过开源会议(比如 OSCAFest)。我曾多次跃跃欲试,但当打开 GitHub 来想创建些东西时,冒名顶替综合症就会冒出来。 + +快进到 2022 年 8 月 8 日星期一。当观看了 Bolaji 为开源做贡献的视频之后,我重新振奋起来。不过,想要把我学到的东西付诸实践,我注意到需要下面几个步骤: + +步骤: + +1. 我要下定决心,做好为一个开源项目做出贡献的心理建设。 +2. 我要根据我的技能水平进行筛选,选择一个站点([一个比较好的议题(issue)][4])来开始我的第一个项目。我不停地往下翻看,直到找到了一个符合心意的项目。 +3. 我要确定自己掌握完成项目所需的 [Git 和 GitHub][5] 知识。 + +### 项目 + +经过长时间查找,我终于找到了一个名为 [确保没有缺失的 alt 属性][6] 的项目。我所要做的,就是为网站上的图片提供描述性的 alt 值。图片的 alt 值有助于提高网站的辅助功能,这样屏幕阅读器就可以向视障人士提供图像的详细描述了。这很简单,对吧?是的,但假如我没有下定决心想要作出贡献,我就不会找到这项目,在我心中开源仍将是个神话。 + +我心潮澎湃,直到发现这个项目是来自[MDN][7]的。等等,MDNMozzila 开发者网络?干和 Mozilla 的开发者一样的事儿?他们会合并我这么小儿科的贡献吗?[莫名顶替综合症 ][8] 又开始了。 + +在检查这个议题时,我看到有人已经在提交贡献了,于是我鼓起勇气开始翻阅项目的内容。阅读和理解这个项目颇花费了我一些时间,而另一个要克服的,就是清楚处理这个议题我要怎么做。 + +这个项目就像你想的那么简单。 + +于是,我挑选了两幅图片着手尝试。我给它们的 alt 属性赋值,提交我的更改,然后发出拉取请求。从提交请求到收到批准邮件的这段时间,我充满了自我怀疑。我要不要关闭拉取请求?这可是 MDN 啊。好吧,这甚至都不算编程...... 如果请求没有被合并怎么办?我恐怕再也不会想为开源做出贡献了。不过,所有的疑虑都在我看到审阅者发来的这些邮件时烟消云散: + +![拉取请求确认邮件][9] + +![拉取请求被合并的通知邮件][10] + +![做出贡献和请求被合并的祝贺邮件][11] + +我喜出望外,这激发了我去检查更多图片的热情,也给了我发请求解决其他议题所需的勇气。 + +![议题分配邮件][12] + +### 总结 + +我希望你能从这篇文章中感受到以下几点: + +* 开源是面向所有人的。你在刚刚访问的那个网站上看到拼写错误了吗?你帮助订正了拼写错误,这就是为开源做出了贡献。 +* 没有任何技能是微不足道的。如您所见,我所做出的贡献,只需要对 HTML 最基本的了解。 +* 能阻止你做出贡献的只有你自己。 +* 要想让雪球滚起来,需要做的就只是提交第一个贡献。 + +我衷心希望您能从我的经历中获得什么,并且今天就付诸实践。这也就是我想贡献的另一个领域,那么,我们下一篇文章见,也祝您开源愉快! + +*[这篇文章是我的第一个拉取请求被合并后的有感而发!并经许可转载。][13]* + +Image by: (Awosise Oluwaseun, CC BY-SA 4.0) + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/9/first-pull-request-merged + +作者:[Oluwaseun][a] +选题:[lkxed][b] +译者:[onionstalgia](https://github.com/onionstalgia) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jhhornn +[b]: https://github.com/lkxed +[1]: https://opensource.com/sites/default/files/dandelion_zoom.jpg +[2]: https://www.altschoolafrica.com/ +[3]: https://opensource.com/sites/default/files/2022-09/successfulmerge.png +[4]: https://goodfirstissues.com/ +[5]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/getting-started/about-collaborative-development-models +[6]: https://github.com/mdn/content/issues/19334 +[7]: https://developer.mozilla.org/en-US/ +[8]: https://opensource.com/article/20/9/imposter-syndrome +[9]: https://opensource.com/sites/default/files/2022-09/approved.png +[10]: https://opensource.com/sites/default/files/2022-09/merged_0.png +[11]: https://opensource.com/sites/default/files/2022-09/thanks.png +[12]: https://opensource.com/sites/default/files/2022-09/next.png +[13]: https://dev.to/jhhornn/i-got-my-first-pull-request-merged-3ei9 From f326c351269f402331d0813dd9d3ac006045d50f Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 31 Jan 2023 08:53:32 +0800 Subject: [PATCH 277/357] translated --- ... Writer World-Class LIVE USB Creator [Tutorial].md | 136 ------------------ ... Writer World-Class LIVE USB Creator [Tutorial].md | 133 +++++++++++++++++ 2 files changed, 133 insertions(+), 136 deletions(-) delete mode 100644 sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md create mode 100644 translated/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 deleted file mode 100644 index 66564fd179..0000000000 --- a/sources/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md +++ /dev/null @@ -1,136 +0,0 @@ -[#]: 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: "geekpi" -[#]: 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/ diff --git a/translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md b/translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md new file mode 100644 index 0000000000..48a3208d28 --- /dev/null +++ b/translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md @@ -0,0 +1,133 @@ +[#]: 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: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Fedora Media Writer:世界级 LIVE USB 创建器(教程) +====== + +**关于安装和使用 Fedora Media Writer 从 Linux 和 Windows 创建 LIVE USB 的教程。** + +![Fedora Media Writer][1] + +### Fedora Media Writer + +社区和 Fedora Linux 团队开发并维护 [Fedora Media Writer 应用][2]。这个应用可以将任何 ISO 镜像写入你的闪存盘(U 盘)中。此外,Fedora Media Writer 还有直接从 Fedora 镜像中下载 ISO 文件的功能,前提是你有一个稳定的互联网连接。 + +此外,它还为你提供了一个下载选项列表:比如官方版本、新兴版本、Spin 版本和 Fedora 实验室镜像。 + +不仅如此,你还可以使用这个灵巧的工具将任何其他 ISO 镜像写入你的闪存。它不总是需要 Fedora ISO。 + +虽然有其他流行的工具可以用来创建 LIVE USB,比如 [Etcher][3]、Ventoy 和 Rufus,但考虑到该团队是从主流 Fedora Linux 与贡献者一起开发的,你仍然可以尝试使用此程序。 + +因此,综上所述,这里是 Fedora Media Writer 的快速功能亮点。 + +#### Fedora Media Writer 的功能摘要 + +- 适用于 Linux、Windows 和 macOS +- 直接下载+写入镜像到 USB 闪存 +- 官方版本(Workstation、IoT、Server)下载 +- 新兴版本(Silverblue、Kinoite)下载 +- Spin(KDE Plasma、Xfce 等) +- 实验室(Fedora Astronomy、Robotic 等) +- 可作为 Linux 发行版的 Flatpak 包 +- 同时,可以将任何其他 ISO 镜像(非 Fedora)写入 U 盘。 +- 能够格式化 U 盘,恢复 U 盘 +- 基于 Qt + +### 如何安装 + +#### Linux + +Fedora Media Writer 以 Flatpak 的形式提供给 Linux 发行版。要在任何 Linux(如 Fedora、Ubuntu 或 Linux Mint)中安装它,请[按照这个指南设置 Flatpak][4]。 + +然后,点击下面的链接进行安装。这将启动你的 Linux 发行版的官方软件程序(如 Discover、GNOME Software)。安装后,你可以通过应用程序菜单启动它。 + +[以 Flatpak 形式安装 Fedora Media Writer][5] + +#### Windows + +如果你是一个 Windows 用户并计划迁移到 Linux(或 Fedora),它是一个完美的工具。你需要从 GitHub 上下载 exe 安装程序(链接如下),并按照屏幕上的指示进行安装。 + +[用于 Windows 的最新安装程序(exe)][6] + +安装完成后,你可以从开始菜单启动它。 + +对于 macOS,你可以在上述链接中获取 dmg 文件。 + +### 如何使用 Fedora Media Writer 在 Linux 中创建 LIVE USB + +第一个页面给你两个主要选项。自动下载选项用于即时下载 ISO 镜像。第二个选项是直接从你的磁盘上写入已经下载的 ISO 文件。 + +如果你已经插上了 USB,你应该看到它是第三个选项。第三个选项是格式化并删除你 U 盘中的所有数据,并将其恢复到出厂设置。 + +此外,你也可以用这个工具来格式化你的 USB 闪存。你不需要任何命令或任何花哨的东西。需要注意的一点是,这个选项只有在你的 U 盘有数据时才可见。如果它已经被格式化了,该工具可以检测到它,但不会显示恢复它的选项!! 😲 + +#### 自动下载和写入 + +![Fedora Media Writer - 第一个页面][7] + +自动下载选项为你提供了以下页面,可以从镜像中下载任何你想要的 Fedora ISO。这对很多人来说很有用,因为它消除了单独下载 ISO 文件、验证校验和等的麻烦。 + +![自动下载选项给了你这些选项][8] + +在选择了发行版之后,最后的页面会给你版本(Fedora 36、35 等)和架构(x86、ARM 等)的选项。另外,你应该看到目标 USB。点击下载和写入,开始这个过程。 + +![Fedora Media Writer 的最终写入页面][9] + +#### 从磁盘上写入一个现有的 ISO 文件 + +当你选择 “select iso file” 时,你可以从系统中选择该文件。之后,选择目标 USB 驱动器,然后点击写入,开始这个过程。 + +![通过 Fedora Media Writer 直接写入 ISO][10] + +![写入进行中][11] + +![写入完成][12] + +写入操作完成后,你可以看到如上所示的确认信息。在我的测试中,写一个大约 3GB 的 ISO 需要大约 3 到 4 分钟。 + +### 使用 Fedora Media Writer 在 Windows、macOS 中创建 LIVE USB + +在 Windows 和 macOS 中使用这个工具的步骤是一样的,就像上面显示的 Linux 一样。你可以在安装后轻松找到快捷方式,并以同样的方式启动。 + +![在 Windows 11 中运行][13] + +### 结束语 + +我希望本指南能帮助你在日常的 USB 写入工作中使用 Fedora Media Writer。另外,这个工具的好处是你可以用它来格式化/恢复你的 U 盘。你不再需要 GParted 或 GNOME Disks 了。 + +对于 Linux、Windows 和 macOS 用户来说,这是一个非常棒的程序。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/fedora-media-writer/ + +作者:[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/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 \ No newline at end of file From 4270b232c9e4bc3388004172436c4156ebca3ce3 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 31 Jan 2023 08:58:57 +0800 Subject: [PATCH 278/357] translating --- .../20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md index 3e0c0aa77b..28a480f9d1 100644 --- a/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md +++ b/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/gnome-screenshot-tool-usage/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpis" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 3a272ec63fd24586105f261ee47ed2e1c970c152 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 31 Jan 2023 09:32:00 +0800 Subject: [PATCH 279/357] RP @geekpi https://linux.cn/article-15495-1.html --- ...114.0 ⭐️ A 4-minute guide to Java loops.md | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) rename {translated/tech => published}/20230114.0 ⭐️ A 4-minute guide to Java loops.md (57%) diff --git a/translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md b/published/20230114.0 ⭐️ A 4-minute guide to Java loops.md similarity index 57% rename from translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md rename to published/20230114.0 ⭐️ A 4-minute guide to Java loops.md index 4e6780fd4e..850fe767b9 100644 --- a/translated/tech/20230114.0 ⭐️ A 4-minute guide to Java loops.md +++ b/published/20230114.0 ⭐️ A 4-minute guide to Java loops.md @@ -3,18 +3,22 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15495-1.html" -4 分钟的 Java 循环指南 +Java 循环语句的简要指南 ====== -一个 while 循环执行一组任务,只要某些预定的条件为真。这被认为是一个控制结构,可以指导程序的流程。它是一种方法,你可以通过定义一个条件来告诉你的代码要做什么,它可以测试,并根据它发现的情况采取行动。Java 中的两种 while 循环是 while 和 do while。 +![][0] + +> 无论你使用的是 `while` 循环、`do`/`while` 循环,还是无限循环,了解循环的工作原理对 Java 编程至关重要。 + +只要某些预定的条件为真,一个 `while` 循环就会执行一组任务。这被认为是一个控制结构,可以指导程序的流程。它是一种你可以通过定义一个条件来告诉你的代码要做什么的方法,它可以测试它,并根据它发现的情况采取行动。Java 中的两种 `while` 循环是 `while` 和 `do`/`while`。 ### Java while 循环 -while 循环的目的是对数据进行迭代,直到某个条件得到满足。要创建一个 while 循环,你需要提供一个可以测试的条件,然后是你想要运行的代码。Java 有几个内置的测试函数,其中最简单的是数学运算符(`<`, `>`, `==`, 等等): +`while` 循环的目的是对数据进行迭代,直到某个条件得到满足。要创建一个 `while` 循环,你需要提供一个可以测试的条件,然后是你想要运行的代码。Java 有几个内置的测试函数,其中最简单的是数学运算符(`<`, `>`, `==`, 等等): ``` package com.opensource.example; @@ -31,7 +35,7 @@ public class Example { } ``` -在这个简单的例子中,条件是变量 `count` 小于5。因为 `count` 被实例化为 0,然后在 while 循环的代码中增加 1,所以程序总共迭代了 5 次: +在这个简单的例子中,条件是变量 `count` 小于 5。因为 `count` 被实例化为 0,然后在 `while` 循环的代码中增加 1,所以程序总共迭代了 5 次: ``` $ java ./while.java @@ -40,7 +44,7 @@ $ java ./while.java 在它进行第六次迭代之前,条件不再是真的,所以循环结束。 -while 循环的条件语句是至关重要的。弄错了可能意味着你的循环永远不会执行。例如,假设你把 `count == 5` 作为条件: +`while` 循环的条件语句是至关重要的。弄错了可能意味着你的循环永远不会执行。例如,假设你把 `count == 5` 作为条件: ``` while (count == 5) { @@ -55,13 +59,13 @@ $ java ./while.java $ ``` -循环被跳过了,因为 `count` 被设置为0,而且在第一次遇到 while 循环的时候,它还是 0。循环从未开始,`count` 也从未被递增。 +循环被跳过了,因为 `count` 被设置为 0,而且在第一次遇到 while 循环的时候,它还是 0。循环从未开始,`count` 也从未被递增。 与此相反的是,当一个条件开始为真,并且永远不会为假时,这将导致一个无限循环。 ### Java do while 循环 -与 while 循环相似,do while 循环在每次迭代结束时测试条件,而不是在开始时测试条件。有了这个循环, 循环中的代码至少运行一次, 因为没有进入的入口, 只有退出的出口: +与 `while` 循环相似,`do`/`while` 循环在每次迭代结束时测试条件,而不是在开始时测试条件。有了这个循环,循环中的代码至少运行一次,因为没有进入的入口,只有退出的出口: ``` package com.opensource.example; @@ -78,7 +82,7 @@ public class Example { } ``` -在这个示例代码中,`count` 被设置为 9。循环重复的条件是 `count` 等于5,但是 9 不等于 5。不过,这个检查要到第一次迭代结束时才进行: +在这个示例代码中,`count` 被设置为 9。循环重复的条件是 `count` 等于 5,但是 9 不等于 5。不过,这个检查要到第一次迭代结束时才进行: ``` $ java ./do.java @@ -87,7 +91,7 @@ $ java ./do.java ### Java 无限循环 -无限循环,正如它的名字所示,永远不会结束。有时它们是被错误地创建的,但无限循环确实有一个有效的场景。有时你想让一个进程无限地继续下去(这在功能上是无限的,因为你不能保证你需要它什么时候停止),因此你可能会把你的条件设置为不可能满足的东西。 +无限循环,正如它的名字所示,永远不会结束。有时它们是被错误地创建的,但无限循环确实有一个有效的场景。有时你想让一个进程无限地继续下去(在功能上是无限的,因为你不能保证你需要它什么时候停止),因此你可能会把你的条件设置为不可能满足的东西。 假设你写了一个应用程序,在僵尸天启期间计算留在你附近的僵尸的数量。为了模拟需要多少个循环才能达到 0 个僵尸的不确定性,我的演示代码从操作系统中检索了一个时间戳,并将计数器(`c`)的值设置为从该时间戳得出的某个数字。因为这是一个简单的例子,你不会真的想陷入一个无限循环,这段代码倒数到 0,并使用 `break` 函数来强制结束循环: @@ -132,7 +136,7 @@ $ java ./zcount.java ### Java 循环 -循环使你能够控制程序的执行流程。迭代在编程中很常见,无论你使用 while 循环、do while 循环还是无限循环,了解循环的工作原理都是至关重要的。 +循环使你能够控制程序的执行流程。迭代在编程中很常见,无论你使用 `while` 循环、`do`/`while` 循环还是无限循环,了解循环的工作原理都是至关重要的。 -------------------------------------------------------------------------------- @@ -141,10 +145,11 @@ via: https://opensource.com/article/23/1/java-loops 作者:[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/) 荣誉推出 [a]: https://opensource.com/users/seth [b]: https://github.com/lkxed +[0]: https://img.linux.net.cn/data/attachment/album/202301/31/093057lesc38vufbuzustm.jpg \ No newline at end of file From 3fc270118c074fc2209b149b73a6a584028a299e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 31 Jan 2023 13:06:35 +0800 Subject: [PATCH 280/357] =?UTF-8?q?=E9=87=8D=E5=BB=BA=E4=BA=86=E6=9C=AF?= =?UTF-8?q?=E8=AF=AD=E5=AD=97=E5=85=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除了之前的版本,将只专注于我们自创和选定的词汇。 --- Dict.md | 172 ++++++++++++++------------------------------------------ 1 file changed, 43 insertions(+), 129 deletions(-) diff --git a/Dict.md b/Dict.md index 82454cfa5d..4f9f9ed03a 100644 --- a/Dict.md +++ b/Dict.md @@ -1,163 +1,77 @@ +LCTT 术语词典 +====== - -
Linux中国术语词典
-
-
[Linux中国](http://www.linux.cn)出品
-**************************************************** -**************************************************** -本词典为规范Linux中国翻译组(LCTT)技术术语翻译而编写,同时也方便广大翻译志愿者查阅。限于编写者的水平,其中可能有不完善或疏漏的地方,希望广大翻译志愿者不吝指正。同时,希望广大翻译志愿者能提供相关术语的翻译供大家参考。另外,若在翻译过程中对某些术语有疑虑,可在我们的QQ专门群中进行讨论。在此,谨代表LCTT感谢各位志愿者的辛勤劳动和无私奉献。 -

LCTT翻译组

-**************************************************** +本文收录了 LCTT 自创和选用的翻译词汇。 -#### A #### -### 1. APM:高级电源管理 -### 2. -#### B #### -### 1. Backbone:骨干 -> 是一个网络的一部分,其作为所有网络运输的一个基本通道,其需要非常高的带宽。一个骨干网络的服务提供者连接许多企业子网和较小服务提供者的网络。一个企业骨干网络连接许多局域网和数据中心。 +为什么要自创翻译词汇?在翻译过程中,我们发现一些非缩写的英语术语沿袭使用了英语单词/短语,而没有得体的、公认的、正式的对应中文翻译。我们认为,中英文混杂是对原生语言的一种污染(英文缩写除外,这是为了减少冗长的语句),按照本地化的宗旨,应该对这些词汇进行翻译,并在必要时创造新的词汇。故此,我们在几年的翻译中,逐渐推敲和形成了一些新的译法,并在我们翻译的文章中使用和推广。 -### 2. B channel(Bearer channel):承载信道 -> 承载信道(Bearer Channel),也叫做B channel,是一个全双工DS0时间槽(64-kbps),其携带模拟语音或数字资料通过综合服务数字网(ISDN)。 +对这些译法,我们尽量遵循“信雅达”的原则。但鉴于水平所及,肯定会有所不足,虽然也有不断的调整和改进,但仍希望得到大家的反馈和指正。 -### 3. Backchannel:反向通道 -> 是指当其他实时在线会话在进行中时,习惯使用网络化的计算机来维持一个实时的在线会话。 +我们采用的方法是: -### 4. Back End:后台 -> 在一个计算机系统中,是指为一个前台作业提供服务的一个节点或软件程序。前台直接影响用户,后台可能与其他系统相连接,如数据库和其它系统。 +- 音似:中文读音近似于英文原词 +- 意近:中文字的意思接近英文原意 +- 组词:根据上述两条组成新的词汇,以避免和原有词汇混淆 -### 5. Back-haul:回程线路 -> 是一个通信信道,它使携带信息流到远于最终目的地的地方,然后将它送回。这样做是因为传输到更远的远程区域的代价要远比直接发送的代价低地多。 +此外,需要说明的是,有些译法可能已经被其他人在别的地方更早提出,但限于我们的学识和搜索能力,并未发现和了解到,并非我们故意剽窃。 -### 6. Backoff:退避 -> 是指当一个主机已经在有MAC 协议的网络中经历了一个冲突之后试图去重发之前的等待时期。这个退避时间通常是任意的来最小化相同节点再次冲突的可能性。在每次冲突后增加退避时期也能帮助预防重复碰撞,特别当这个网络负担很重时。 +顺便说一句,2014 年对 “Shebang”(`#!`)一词翻译时,来自于 LCTT 早期重要贡献者 GOLinux 提出的 “[释伴](https://linux.cn/article-3664-1.html)” 译法,是我们第一次创造新的翻译词汇,也是我们形成这样的想法的起点。 -### 7. Backplane:附加卡 -> 在许多网络中是一个物理接口模块,例如,连接在一个界面处理器或卡和在一个总线机箱内数据总线和功率分配总线之间的一个路由器或转换器。 +除了自创的翻译词汇外,这里还收录了一些选用的翻译词汇。有一些词汇存在多种译法,我们在翻译和使用过程中,采用了某个译法,在此列出以保持一致。 -### 8. Back Pressure:背压 -> 在计算机系统中,是指网络拥塞信息逆流通过一个Internet网络。 +### F -### 9. Balun(balanced-unbalanced):不平衡变压器 -> 意味着平衡-非平衡。不平衡变压器是一个设计用来转换平衡和不平衡之间的电信号的设备。 +#### Fork -### 10. Baseband:基带 -> 是一种类型的网络技术,在那里仅仅一种载波频率被使用。在一个基带网中,信息在传送介质中以数字的形式被携带在一个单一的多元信号通道中。 +Fork 行为/操作广泛用于进程管理、版本管理和软件衍生方面。此词汇也长期缺乏确定的译法。 -### 11. Bastion Host:防御主机 -> 是在内部网络和外部网络之间的一个网关,它被设计来防御针对内部网络的攻击。这个系统在非武装区(DMZ)的公共一边,不被防火墙或过滤路由器保护,它对攻击是完全暴露的。 +此前,提议者对 Fork 给出了 “复刻” 的译法。基本意思是,根据上游/父本复制一份,然后在此基础上进行修改,从而形成“衍生品”。 -### 12: Bc(Committed Burst):约定资讯讯务 -> 是一个用在帧中继系统的术语,是一个帧中继交互网约定接受和传输和通过一个帧中继网络数据链路控制(DLC)和一个特殊的时帧的最大数据量(用比特表示)。 - -### 13. BCP(Best Current Practices):最优现行方法 -> 是副系列的IETF RFCs,其被用于描述在Internet上的最优配置技术。 +有趣的是,我们发现 GitHub 的 [部分中文文档](https://docs.github.com/zh/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks) 中也采用了此译法,不知道是不是受到了我们的影响。 -### 14. BCU(Balanced Configuration Unit):平衡配置单元 -> 是一个综合的IBM解决方法,它由软件和硬件组成。BCUs是综合的和测试作为数据仓库系统的预配置功能块。 +- 提议者:wxy +- 首次链接:https://linux.cn/article-7877-1.html -### 15. BECN(Backward Explicit Congestion Notification):显式拥塞通知 -> 是在帧中继报头的一个1比特域,其发信号到任何接收帧的事物(转换器和数据终端设备),拥塞就发生在帧的反面(后面)。帧中继转换器和数据终端设备可能遵照显式拥塞通知位来减慢那个方向的数据传输率。 +### L -### 16. BER(Bit Error Rate):误码率 -> 是接收到的位包含错误的比率。BER通常被表示成十足的负面力量。 +#### Live -### 17. BIP(Bit Interleaved Parity):位交叉奇偶校验 -> 一个用在ATM中的术语,是一个通常用来检测链接错误的一种方法。一个检测位或字被嵌入到以前发生阻塞或帧的链接中。位错误在有效载荷中能够作为维护信息被删除和报告。 +Live 原意多指“现场”、“实时”,在计算机环境中使用时也多引用此意。但对它的翻译就颇费神,因为无论是在 Live Patch,还是更多见的 Live USB/CD、Live Session,其实都不好翻译为“现场”、“实时”。 -#### C #### +提议者之前曾经尝试创造了新的“[临场](https://linux.cn/article-12854-1.html)”词汇,但是感觉有些不够达意。经过推敲,提议者再次推荐使用“立付”,在照顾发音的同时,取其“立时交付”之意。这样,Live USB/CD 可以译做 “立付 USB/CD”,Live Session 可以译做 “立付会话”。 -#### D #### -### 1. daemon:守护进程 -### 2. -#### F #### +而对于 Live Stream,提议者建议依旧翻译为“直播”、“实时流”。对于 Live Patch,还是采用 “热补丁” 这样的意译。 -#### G #### +- 提议者:wxy +- 首次链接(临场):https://linux.cn/article-12854-1.html +- 首次链接(立付):(暂缺) -#### H #### -### 1. Home Directory:家目录 -#### I #### -### 1. issue:工单 -> 有翻译做“问题”的,但是应该译作“工单”,尤其是用于 GitHub 中。 +#### Repo/Repository -#### J #### +Repository 主要用于两个场景,一个是用于版本管理的代码仓库,一个是用于分发软件/组件/制品的软件仓库。 -#### K #### +鉴于两种场景的差异,建议在使用时,分别注明“代码仓库”或“软件仓库”,也可简称为 “代码仓”或“软件仓”。 -#### L #### -### 1. live CD:现场版 CD -> 通常不翻译,但是如果翻译,可以译作“现场版”。 -### 2. live patch: 实时补丁/热补丁 -> 指 Linux 内核的 live patch 支持。 +### S -### 2. LTS(Long Term Support):长期支持 -> 该缩写词多见于操作系统发行版或者软件发行版名称中,表明该版本属于长期支持版。 +#### Shebang [ʃɪ'bæŋ]:释伴 -#### M #### +Shebang(也称为 Hashbang)是一个由井号和叹号构成的字符序列(`#!`),出现在脚本文件的第一行的前两个字符,后跟解释器路径,如:`#!/bin/sh`,这通常是 Linux 中 shell 脚本的标准起始行。 -#### N #### +长期以来,Shebang 都没有正式的中文名称。提议者将其翻译为:“释伴”,即解释伴随行的简称,同时又是 Shebang 的音译。(关于这个词汇的翻译,在下面的首次链接中有其它的建议和讨论。) -#### O #### -### 1. Orchestration:编排 -> 描述复杂计算机系统、中间件(middleware)和业务的自动化的安排、协调和管理(来自维基百科)。 +- 提议者:GoLinux +- 首次链接:https://linux.cn/article-3664-1.html -#### P #### -### 1. P-code(Pseudo-code):伪代码语言 -> 一种解释型语言,执行方式介于编译型语言和解释型语言之间。和解释型语言一样,伪代码编程语言无需编译,在执行时自动转换成二进制形式。然而,和编译型语言不同的是,这种可执行的二进制文件是以伪代码的形式而不是机器语言的形式存储的。伪代码语言的例子有 Java、Python 和 REXX/Object REXX。 +#### Shell :交互界面 -### 2. PAM(Pluggable Authentication Modules):可插拔认证模块 -> 用于系统安全性的可替换的用户认证模块,它允许在不知道将使用何种认证方案的情况下进行编程。这允许将来用其它模块来替换某个模块,却无需重写软件。 +Shell 是 Unix/Linux 等系统的 `sh`、`bash` 等命令行的接口程序,包括 DOS/Windows 的 `command.com`/`cmd.exe` 等其实也属于此类,只是通常不这样称呼。 -### 3. Port/Ported/Porting:移植 -> 一个过程,即获取为某个操作系统平台编写的程序,并对其进行修改使之能在另一 OS 上运行,并且具有类似的功能。 +这个词汇也是一个一直没有翻译而径直使用的计算机词汇。我们也没有见到(找到)合适的翻译。但是我们在 LCTT 译者 CanYellow 翻译的一篇文章中见到他将其翻译为 “交互界面”,我们认为这是一种好的翻译。 -### 4. POSIX(Portable Operating System Interface for uniX):UNIX 可移植操作系统接口 -> 一组编程接口标准,它们规定如何编写应用程序源代码以便应用程序可在操作系统之间移植。POSIX 基于 UNIX,它是 The Open Group 的 X/Open 规范的基础。 +- 提议者:CanYellow +- 首次链接:https://linux.cn/article-15469-1.html -#### Q #### +### 说明 -#### R #### -### 1. RCS(Revision Control System):修订控制系统 -> 一组程序,它们控制组环境下文件的共享访问并跟踪文本文件的变化。常用于维护源代码模块的编码工作。 - -### 2. RFS(Remote File Sharing):远程文件共享 -> 一个程序,它让用户访问其它计算机上的文件,就好象文件在用户的系统上一样。 - -#### S #### -### 1. shebang [ʃɪ'bæŋ]:释伴 -> Shebang(也称为Hashbang)是一个由井号和叹号构成的字符序列(#!),出现在文本文件的第一行的前两个字符,后跟解释器路径,如:#!/bin/sh,这通常是Linux中shell脚本的标准起始行。 -> 长期以来,shebang都没有正式的中文名称。Linux中国翻译组将其翻译为:释伴,即解释伴随行的简称,同时又是shebang的音译。 - -### 2. Spool(Simultaneous Peripheral Operation On-Line):假脱机 -> 将数据发送给一个程序,该程序将该数据信息放入队列以备将来使用(例如,打印假脱机程序) - -### 2. Steganography:隐写术 -> 将一段信息隐藏在另一段信息中的做法。一个示例是在数字化照片中放置不可见的数字水印。 - -### 3. Swap:交换 -> 暂时将数据(程序和/或数据文件)从随机存取存储器移到磁盘存储器(换出),或反方向移动(换入),以允许处理比物理内存所能容纳的更多的程序和数据。 - -### 4. Scheduling:调度 -> 将任务分配至资源的过程,在计算机或生产处理中尤为重要(来自维基百科)。 - -#### T #### -### 1. Time-sharing:分时 -> 一种允许多个用户分享处理器的方法,它以时间为基础给每个用户分配一部分处理器资源,按照这些时间段轮流运行每个用户的进程。 - -### 2. TL;DR:长篇摘要 -> Too Long;Didn't Read的缩写词,即太长,未阅的意思。该词多见于互联网社区论坛中,用于指出该文太长,没有阅读,或者标示出一篇长文章的摘要。在论坛回复中,该缩写词也多作为灌水用。因此,Linux中国翻译组将其翻译为:长篇摘要。 - -#### U #### - -#### V #### -### 1. VRML(Virtual Reality Modeling Language):虚拟现实建模语言 -> 一种主要基于 Web 的语言,用于 3D 效果(如构建遍历)。 - -#### W #### -### 1. Wrapper:封装器 -> 用于启动另一个程序的程序。 - -#### X #### - -#### Y #### - -#### Z #### +此文档会根据建议不断更新,其固定地址为: https://github.com/LCTT/TranslateProject/blob/master/Dict.md ,欢迎大家提交议题或拉取请求来完善它。 \ No newline at end of file From 8c0c5ba9124af3d1ab18f6dd67c6712faf21e986 Mon Sep 17 00:00:00 2001 From: natsumm <1418222457@qq.com> Date: Tue, 31 Jan 2023 14:45:07 +0800 Subject: [PATCH 281/357] translating --- ...date Includes Support for AV1 Video and Steam Deck Controller.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md index 70bffab23f..6574e23a47 100644 --- a/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md +++ b/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -2,7 +2,7 @@ [#]: via: "https://news.itsfoss.com/kodi-20-nexus-release/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "natsumm" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 8ee8963815e1ed715aefd9a441a5105bf065c9dc Mon Sep 17 00:00:00 2001 From: natsumm <1418222457@qq.com> Date: Tue, 31 Jan 2023 17:32:58 +0800 Subject: [PATCH 282/357] translated --- ...ort for AV1 Video and Steam Deck Controller.md | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md diff --git a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md new file mode 100644 index 0000000000..2a4b263a0a --- /dev/null +++ b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -0,0 +1,109 @@ +[#]: subject: "Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller" +[#]: via: "https://news.itsfoss.com/kodi-20-nexus-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "natsumm" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Kodi 20.0 "Nexus" 带来了诸多新功能,其中包括对 AV1 视频和 Steam Deck 控制器的支持 +====== + +Kodi v20 版本增加了多项重要功能。 + +![Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller][1] + +[Kodi][2] 是 Kodi 基金会开发的跨平台开源媒体播放器,提供了大量功能。 + +它的上一个主流版本是**两年前**发布的 [Kodi 19‘Matrix’][3]。 + +**Kodi 'Nexus'** 是改进后的版本,它更新了几个新功能。 + +让我们来看看这些。 + +### 🆕 Kodi 20 'Nexus': 更新了什么? + +这次发布带来了很多新的特性。较为突出的有: + +- **AV1 编解码支持** +- **增强的 PVR 支持** +- **更新后的数据抓取器** +- **多个修复和改进** + +![kodi 20 nexus][4] + +#### AV1 编解码支持 + +Kodi 现在在 Linux 平台上支持开源免版税的 [AV1编解码][5]。 + +通过 [Video acceleration API][6](VA-API)实现了解码 AV1 的硬件加速,并且还为视频输入流增加了 AV1 支持。 + +#### 增强的 PVR 支持 + +通过 [PVR][7] 观看电视和收听广播也得到了许多改进,其中一些值得注意的改进包括: + +- 重新设计过的频道管理器。 +- 能够显示特定频道或录制的提供方。 +- 能够按提供方对频道和录制进行排序。 +- 支持只读形式的录制。 +- 改进后的 EPG 搜索。 +- 自动清理缓存的PVR图像。 +- PVR 客户端插件的多实例支持。 +- 海湾主题下的 PVR 体验调整。 + +#### 更新后的数据抓取器 + +TVDB电视节目抓取器已更新,以防止其在加载损坏的“视频流”和“信息标记视频”后出现问题; + +> 🗒️ 建议旧版 Kodi 20 的用户更新到最新版本,避免使用此抓取器时出现问题。 + +此外,更新后的 Python 电视节目抓取器,解决了一个潜在的问题,即新的抓取器使用的 XML 格式与现有的程序不同的问题。 + +因此,当您向库中现有的电视节目添加新集时,即便您正在使用 NFO 文件,您也必须刷新节目以下载新集指南。 + +#### 🛠️ 多个修复和改进 + +除此之外,Kodi 20 还提供了一些修复和改进,例如: + +- Steam Deck 控制器的内置支持。 +- 开始支持 NFSv4 的文件系统。 +- 默认支持光盘。 +- 使用通用缓冲区管理API时,能够设置使用 HDR 输出。 +- 解决了 DRMPrime 的一个问题。 +- 多个对于图文电视的支持。 +- 修复了单机游戏的黑屏问题。 + +要了解更多信息,请阅读 [官方公告][8]。 + +### 📥 下载 Kodi 20 + +Kodi 20 'Nexus' 可从 [官方网站][9] 及其 [GitHub 仓库] 获取。 + +在应用商店和官方存储库也可以获取到。 + +Kodi v21(代号:Omega)正在开发中。如果你想从这次发布中获得更多内容,请关注下一个版本。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kodi-20-nexus-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/kodi-nexus-20-release.png +[2]: https://kodi.tv +[3]: https://news.itsfoss.com/kodi-19-release/ +[4]: https://news.itsfoss.com/content/images/2023/01/Kodi_20_Nexus.jpg +[5]: https://en.wikipedia.org/wiki/AV1 +[6]: https://en.wikipedia.org/wiki/Video_Acceleration_API +[7]: https://kodi.wiki/view/PVR +[8]: https://kodi.tv/article/kodi-20-0-nexus-release +[9]: https://kodi.tv/download/ +[10]: https://github.com/xbmc/xbmc/releases/tag/20.0-Nexus From 828f34038a1ecb908ae321d3cda65edcdcfc3511 Mon Sep 17 00:00:00 2001 From: natsumm <1418222457@qq.com> Date: Tue, 31 Jan 2023 17:34:36 +0800 Subject: [PATCH 283/357] translated --- ...ort for AV1 Video and Steam Deck Controller.md | 111 ------------------ 1 file changed, 111 deletions(-) delete mode 100644 sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md diff --git a/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md deleted file mode 100644 index 6574e23a47..0000000000 --- a/sources/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md +++ /dev/null @@ -1,111 +0,0 @@ -[#]: subject: "Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller" -[#]: via: "https://news.itsfoss.com/kodi-20-nexus-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "natsumm" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller -====== - -Multiple major feature additions with the Kodi v20 release. - -![Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller][1] - -[Kodi][2] is a cross-platform open-source media player developed by the Kodi Foundation that offers a plethora of features. - -Its previous major release was [Kodi 19 'Matrix'][3] which came **almost two years ago**. - -Now, an improved release is here, called **Kodi 'Nexus'**. It promises several new features and improvements. - -Let's take a look at those. - -### 🆕 Kodi 20 'Nexus': What's New? - -The release is bringing in plenty of new things. Some of the highlights include: - -- **AV1 Codec Support** -- **Enhanced PVR support** -- **Updated Scrapers** -- **Various Fixes and Improvements** - -![kodi 20 nexus][4] - -#### AV1 Codec Support - -Kodi now features support for the open, royalty-free [AV1 codec][5] on Linux. - -Hardware acceleration for decoding AV1 was made possible through [Video Acceleration API][6] (VA-API), and AV1 support was also added for InputStream. - -#### Enhanced PVR support - -TV watching and radio listening via [PVR][7] has also received many improvements, some of the notable ones include: - -- A redesigned channel manager. -- Ability to show the provider of a specific channel or recording. -- Ability to sort channels and recordings by provider. -- Support for read-only recordings. -- Improvements to EPG search. -- Automatic cleanup of cached PVR images. -- Various performance improvements. -- Multi-instance support for PVR client-addons. -- Various tweaks to the PVR experience under the Estuary theme. - -#### Updated Scrapers - -The TVDB TV Show scraper was updated to prevent breakage after introducing a change that broke the 'VideoStreamDetail' and 'InfoTagVideo; Python APIs. - -> 🗒️ Users of older Kodi 20 releases are recommended to update to the latest version to avoid any disruptions with this scraper. - -Furthermore, the Python TV Show scrapers were updated to fix a potentially confusing issue where the new scrapers were using a different XML format than the existing providers used. - -Due to that, now, when you add new episodes to existing TV shows in your library, you will have to refresh the show to download the new episode guide. Even if you are using the NFO files. - -#### 🛠️ Various Fixes and Improvements - -Other than that, Kodi 20 features several fixes and improvements, such as: - -- Built-in support for Steam Deck controller. -- Initial support for the NFSv4 file system. -- 'Continue Watching' feature for certain video folders. -- Support for mounting optical media by default. -- Ability to set HDR output when using the Generic Buffer Management API. -- Addressed an issue with DRMPrime. -- Various Teletext improvements. -- Fixed black screen issue with standalone games. - -To explore more, you can read the [official announcement post][8]. - -### 📥 Download Kodi 20 - -Kodi 20 'Nexus' is available from the [official website][9] and its [GitHub repository][10]. - -It should be available on app stores and official repositories as well. - -Kodi v21 (codename: Omega) development is already underway. So, if you wanted more from this release, keep an eye on the next one. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/kodi-20-nexus-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/kodi-nexus-20-release.png -[2]: https://kodi.tv -[3]: https://news.itsfoss.com/kodi-19-release/ -[4]: https://news.itsfoss.com/content/images/2023/01/Kodi_20_Nexus.jpg -[5]: https://en.wikipedia.org/wiki/AV1 -[6]: https://en.wikipedia.org/wiki/Video_Acceleration_API -[7]: https://kodi.wiki/view/PVR -[8]: https://kodi.tv/article/kodi-20-0-nexus-release -[9]: https://kodi.tv/download/ -[10]: https://github.com/xbmc/xbmc/releases/tag/20.0-Nexus From 0621176347ce3683e0f58cd56a094f2ebda28151 Mon Sep 17 00:00:00 2001 From: natsumm <1418222457@qq.com> Date: Tue, 31 Jan 2023 17:35:57 +0800 Subject: [PATCH 284/357] translated --- ...date Includes Support for AV1 Video and Steam Deck Controller.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md index 2a4b263a0a..deefaf1896 100644 --- a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md +++ b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -90,7 +90,7 @@ via: https://news.itsfoss.com/kodi-20-nexus-release/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[natsumm](https://github.com/natsumm) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7ff5e6c4afe4accb6c509766a3306b5eedc455f6 Mon Sep 17 00:00:00 2001 From: chai001125 <94744119+chai001125@users.noreply.github.com> Date: Wed, 1 Feb 2023 08:32:21 +0800 Subject: [PATCH 285/357] translated --- ...Extension is in Development for Linux Users.md | 79 ------------------- ...Extension is in Development for Linux Users.md | 77 ++++++++++++++++++ 2 files changed, 77 insertions(+), 79 deletions(-) delete mode 100644 sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md create mode 100644 translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md diff --git a/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md deleted file mode 100644 index 13eaff0d53..0000000000 --- a/sources/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md +++ /dev/null @@ -1,79 +0,0 @@ -[#]: subject: "A ChatGPT GNOME Extension is in Development for Linux Users" -[#]: via: "https://news.itsfoss.com/chatgpt-gnome-extension-development/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -A ChatGPT GNOME Extension is in Development for Linux Users -====== - -AI-powered GNOME desktop? This extension can make things seem like it. - -![A ChatGPT GNOME Extension is in Development for Linux Users][1] - -[ChatGPT][2] is a popular chatbot that can interact with its users as if they are having a conversation. - -Recently, ChatGPT has been in the news, sometimes for the wrong reasons. - -You see, there are two sides to the ChatGPT saga. In fact, for any artificial intelligence implementation. - -On one side, the potential of this tool has impressed many. But on the other side, it has led to quite a ruckus in the tech world for its abuse/misuse. - -So much so it has led its creator, [OpenAI][3], to develop a tool to detect its use. - -Combatting Academic Dishonesty: OpenAI to Help Detect ChatGPT TextWe’re living in the age of AI already. To not make that worse, the makers of ChatGPT have decided to help detect text generated by the tool.![][4]It's FOSS NewsSourav Rudra![][5] - -Now, I spotted a Reddit thread where a developer mentioned something interesting. - -A developer who goes by the user handle '[HorrorPills][6]' has started working on a **GNOME extension for ChatGPT**. - -This sounds interesting; let's take a look. - -### Work in Progress: Let's Keep an Eye! - -![chatgpt gnome extension][7] - -This is a GNOME desktop extension that adds ChatGPT to the system tray of your desktop. - -In its current form, it is in a **very work-in-progress state**, with basic functionality and a few bugs here and there. - -As [noted][8] by the developer: - -You will need an **existing ChatGPT account** to use this extension and your keyboard to navigate around it because the mouse cursor implementation is quite buggy. - -Moreover, **support for GNOME 43 is also quite patchy**, with a temporary fix being provided and added to the to-do list in the development of this extension. - -If you like, you can **give this extension a try**. It's available via its [GitHub repo][9], with all the instructions and files required to run it. - -The developer has also [said][10] that they will be making this available on the **GNOME extensions**[website][11] when the extension is more stable. - -Furthermore, they have also [hinted][12] at a possible **KDE Plasma implementation** in the future. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/chatgpt-gnome-extension-development/ - -作者:[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/chatgpt-gnome-extension.png -[2]: https://chat.openai.com -[3]: https://openai.com -[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png -[5]: https://news.itsfoss.com/content/images/2023/01/openai-to-detect-chatgpt-text.png -[6]: https://github.com/HorrorPills -[7]: https://news.itsfoss.com/content/images/2023/01/ChatGPT_GNOME_Ext.jpg -[8]: https://www.reddit.com/r/linux/comments/10ay23v/comment/j46yp15/ -[9]: https://github.com/HorrorPills/ChatGPT-Gnome-Desktop-Extension -[10]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j4al4cg/ -[11]: https://extensions.gnome.org -[12]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j48uofo/ diff --git a/translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md new file mode 100644 index 0000000000..686bc80a4b --- /dev/null +++ b/translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md @@ -0,0 +1,77 @@ +[#]: subject: "A ChatGPT GNOME Extension is in Development for Linux Users" +[#]: via: "https://news.itsfoss.com/chatgpt-gnome-extension-development/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "chai001125" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +一个 ChatGPT GNOME 扩展正在为 Linux 用户持续开发中 +====== + +>你想要一个人工智能的 GNOME 桌面吗?下面这个扩展可以实现这个功能! + +![A ChatGPT GNOME Extension is in Development for Linux Users][1] + +[ChatGPT][2] 是一个在当下十分流行的聊天机器人,它可以与用户进行互动,用户就像在与 ChatGPT 交流一样。 + +最近,关于 ChatGPT 的新闻时常出现在人们的视野之中,有时是关于 ChatGPT 的坏消息。 + +不难看出,ChatGPT 有其两面性。事实上,对于任何人工智能的实现都同样如此。 + +一方面,ChatGPT 这一工具的巨大潜力给许多人留下了深刻的印象。但另一方面,因人们对它的滥用/误用,导致 ChatGPT 在科技界引起了轩然大波。 + +人们对 ChatGPT 滥用/误用太多了,以至于其创建者 [OpenAI][3] 开发了一种工具来检测 ChatGPT 的使用情况,这个内容可以进一步访问 [此网页](https://news.itsfoss.com/openai-chatgpt-detection/)。 + +现在,我发现了一个 Reddit 线程,它的开发人员提到了一些有趣的事情。 + +一个用户名为 [HorrorPills][6] 的开发人员已经开始**为 ChatGPT 开发 GNOME 扩展**。 + +这听起来非常有趣,让我们继续来看看吧。 + +### 这个扩展仍在开发中:让我们持续保持关注吧! + +![chatgpt gnome extension][7] + +这是一个 GNOME 桌面扩展,将 ChatGPT 添加到了桌面的 系统托盘system tray 中。 + +现在,这个 GNOME 桌面扩展还处于未完成的状态,它已经具有了基本的功能,但仍存在一些错误。 + +正如它的开发者 [所说][8] 的那样: + +你需要有一个 **ChatGPT 帐户**,才能使用这个扩展程序,并且需要用到你的键盘,才能进行定位,因为现在这个扩展的光标功能还有很多问题。 + +此外,这个扩展**对 GNOME 43 的支持也很不完整**,他们提供了一个临时的修复程序,并将这个进一步完善的任务添加到此扩展的后续开发中。 + +如果你喜欢的话,你可以**试试这个扩展**。你可以通过它的 [GitHub 仓库][9],来获取运行它所需的所有说明和文件。 + +它的开发人员还 [表示][10]:当这个扩展变得更加稳定时,他们会将这个扩展发布到 **GNOME 扩展** [网站][11] 上去。 + +此外,开发人员还 [透露][12]:他们在未来可能会实现 **KDE Plasma 的 ChatGPT 扩展**。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/chatgpt-gnome-extension-development/ + +作者:[Sourav Rudra][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://news.itsfoss.com/author/sourav/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/chatgpt-gnome-extension.png +[2]: https://chat.openai.com +[3]: https://openai.com +[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png +[5]: https://news.itsfoss.com/content/images/2023/01/openai-to-detect-chatgpt-text.png +[6]: https://github.com/HorrorPills +[7]: https://news.itsfoss.com/content/images/2023/01/ChatGPT_GNOME_Ext.jpg +[8]: https://www.reddit.com/r/linux/comments/10ay23v/comment/j46yp15/ +[9]: https://github.com/HorrorPills/ChatGPT-Gnome-Desktop-Extension +[10]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j4al4cg/ +[11]: https://extensions.gnome.org +[12]: https://www.reddit.com/r/linux/comments/10avlgs/comment/j48uofo/ From 714c099839dd1a9e872bdb9f2c4bdde9c889c4b3 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 1 Feb 2023 08:50:54 +0800 Subject: [PATCH 286/357] translated --- ... Code Editor With a Brand New GUI Framework.md | 106 ------------------ ... Code Editor With a Brand New GUI Framework.md | 106 ++++++++++++++++++ 2 files changed, 106 insertions(+), 106 deletions(-) delete mode 100644 sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md create mode 100644 translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md diff --git a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md deleted file mode 100644 index 274d7430a2..0000000000 --- a/sources/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: subject: "Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework" -[#]: via: "https://news.itsfoss.com/ecode-editor/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework -====== - -A new exciting code editor is in the works, built on its own GUI framework. - -![Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework][1] - -If you look around for open-source code editors, a couple of promising new projects may challenge the likes of Visual Studio Code. - -Sure, that may not happen anytime soon. **But it does not hurt to be optimistic about supporting new projects.** - -We recently covered some of those options here: - -Now, I have stumbled upon another editor, "**ecode**". The project's author mentions that it takes inspiration from editors like [Lite XL][2]. - -**What's different?** - -- It is built on top of its **new GUI framework [eepp][3]** which focuses on providing a rich user interface. -- While it aims to use minimal resources, ecode's philosophy targets **modern hardware** with systems that have SSDs, high cores count, and decent GPU acceleration. -- The code editor can be compiled to run in any modern browser. However, the current focus is not on the development of the web version. - -![ecode official screenshot][4] - -That sounds good. So, let us take a look. - -> 🚧 The project is under heavy development. You should not rely on the tool for everyday tasks. - -### Features of ecode - -![ecode][7] - -[ecode][8] is a capable editor with all the essentials loaded from the start. - -Sure, it has plans to add more stuff as the development progresses. As it stands, here are some of the key highlights: - -- **Portable** -- **Syntax highlighting** -- **Terminal support** -- **Auto-completion** -- **Customizable color schemes** -- **Customizable keyboard bindings** -- **LSP Support** -- **Minimap** -- **Plugin manager** -- **Dark and light mode** -- **Various types of split views to adapt to different workflows** - -I tried the editor briefly on Linux Mint, and it sure looks like a work in progress. - -But, even in its early stages, it supports the essentials to support a wide range of languages and syntax highlights accordingly. - -![ecode options][9] - -You can customize the editor's theme quickly from a set of pre-defined themes. - -The minimap will be handy for users who write a lot of code (lengthy snippets) and need to navigate it quickly. - -The app crashed for me initially as I performed a right-click in a blank area. But, it was quickly fixed with the next version update, **0.4.1** (at the time of publishing this). So, I would say the **development progress seems promising**. - -![][10] - -### Download ecode - -You can try the [live demo][13] available to test-drive some options quickly. - -An AppImage file is available for all Linux distributions. Packages for macOS and Windows are also available. - -You can get these packages from its [GitHub releases section][14] or explore its [source code][3]. - -[Download ecode][14] - -💬 With so many promising new code editors in development, do you think we'll have a good competition to Microsoft's VS Code? - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/ecode-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/2023/01/ecode-first-look.png -[2]: https://itsfoss.com/lite-xl/ -[3]: https://github.com/SpartanJ/eepp/ -[4]: https://news.itsfoss.com/content/images/2023/01/ecode-official.jpg -[5]: https://www.pjtra.com/apple-touch-icon.png -[7]: https://news.itsfoss.com/content/images/2023/01/ecode.png -[8]: https://github.com/SpartanJ/ecode -[9]: https://news.itsfoss.com/content/images/2023/01/ecode-options.png -[10]: https://news.itsfoss.com/content/images/2023/01/ecode-plugins.png -[13]: https://cdn.ensoft.dev/eepp-demos/demo-fs.html?run=ecode.js -[14]: https://github.com/SpartanJ/ecode/releases/tag/ecode-0.4.1 diff --git a/translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md new file mode 100644 index 0000000000..6f70b16741 --- /dev/null +++ b/translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md @@ -0,0 +1,106 @@ +[#]: subject: "Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework" +[#]: via: "https://news.itsfoss.com/ecode-editor/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器 +====== + +一个新的令人兴奋的代码编辑器正在开发中,它建立在自己的 GUI 框架上。 + +![Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework][1] + +如果你看看周围的开源代码编辑器,有几个有前途的新项目可能会挑战 Visual Studio Code 的地位。 + +当然,这可能不会很快发生。**但对支持新项目持乐观态度也无妨。** + +我们最近在这里介绍了其中的一些选择: + +现在,我偶然发现了另一个编辑器,“**ecode**”。这个项目的作者提到,它从 [Lite XL][2] 等编辑器中获得了灵感。 + +**有什么不同?** + +- 它建立在其**新的 GUI 框架 [eepp][3]** 之上,该框架专注于提供一个丰富的用户界面。 +- 虽然它的目标是使用最少的资源,但 ecode 的理念针对的是**现代硬件**的系统,有 SSD,高核心数和不错的 GPU 加速。 +- 该代码编辑器可以被编译为在任何现代浏览器中运行。然而,目前的重点并不在网络版的开发上。 + +![ecode official screenshot][4] + +这听起来不错。那么,让我们看一看。 + +> 🚧 该项目正在大力开发中。你不应该在日常工作中依赖这个工具。 + +### ecode 的特点 + +![ecode][7] + +[ecode][8] 是一个功能强大的编辑器,从一开始就有所有的基本功能。 + +当然,它有计划随着开发的进展增加更多的东西。就目前而言,这里有一些关键的亮点: + +- **可移植** +- **语法高亮** +- **终端支持** +- **自动补全** +- **可定制的颜色方案** +- **可定制的键盘绑定**。 +- **LSP 支持** +- **Minimap** +- **插件管理器** +- **深色和浅色模式** +- **各种类型的分割视图以适应不同的工作流程**。 + +我在 Linux Mint 上简单地试了一下这个编辑器,它看起来确实是正在开发中。 + +但是,即使在其早期阶段,它也支持广泛的语言和相应的语法高亮。 + +![ecode options][9] + +你可以从一组预定义的主题中快速定制编辑器的主题。 + +对于编写大量代码(冗长的片段)并需要快速浏览的用户来说,minimap 将非常方便。 + +最初,当我在一个空白区域右键点击时,该应用崩溃了。但是,随着下一个版本 **0.4.1**(在发表这篇文章的时候)的更新,它很快就被修复了。所以,我想说**开发进展似乎很有希望**。 + +![][10] + +### 下载 ecode + +你可以尝试一下[在线 demo][13] 来快速测试一些选项。 + +一个 AppImage 文件可用于所有 Linux 发行版。用于 macOS 和 Windows 的软件包也是可用的。 + +你可以从它的 [GitHub 发布页][14]获得这些包,或者探索它的[源码][3]。 + +[下载 ecode][14] + +💬 有这么多有前途的新代码编辑器在开发中,你认为我们会对微软的 VS Code 有一个好的竞争吗? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ecode-editor/ + +作者:[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://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lkxed +[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/ecode-first-look.png +[2]: https://itsfoss.com/lite-xl/ +[3]: https://github.com/SpartanJ/eepp/ +[4]: https://news.itsfoss.com/content/images/2023/01/ecode-official.jpg +[5]: https://www.pjtra.com/apple-touch-icon.png +[7]: https://news.itsfoss.com/content/images/2023/01/ecode.png +[8]: https://github.com/SpartanJ/ecode +[9]: https://news.itsfoss.com/content/images/2023/01/ecode-options.png +[10]: https://news.itsfoss.com/content/images/2023/01/ecode-plugins.png +[13]: https://cdn.ensoft.dev/eepp-demos/demo-fs.html?run=ecode.js +[14]: https://github.com/SpartanJ/ecode/releases/tag/ecode-0.4.1 From d386ac99b50f91519b62101d52b751232ee995a8 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 1 Feb 2023 08:55:07 +0800 Subject: [PATCH 287/357] translating --- ...5.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md index a6260f7349..c97c16b9ff 100644 --- a/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md +++ b/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 30d8f66bebd3bc84f89c3a9addbfc814fe4fbbc5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 1 Feb 2023 15:56:23 +0800 Subject: [PATCH 288/357] RP @chai001125 https://linux.cn/article-15498-1.html --- ...ME Extension is in Development for Linux Users.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename {translated/news => published}/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md (89%) diff --git a/translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md b/published/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md similarity index 89% rename from translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md rename to published/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md index 686bc80a4b..6562c25f1f 100644 --- a/translated/news/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md +++ b/published/20230117.3 ⭐️ A ChatGPT GNOME Extension is in Development for Linux Users.md @@ -3,18 +3,18 @@ [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15498-1.html" -一个 ChatGPT GNOME 扩展正在为 Linux 用户持续开发中 +一个正在开发中的 ChatGPT GNOME 扩展 ====== ->你想要一个人工智能的 GNOME 桌面吗?下面这个扩展可以实现这个功能! +> 你想要一个人工智能的 GNOME 桌面吗?下面这个扩展可以实现这个功能! ![A ChatGPT GNOME Extension is in Development for Linux Users][1] -[ChatGPT][2] 是一个在当下十分流行的聊天机器人,它可以与用户进行互动,用户就像在与 ChatGPT 交流一样。 +[ChatGPT][2] 是一个在当下十分流行的聊天机器人,它可以与用户进行互动,用户就像在对话一样。 最近,关于 ChatGPT 的新闻时常出现在人们的视野之中,有时是关于 ChatGPT 的坏消息。 @@ -24,7 +24,7 @@ 人们对 ChatGPT 滥用/误用太多了,以至于其创建者 [OpenAI][3] 开发了一种工具来检测 ChatGPT 的使用情况,这个内容可以进一步访问 [此网页](https://news.itsfoss.com/openai-chatgpt-detection/)。 -现在,我发现了一个 Reddit 线程,它的开发人员提到了一些有趣的事情。 +现在,我注意到在一个 Reddit 讨论中,一位开发人员提到了一些有趣的事情。 一个用户名为 [HorrorPills][6] 的开发人员已经开始**为 ChatGPT 开发 GNOME 扩展**。 @@ -57,7 +57,7 @@ via: https://news.itsfoss.com/chatgpt-gnome-extension-development/ 作者:[Sourav Rudra][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 4fd5c76a1a366957a004d4bf9306404c2a1ff3c9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 1 Feb 2023 16:37:01 +0800 Subject: [PATCH 289/357] RP @geekpi https://linux.cn/article-15499-1.html --- ... Writer World-Class LIVE USB Creator [Tutorial].md | 60 +++++++++++-------- 1 file changed, 36 insertions(+), 24 deletions(-) rename {translated/tech => published}/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md (55%) diff --git a/translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md b/published/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md similarity index 55% rename from translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md rename to published/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md index 48a3208d28..cddc0f21cc 100644 --- a/translated/tech/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md +++ b/published/20221219.3 ⭐️⭐️ Fedora Media Writer World-Class LIVE USB Creator [Tutorial].md @@ -3,37 +3,45 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15499-1.html" -Fedora Media Writer:世界级 LIVE USB 创建器(教程) +Fedora Media Writer:顶级的立付 USB 创建器 ====== -**关于安装和使用 Fedora Media Writer 从 Linux 和 Windows 创建 LIVE USB 的教程。** +> 关于安装和使用 Fedora Media Writer 从 Linux 和 Windows 创建立付 USB 的教程。 ![Fedora Media Writer][1] ### Fedora Media Writer -社区和 Fedora Linux 团队开发并维护 [Fedora Media Writer 应用][2]。这个应用可以将任何 ISO 镜像写入你的闪存盘(U 盘)中。此外,Fedora Media Writer 还有直接从 Fedora 镜像中下载 ISO 文件的功能,前提是你有一个稳定的互联网连接。 +社区和 Fedora Linux 团队开发并维护了 [Fedora Media Writer 应用][2]。这个应用可以将任何 ISO 镜像写入你的闪存盘(U 盘)中。此外,Fedora Media Writer 还有直接从 Fedora 镜像中下载 ISO 文件的功能,前提是你有一个稳定的互联网连接。 -此外,它还为你提供了一个下载选项列表:比如官方版本、新兴版本、Spin 版本和 Fedora 实验室镜像。 +此外,它还为你提供了一个下载选项列表:比如官方版本、新兴版本、定制版和实验室版本的镜像。 不仅如此,你还可以使用这个灵巧的工具将任何其他 ISO 镜像写入你的闪存。它不总是需要 Fedora ISO。 -虽然有其他流行的工具可以用来创建 LIVE USB,比如 [Etcher][3]、Ventoy 和 Rufus,但考虑到该团队是从主流 Fedora Linux 与贡献者一起开发的,你仍然可以尝试使用此程序。 +虽然有其他流行的工具可以用来创建 立付Live USB ,比如 [Etcher][3]、Ventoy 和 Rufus,但考虑到该团队是从主流 Fedora Linux 与贡献者一起开发的,你仍然可以尝试使用此程序。 + +> **LCTT 译注**:特此说明一下使用 “立付” 一词作为 “Live” 的中文翻译。 +> +> Live 原意多指“现场”、“实时”,在计算机环境中使用时也多引用此意。但对它的翻译就颇费神,因为无论是在 Live Patch,还是更多见的 Live USB/CD、Live Session,其实都不好翻译为“现场”、“实时”。 +> +> 提议者之前曾经尝试创造了新的“[临场](https://linux.cn/article-12854-1.html)”词汇,但是感觉有些不够达意。经过推敲,提议者再次推荐使用“立付”,在照顾发音的同时,取其“立时交付”之意。这样,Live USB/CD 可以译做 “立付 USB/CD”,Live Session 可以译做 “立付会话”。 +> +> 详见我们发布的[《LCTT 术语词典》](https://linux.cn/article-15496-1.html)。 因此,综上所述,这里是 Fedora Media Writer 的快速功能亮点。 #### Fedora Media Writer 的功能摘要 - 适用于 Linux、Windows 和 macOS -- 直接下载+写入镜像到 USB 闪存 +- 直接下载 + 写入镜像到 USB 闪存 - 官方版本(Workstation、IoT、Server)下载 - 新兴版本(Silverblue、Kinoite)下载 -- Spin(KDE Plasma、Xfce 等) -- 实验室(Fedora Astronomy、Robotic 等) +- 定制版(KDE Plasma、Xfce 等) +- 实验室(Fedora Astronomy、Robotic 等) - 可作为 Linux 发行版的 Flatpak 包 - 同时,可以将任何其他 ISO 镜像(非 Fedora)写入 U 盘。 - 能够格式化 U 盘,恢复 U 盘 @@ -43,25 +51,29 @@ Fedora Media Writer:世界级 LIVE USB 创建器(教程) #### Linux -Fedora Media Writer 以 Flatpak 的形式提供给 Linux 发行版。要在任何 Linux(如 Fedora、Ubuntu 或 Linux Mint)中安装它,请[按照这个指南设置 Flatpak][4]。 +Fedora Media Writer 以 Flatpak 的形式提供给 Linux 发行版。要在任何 Linux(如 Fedora、Ubuntu 或 Linux Mint)中安装它,请 [按照这个指南设置 Flatpak][4]。 -然后,点击下面的链接进行安装。这将启动你的 Linux 发行版的官方软件程序(如 Discover、GNOME Software)。安装后,你可以通过应用程序菜单启动它。 +然后,点击下面的链接进行安装。这将启动你的 Linux 发行版的官方软件程序(如 发现Discover应用、GNOME 软件Software 应用)。安装后,你可以通过应用程序菜单启动它。 -[以 Flatpak 形式安装 Fedora Media Writer][5] +> **[以 Flatpak 形式安装 Fedora Media Writer][5]** #### Windows -如果你是一个 Windows 用户并计划迁移到 Linux(或 Fedora),它是一个完美的工具。你需要从 GitHub 上下载 exe 安装程序(链接如下),并按照屏幕上的指示进行安装。 +如果你是一个计划迁移到 Linux(如 Fedora)的 Windows 用户,它是一个完美的工具。你需要从 GitHub 上下载 exe 安装程序(链接如下),并按照屏幕上的指示进行安装。 -[用于 Windows 的最新安装程序(exe)][6] +> **[用于 Windows 的最新安装程序(exe)][6]** 安装完成后,你可以从开始菜单启动它。 +#### macOS + 对于 macOS,你可以在上述链接中获取 dmg 文件。 -### 如何使用 Fedora Media Writer 在 Linux 中创建 LIVE USB +> **[用于 macOS 的最新安装程序(dmg)][6]** -第一个页面给你两个主要选项。自动下载选项用于即时下载 ISO 镜像。第二个选项是直接从你的磁盘上写入已经下载的 ISO 文件。 +### 如何使用 Fedora Media Writer 在 Linux 中创建立付 USB + +第一个页面给你两个主要选项。自动下载Download automatically 选项用于即时下载 ISO 镜像。第二个选项是直接从你的磁盘上写入已经下载的 ISO 文件。 如果你已经插上了 USB,你应该看到它是第三个选项。第三个选项是格式化并删除你 U 盘中的所有数据,并将其恢复到出厂设置。 @@ -71,17 +83,17 @@ Fedora Media Writer 以 Flatpak 的形式提供给 Linux 发行版。要在任 ![Fedora Media Writer - 第一个页面][7] -自动下载选项为你提供了以下页面,可以从镜像中下载任何你想要的 Fedora ISO。这对很多人来说很有用,因为它消除了单独下载 ISO 文件、验证校验和等的麻烦。 +自动下载Download automatically选项为你提供了以下页面,可以从镜像中下载任何你想要的 Fedora ISO。这对很多人来说很有用,因为它消除了单独下载 ISO 文件、验证校验和等的麻烦。 ![自动下载选项给了你这些选项][8] -在选择了发行版之后,最后的页面会给你版本(Fedora 36、35 等)和架构(x86、ARM 等)的选项。另外,你应该看到目标 USB。点击下载和写入,开始这个过程。 +在选择了发行版之后,最后的页面会给你版本(Fedora 36、35 等)和架构(x86、ARM 等)的选项。另外,你应该看到目标 USB。点击 “下载并写入Download & Write”,开始这个过程。 ![Fedora Media Writer 的最终写入页面][9] #### 从磁盘上写入一个现有的 ISO 文件 -当你选择 “select iso file” 时,你可以从系统中选择该文件。之后,选择目标 USB 驱动器,然后点击写入,开始这个过程。 +当你选择 “选择 ISO 文件select .iso file” 时,你可以从系统中选择该文件。之后,选择目标 USB 驱动器,然后点击 “写入Write”,开始这个过程。 ![通过 Fedora Media Writer 直接写入 ISO][10] @@ -99,11 +111,11 @@ Fedora Media Writer 以 Flatpak 的形式提供给 Linux 发行版。要在任 ### 结束语 -我希望本指南能帮助你在日常的 USB 写入工作中使用 Fedora Media Writer。另外,这个工具的好处是你可以用它来格式化/恢复你的 U 盘。你不再需要 GParted 或 GNOME Disks 了。 +我希望本指南能帮助你在日常的 USB 写入工作中使用 Fedora Media Writer。另外,这个工具的好处是你可以用它来格式化/恢复你的 U 盘。你不再需要 GParted 或 GNOME 磁盘Disks 应用了。 对于 Linux、Windows 和 macOS 用户来说,这是一个非常棒的程序。 -干杯。 +加油。 -------------------------------------------------------------------------------- @@ -112,7 +124,7 @@ via: https://www.debugpoint.com/fedora-media-writer/ 作者:[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 b53498e7fd4fd6ad26b5189b002e7d4a0543ba7c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 1 Feb 2023 16:43:51 +0800 Subject: [PATCH 290/357] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20202301?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- published/{ => 202301}/20190331 Codecademy vs. The BBC Micro.md | 0 published/{ => 202301}/20210718 Is Open-Source Software Secure.md | 0 published/{ => 202301}/20211012 Create a timer on Linux.md | 0 ...e Popular Python Library for Data Analysis and Data Science.md | 0 ...⭐️ Give your Terminal a Retro Look Using this Neat Application.md | 0 ...031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md | 0 ...️ What you actually need to know about open source to get started.md | 0 ...21110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md | 0 .../{ => 202301}/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md | 0 ... Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md | 0 ... How to Setup Python Development Environment in Ubuntu and Fedora.md | 0 ...221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md | 0 ...UI Editors You Could Try If You are Not a Total Terminal Junkie.md | 0 .../20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md | 0 ... ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md | 0 ... lnav Advanced Log File Viewer for Linux Desktops and Servers.md | 0 ...1201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md | 0 ... ⭐️⭐️ 8 ideas for measuring your open source software usage.md | 0 ...ve Streaming Applications for Ubuntu and Other Linux [2022 Edition].md | 0 .../20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md | 0 ...0221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md | 0 .../20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md | 0 ...️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md | 0 .../20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md | 0 ...2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md | 0 ...7.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md | 0 ...221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md | 0 ...to Google, Alexa, and Siri in Works for Home Assistant Platform.md | 0 .../20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md | 0 .../20230102.0 ⭐️ How to read and write files in Rust.md | 0 ...0230102.1 ⭐️ who Command in Linux Explanation with Examples.md | 0 ...️ Colorblind Filters GNOME Extension to help Colorblind Users.md | 0 ...arine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md | 0 ...0230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md | 0 ...0230104.0 ⭐️⭐️ Learn to code with my retro computer program.md | 0 ...ial Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md | 0 ...0105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md | 0 ...rux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md | 0 ...time-series data to power your edge projects with open source tools.md | 0 ... 10.7 Release Promises These 3 Key Improvements for Linux Users.md | 0 .../20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md | 0 ...⭐️ Learn the Ada programming language by writing a simple game.md | 0 ...09.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md | 0 .../{ => 202301}/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md | 0 ...️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md | 0 .../{ => 202301}/20230110.3 ⭐️⭐️ How to use methods in Java.md | 0 ... ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md | 0 ...0111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md | 0 ... Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md | 0 ...course 3.0 is an Amazing Release With Much-Needed Feature Additions.md | 0 ...⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md | 0 ...13.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md | 0 ...s Growth Continues, Medium Joins in With its New Community Platform.md | 0 ... Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md | 0 .../{ => 202301}/20230114.0 ⭐️ A 4-minute guide to Java loops.md | 0 ...90% Systems Had Flatpak Installed, Says GNOME's Research Report.md | 0 56 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 202301}/20190331 Codecademy vs. The BBC Micro.md (100%) rename published/{ => 202301}/20210718 Is Open-Source Software Secure.md (100%) rename published/{ => 202301}/20211012 Create a timer on Linux.md (100%) rename published/{ => 202301}/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md (100%) rename published/{ => 202301}/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md (100%) rename published/{ => 202301}/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md (100%) rename published/{ => 202301}/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md (100%) rename published/{ => 202301}/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md (100%) rename published/{ => 202301}/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md (100%) rename published/{ => 202301}/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md (100%) rename published/{ => 202301}/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md (100%) rename published/{ => 202301}/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md (100%) rename published/{ => 202301}/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md (100%) rename published/{ => 202301}/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md (100%) rename published/{ => 202301}/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md (100%) rename published/{ => 202301}/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md (100%) rename published/{ => 202301}/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md (100%) rename published/{ => 202301}/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md (100%) rename published/{ => 202301}/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md (100%) rename published/{ => 202301}/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md (100%) rename published/{ => 202301}/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md (100%) rename published/{ => 202301}/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md (100%) rename published/{ => 202301}/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md (100%) rename published/{ => 202301}/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md (100%) rename published/{ => 202301}/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md (100%) rename published/{ => 202301}/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md (100%) rename published/{ => 202301}/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md (100%) rename published/{ => 202301}/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md (100%) rename published/{ => 202301}/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md (100%) rename published/{ => 202301}/20230102.0 ⭐️ How to read and write files in Rust.md (100%) rename published/{ => 202301}/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md (100%) rename published/{ => 202301}/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md (100%) rename published/{ => 202301}/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md (100%) rename published/{ => 202301}/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md (100%) rename published/{ => 202301}/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md (100%) rename published/{ => 202301}/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md (100%) rename published/{ => 202301}/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md (100%) rename published/{ => 202301}/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md (100%) rename published/{ => 202301}/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md (100%) rename published/{ => 202301}/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md (100%) rename published/{ => 202301}/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md (100%) rename published/{ => 202301}/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md (100%) rename published/{ => 202301}/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md (100%) rename published/{ => 202301}/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md (100%) rename published/{ => 202301}/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md (100%) rename published/{ => 202301}/20230110.3 ⭐️⭐️ How to use methods in Java.md (100%) rename published/{ => 202301}/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md (100%) rename published/{ => 202301}/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md (100%) rename published/{ => 202301}/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md (100%) rename published/{ => 202301}/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md (100%) rename published/{ => 202301}/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md (100%) rename published/{ => 202301}/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md (100%) rename published/{ => 202301}/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md (100%) rename published/{ => 202301}/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md (100%) rename published/{ => 202301}/20230114.0 ⭐️ A 4-minute guide to Java loops.md (100%) rename published/{ => 202301}/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md (100%) diff --git a/published/20190331 Codecademy vs. The BBC Micro.md b/published/202301/20190331 Codecademy vs. The BBC Micro.md similarity index 100% rename from published/20190331 Codecademy vs. The BBC Micro.md rename to published/202301/20190331 Codecademy vs. The BBC Micro.md diff --git a/published/20210718 Is Open-Source Software Secure.md b/published/202301/20210718 Is Open-Source Software Secure.md similarity index 100% rename from published/20210718 Is Open-Source Software Secure.md rename to published/202301/20210718 Is Open-Source Software Secure.md diff --git a/published/20211012 Create a timer on Linux.md b/published/202301/20211012 Create a timer on Linux.md similarity index 100% rename from published/20211012 Create a timer on Linux.md rename to published/202301/20211012 Create a timer on Linux.md diff --git a/published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md b/published/202301/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md similarity index 100% rename from published/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md rename to published/202301/20220802 Pandas- The Popular Python Library for Data Analysis and Data Science.md diff --git a/published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md b/published/202301/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md similarity index 100% rename from published/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md rename to published/202301/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md diff --git a/published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/published/202301/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md similarity index 100% rename from published/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md rename to published/202301/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md diff --git a/published/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/published/202301/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md similarity index 100% rename from published/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md rename to published/202301/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md diff --git a/published/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/published/202301/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md similarity index 100% rename from published/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md rename to published/202301/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md diff --git a/published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md b/published/202301/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md similarity index 100% rename from published/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md rename to published/202301/20221111.4 ⭐️⭐️ Drop swap for zram on Linux.md diff --git a/published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md b/published/202301/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md similarity index 100% rename from published/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md rename to published/202301/20221119.0 ⭐️⭐️ 7 Reasons Why Cinnamon is a Fantastic (Yet Underrated) Linux Desktop Environment.md diff --git a/published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md b/published/202301/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md similarity index 100% rename from published/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md rename to published/202301/20221121.0 ⭐️⭐️ How to Setup Python Development Environment in Ubuntu and Fedora.md diff --git a/published/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md b/published/202301/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md similarity index 100% rename from published/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md rename to published/202301/20221123.0 ⭐️⭐️ apt remove vs apt purge What’s the Difference.md diff --git a/published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md b/published/202301/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md similarity index 100% rename from published/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md rename to published/202301/20221124.0 ⭐️ 5 NeoVim GUI Editors You Could Try If You are Not a Total Terminal Junkie.md diff --git a/published/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md b/published/202301/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md similarity index 100% rename from published/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md rename to published/202301/20221124.4 ⭐️⭐️⭐️ Write a C++ extension module for Python.md diff --git a/published/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md b/published/202301/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md similarity index 100% rename from published/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md rename to published/202301/20221126.1 ⭐️ How I Fixed Buzzing Noise Coming from Speakers in Linux.md diff --git a/published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md b/published/202301/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md similarity index 100% rename from published/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md rename to published/202301/20221127.0 ⭐️ lnav Advanced Log File Viewer for Linux Desktops and Servers.md diff --git a/published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/published/202301/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md similarity index 100% rename from published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md rename to published/202301/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md diff --git a/published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/published/202301/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md similarity index 100% rename from published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md rename to published/202301/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md diff --git a/published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md b/published/202301/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md similarity index 100% rename from published/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md rename to published/202301/20221206.0 ⭐️⭐️ Top 5 Live Streaming Applications for Ubuntu and Other Linux [2022 Edition].md diff --git a/published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/published/202301/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md similarity index 100% rename from published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md rename to published/202301/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md diff --git a/published/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md b/published/202301/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md similarity index 100% rename from published/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md rename to published/202301/20221213.1 ⭐️⭐️⭐️ Battle of the Texts and the Unicode Savior.md diff --git a/published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/published/202301/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md similarity index 100% rename from published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md rename to published/202301/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md diff --git a/published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md b/published/202301/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md similarity index 100% rename from published/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md rename to published/202301/20221221.0 ⭐️⭐️ EndeavourOS Your Search for Perfect Arch Distro Ends Here.md diff --git a/published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md b/published/202301/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md similarity index 100% rename from published/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md rename to published/202301/20221222.0 ⭐️⭐️ 11 New Distros to look forward to in 2023.md diff --git a/published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/published/202301/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md similarity index 100% rename from published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md rename to published/202301/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md diff --git a/published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md b/published/202301/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md similarity index 100% rename from published/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md rename to published/202301/20221227.1 ⭐️⭐️ oh my zsh and powerlevel10k A Match Made in Heaven.md diff --git a/published/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md b/published/202301/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md similarity index 100% rename from published/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md rename to published/202301/20221228.1 ⭐️⭐️ 11 tips for writing a good Git commit message.md diff --git a/published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md b/published/202301/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md similarity index 100% rename from published/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md rename to published/202301/20221230.0 ⭐️ An Open-Source Alternative to Google, Alexa, and Siri in Works for Home Assistant Platform.md diff --git a/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md b/published/202301/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md similarity index 100% rename from published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md rename to published/202301/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md diff --git a/published/20230102.0 ⭐️ How to read and write files in Rust.md b/published/202301/20230102.0 ⭐️ How to read and write files in Rust.md similarity index 100% rename from published/20230102.0 ⭐️ How to read and write files in Rust.md rename to published/202301/20230102.0 ⭐️ How to read and write files in Rust.md diff --git a/published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md b/published/202301/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md similarity index 100% rename from published/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md rename to published/202301/20230102.1 ⭐️ who Command in Linux Explanation with Examples.md diff --git a/published/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md b/published/202301/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md similarity index 100% rename from published/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md rename to published/202301/20230102.2 ⭐️ Colorblind Filters GNOME Extension to help Colorblind Users.md diff --git a/published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md b/published/202301/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md similarity index 100% rename from published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md rename to published/202301/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md diff --git a/published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md b/published/202301/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md similarity index 100% rename from published/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md rename to published/202301/20230103.3 ⭐️ Whereis Command in Linux and BSD with Examples.md diff --git a/published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md b/published/202301/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md similarity index 100% rename from published/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md rename to published/202301/20230104.0 ⭐️⭐️ Learn to code with my retro computer program.md diff --git a/published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md b/published/202301/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md similarity index 100% rename from published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md rename to published/202301/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md diff --git a/published/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md b/published/202301/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md similarity index 100% rename from published/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md rename to published/202301/20230105.1 ⭐️⭐️ 6 tips for building an effective DevOps culture.md diff --git a/published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md b/published/202301/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md similarity index 100% rename from published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md rename to published/202301/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md diff --git a/published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md b/published/202301/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md similarity index 100% rename from published/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md rename to published/202301/20230106.0 ⭐️⭐️ Use time-series data to power your edge projects with open source tools.md diff --git a/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md b/published/202301/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md similarity index 100% rename from published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md rename to published/202301/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md diff --git a/published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md b/published/202301/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md similarity index 100% rename from published/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md rename to published/202301/20230107.0 ⭐️ Learn w Command in Linux & BSD with Examples.md diff --git a/published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md b/published/202301/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md similarity index 100% rename from published/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md rename to published/202301/20230109.0 ⭐️⭐️ Learn the Ada programming language by writing a simple game.md diff --git a/published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md b/published/202301/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md similarity index 100% rename from published/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md rename to published/202301/20230109.3 ⭐️ OBS Studio 29 Release Has Little in Store For Linux.md diff --git a/published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md b/published/202301/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md similarity index 100% rename from published/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md rename to published/202301/20230110.0 ⭐️⭐️ A guide to strings in MySQL.md diff --git a/published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md b/published/202301/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md similarity index 100% rename from published/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md rename to published/202301/20230110.2 ⭐️ Wow! CoolerMaster's MasterPlus Software to Go Open Source!.md diff --git a/published/20230110.3 ⭐️⭐️ How to use methods in Java.md b/published/202301/20230110.3 ⭐️⭐️ How to use methods in Java.md similarity index 100% rename from published/20230110.3 ⭐️⭐️ How to use methods in Java.md rename to published/202301/20230110.3 ⭐️⭐️ How to use methods in Java.md diff --git a/published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md b/published/202301/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md similarity index 100% rename from published/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md rename to published/202301/20230111.0 ⭐️⭐️ Linux is All Set to Disable Microsoft's RNDIS Drivers.md diff --git a/published/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md b/published/202301/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md similarity index 100% rename from published/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md rename to published/202301/20230111.1 ⭐️ Wordbook Offline English Dictionary App for GNOME.md diff --git a/published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md b/published/202301/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md similarity index 100% rename from published/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md rename to published/202301/20230112.1 ⭐️ Ubuntu 23.04 Lunar Lobster Wallpaper Competition is Now Open.md diff --git a/published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md b/published/202301/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md similarity index 100% rename from published/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md rename to published/202301/20230112.2 ⭐️⭐️ Discourse 3.0 is an Amazing Release With Much-Needed Feature Additions.md diff --git a/published/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md b/published/202301/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md similarity index 100% rename from published/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md rename to published/202301/20230112.3 ⭐️⭐️ Install Ubuntu on Windows Using VirtualBox [Complete Guide].md diff --git a/published/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md b/published/202301/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md similarity index 100% rename from published/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md rename to published/202301/20230113.0 ⭐️ How to Install Python on Windows [Beginner’s Guide].md diff --git a/published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md b/published/202301/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md similarity index 100% rename from published/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md rename to published/202301/20230113.1 ⭐️⭐️ Mastodon's Growth Continues, Medium Joins in With its New Community Platform.md diff --git a/published/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md b/published/202301/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md similarity index 100% rename from published/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md rename to published/202301/20230113.2 ⭐️ Share Folder Between Guest and Host in virt-manager (KVMQemulibvirt).md diff --git a/published/20230114.0 ⭐️ A 4-minute guide to Java loops.md b/published/202301/20230114.0 ⭐️ A 4-minute guide to Java loops.md similarity index 100% rename from published/20230114.0 ⭐️ A 4-minute guide to Java loops.md rename to published/202301/20230114.0 ⭐️ A 4-minute guide to Java loops.md diff --git a/published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md b/published/202301/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md similarity index 100% rename from published/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md rename to published/202301/20230119.0 ⭐️ Over 90% Systems Had Flatpak Installed, Says GNOME's Research Report.md From 547d4a4ef9c29caae176659615f0a8ccd1913264 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 2 Feb 2023 08:39:28 +0800 Subject: [PATCH 291/357] translating --- ... GNOME Screenshot Tool Old and New Methods.md | 144 ------------------ ... GNOME Screenshot Tool Old and New Methods.md | 144 ++++++++++++++++++ 2 files changed, 144 insertions(+), 144 deletions(-) delete mode 100644 sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md create mode 100644 translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md diff --git a/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md deleted file mode 100644 index 28a480f9d1..0000000000 --- a/sources/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md +++ /dev/null @@ -1,144 +0,0 @@ -[#]: subject: "GNOME Screenshot Tool: Old and New Methods" -[#]: via: "https://www.debugpoint.com/gnome-screenshot-tool-usage/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpis" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -GNOME Screenshot Tool: Old and New Methods -====== - -**Here are the details about the GNOME Screenshot tool, its usage and how to install and launch them in older and modern methods.** - -![][1] - -In 2022, GNOME changed its default screenshot tool and built the screenshot function as part of the GNOME Shell. It’s not a separate application anymore. - -Earlier, GNOME featured a native GTK app gnome-screenshot via all the major Linux distributions such as Ubuntu and Fedora. However, from [GNOME 42][2] onwards, this has been removed. Hence [Ubuntu 22.04][3] and Fedora 36 onwards, you only get the following new screenshot UI as a default screenshot utility. - -This change fundamentally broke many workflows. Since it is not an executable you can launch separately, you only depend on the keyboard’s print-screen key. And only a shortcut is available via application search. - -Hence, capturing screenshots with a delay in the new GNOME screenshot UI becomes much more challenging. - -Here are some of the ways you can still use the older GNOME Screenshot tool and how to trigger the new screenshot UI manually. - -### GNOME Screenshot Tool: How to install the old GUI - -If you are using Ubuntu 22.04 and above, or any Ubuntu-based distribution with a GNOME desktop, run the following command to install it. - -``` -sudo apt install gnome-screenshot -``` - -And for Fedora users, use the following command. - -``` -sudo dnf install gnome-screenshot -``` - -If you are using a **GNOME desktop in Arch Linux** or Manjaro Linux GNOME, then use the below command to install it. - -``` -pacman -S gnome-desktop -``` - -After installation, launch it via the application menu. - -![GNOME Screenshot (old)][4] - -![GNOME Screenshot main window (old)][5] - -For further customization, you can open Settings and remove the keybinding of Print-Screen from the Shell’s new UI and create a custom keyboard shortcut with the following commands. - -``` -gnome-screenshot --window -gnome-screenshot --area -gnome-screenshot -``` - -### GNOME Screenshot UI: How to manually trigger it via the command line - -The function which executes when you press the Print-Screen key from the keyboard is part of the [GNOME Shell code][6]. Unfortunately, it is protected inside dbus API, and you can not invoke it directly. - -It has been done to make you safe under Wayland so that no arbitrary code gets access to dbus call functions via any script. - -However, this broke many use cases and scripts which people wrote over the years. For example, many users reported [Zoom][7] videoconferencing calls [broke][8] under GNOME-Wayland due to this, which was eventually solved via the below method of turning off the safe mode. - -Let’s see how you can turn it off and trigger the gnome-shell screenshot - -Use caution before using the following steps. Since it may open up your GNOME Shell for arbitrary script access. Make sure you know what you are doing. - -First, you need to open [GNOME looking glass][9] to turn off the safe mode. - -Press `ALT+F`2 and type below: - -``` -lg -``` - -![Launch looking glass][10] - -Select Evaluator at the top, and in the command window, type the following. And hit enter. - -``` -global.context.unsafe_mode = true -``` - -![Turn off safe mode][11] - -You should see a response that it is turned off. - -![Verification][12] - -Now press escape to close the looking glass. And open a terminal prompt. - -And type the following to launch the screenshot tool. - -``` -gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.screenshotUI.open();' -``` - -You should see the new GNOME Shell screenshot triggered. - -![Launch new GNOME Shell Screenshot UI from CLI][13] - -If you want to turn it off, open `lg` again and set it to false. - -``` -global.context.unsafe_mode = true -``` - -### Closing Notes - -Usage-wise, you can still use the new screenshot feature via any shell script by turning off the safe mode. But it is not recommended. It’s always better to use the old GNOME Screenshot tool to avoid all the hassles. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/gnome-screenshot-tool-usage/ - -作者:[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/gnome-sc1-1.jpg -[2]: https://www.debugpoint.com/gnome-42/ -[3]: https://www.debugpoint.com/ubuntu-22-04-review/ -[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-old.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-main-window-old.jpg -[6]: https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/screenshot.js#L2210 -[7]: https://www.debugpoint.com/zoom-install-linux-ubuntu-download/ -[8]: https://community.zoom.com/t5/Meetings/Wayland-screen-sharing-broken-with-GNOME-41-on-Fedora-35/m-p/22539 -[9]: https://wiki.gnome.org/Projects/GnomeShell/LookingGlass -[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-looking-glass.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Turn-off-safe-mode.jpg -[12]: https://www.debugpoint.com/wp-content/uploads/2023/01/Verification.jpg -[13]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-new-GNOME-Shell-Screenshot-UI-from-CLI.jpg diff --git a/translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md new file mode 100644 index 0000000000..d36bc0f684 --- /dev/null +++ b/translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md @@ -0,0 +1,144 @@ +[#]: subject: "GNOME Screenshot Tool: Old and New Methods" +[#]: via: "https://www.debugpoint.com/gnome-screenshot-tool-usage/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +GNOME 截图工具:旧的和新的方法 +====== + +**以下是关于 GNOME 截图工具的细节,它的用法以及如何用旧的和现代的方法安装和启动它们。** + +![][1] + +2022 年,GNOME 改变了其默认的截图工具,并将截图功能构建为 GNOME Shell 的一部分。它不再是一个独立的应用了。 + +早些时候,GNOME 通过所有主要的 Linux 发行版,如 Ubuntu 和 Fedora,提供了一个本地 GTK 应用 gnome-screenshot。然而,从 [GNOME 42][2] 开始,这个功能已经被移除。因此从 [Ubuntu 22.04][3] 和 Fedora 36 开始,你只能得到以下新的截图 UI 作为默认的截图工具。 + +这一变化从根本上破坏了许多工作流程。因为它不是一个你可以单独启动的可执行文件,你只能依赖键盘上的 Print-Screen 键。而且只能通过应用搜索获得一个快捷方式。 + +因此,在新的 GNOME 截图 UI 中捕捉有延迟的屏幕截图变得更有挑战性。 + +下面是一些你仍然可以使用旧的 GNOME 截图工具的方法,以及如何手动触发新的截图 UI。 + +### GNOME 截图工具:如何安装旧版 GUI + +如果你使用的是 Ubuntu 22.04 及以上版本,或者任何基于 Ubuntu 的带有 GNOME 桌面的发行版,运行以下命令来安装它。 + +``` +sudo apt install gnome-screenshot +``` + +而对于 Fedora 用户,使用下面的命令。 + +``` +sudo dnf install gnome-screenshot +``` + +如果你在 **Arch Linux 或者 Manjaro Linux 中使用 GNOME 桌面**,那么使用下面的命令来安装它。 + +``` +pacman -S gnome-desktop +``` + +安装后,通过应用程序菜单启动它。 + +![GNOME 截图(旧)][4] + +![GNOME 截图主窗口(旧)][5] + +为了进一步定制,你可以打开设置,从 Shell 的新 UI 中移除 Print-Screen 的按键绑定,并通过以下命令创建一个自定义的键盘快捷方式。 + +``` +gnome-screenshot --window <窗口> +gnome-screenshot --area <区域> +gnome-screenshot <全屏> +``` + +### GNOME 截图 UI:如何通过命令行手动触发它 + +当你从键盘上按下 Print-Screen 键时执行的函数是 [GNOME Shell 代码][6]的一部分。不幸的是,它被保护在 dbus API 内,你不能直接调用它。 + +这样做是为了让你在 Wayland 下安全,这样就不会有任意的代码通过任何脚本获得对 dbus 调用函数的访问。 + +然而,这破坏了许多使用场景和人们多年来编写的脚本。例如,许多用户报告说 [Zoom][7] 在 GNOME-Wayland 下的视频会议通话[中断][8]就是因为这个原因,最终通过下面这个关闭安全模式的方法解决了这个问题。 + +让我们看看如何关闭它并触发 gnome-shell 的截图 + +在使用下面的步骤之前,请谨慎行事。因为它可能会开放你的 GNOME Shell,让你任意访问脚本。请确保你知道你在做什么。 + +首先,你需要打开 [GNOME looking glass][9] 来关闭安全模式。 + +按 `ALT+F2` 并输入以下内容: + +``` +lg +``` + +![启动 looking glass][10] + +在顶部选择 Evaluator,在命令窗口中,输入以下内容。然后点击回车。 + +``` +global.context.unsafe_mode = true +``` + +![关闭安全模式][11] + +你应该看到一个响应,即它已被关闭。 + +![验证][12] + +现在按 esc 键关闭 looking glass。并打开一个终端。 + +输入以下内容以启动截图工具。 + +``` +gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.screenshotUI.open();' +``` + +你应该看到新的 GNOME Shell 截图被触发了。 + +![从 CLI 启动新的 GNOME Shell 截图 UI][13] + +如果你想关闭它,再次打开 `lg` 并将其设置为 false。 + +``` +global.context.unsafe_mode = true +``` + +### 结束语 + +从使用上来说,通过关闭安全模式,你仍然可以通过任何 shell 脚本使用新的截图功能。但不建议这样做。最好是使用旧的 GNOME 截图工具来避免所有的麻烦。 + +干杯。 + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/gnome-screenshot-tool-usage/ + +作者:[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/gnome-sc1-1.jpg +[2]: https://www.debugpoint.com/gnome-42/ +[3]: https://www.debugpoint.com/ubuntu-22-04-review/ +[4]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-old.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/GNOME-Screenshot-main-window-old.jpg +[6]: https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/screenshot.js#L2210 +[7]: https://www.debugpoint.com/zoom-install-linux-ubuntu-download/ +[8]: https://community.zoom.com/t5/Meetings/Wayland-screen-sharing-broken-with-GNOME-41-on-Fedora-35/m-p/22539 +[9]: https://wiki.gnome.org/Projects/GnomeShell/LookingGlass +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-looking-glass.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Turn-off-safe-mode.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2023/01/Verification.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2023/01/Launch-new-GNOME-Shell-Screenshot-UI-from-CLI.jpg From 54f1d6c8270340e9bcf13e43112e32bfa4ca962b Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 2 Feb 2023 08:44:19 +0800 Subject: [PATCH 292/357] translating --- ...221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md b/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md index f14b97ed3f..7b70b8cfc4 100644 --- a/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md +++ b/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/22/12/linux-file-manager-caja" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ef8da203c651fc7cff99a196e2d74e09218f67e1 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 2 Feb 2023 09:51:19 +0800 Subject: [PATCH 293/357] =?UTF-8?q?=E8=A1=A5=E5=85=85=E7=AB=8B=E4=BB=98?= =?UTF-8?q?=E7=9A=84=E9=93=BE=E6=8E=A5=EF=BC=8C=E4=BB=A5=E5=8F=8A=E8=A1=A5?= =?UTF-8?q?=E5=85=85=E5=AF=B9=E2=80=9C=E4=BA=A4=E4=BA=92=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E2=80=9D=E7=9A=84=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dict.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Dict.md b/Dict.md index 4f9f9ed03a..d5fc8e5631 100644 --- a/Dict.md +++ b/Dict.md @@ -5,7 +5,7 @@ LCTT 术语词典 为什么要自创翻译词汇?在翻译过程中,我们发现一些非缩写的英语术语沿袭使用了英语单词/短语,而没有得体的、公认的、正式的对应中文翻译。我们认为,中英文混杂是对原生语言的一种污染(英文缩写除外,这是为了减少冗长的语句),按照本地化的宗旨,应该对这些词汇进行翻译,并在必要时创造新的词汇。故此,我们在几年的翻译中,逐渐推敲和形成了一些新的译法,并在我们翻译的文章中使用和推广。 -对这些译法,我们尽量遵循“信雅达”的原则。但鉴于水平所及,肯定会有所不足,虽然也有不断的调整和改进,但仍希望得到大家的反馈和指正。 +对这些译法,我们尽量遵循“信达雅”的原则。但鉴于水平所及,肯定会有所不足,虽然也有不断的调整和改进,但仍希望得到大家的反馈和指正。 我们采用的方法是: @@ -44,7 +44,7 @@ Live 原意多指“现场”、“实时”,在计算机环境中使用时也 - 提议者:wxy - 首次链接(临场):https://linux.cn/article-12854-1.html -- 首次链接(立付):(暂缺) +- 首次链接(立付):https://linux.cn/article-15499-1.html #### Repo/Repository @@ -69,6 +69,8 @@ Shell 是 Unix/Linux 等系统的 `sh`、`bash` 等命令行的接口程序, 这个词汇也是一个一直没有翻译而径直使用的计算机词汇。我们也没有见到(找到)合适的翻译。但是我们在 LCTT 译者 CanYellow 翻译的一篇文章中见到他将其翻译为 “交互界面”,我们认为这是一种好的翻译。 +注:有些人对此次条的翻译持反对意见,此词条建议尝试性在部分语境中使用。 + - 提议者:CanYellow - 首次链接:https://linux.cn/article-15469-1.html From a50ac4b9498b47edd1aa6ec0b2885893b5d9b976 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 2 Feb 2023 10:18:32 +0800 Subject: [PATCH 294/357] R MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @natsumm 感谢您,完成了第一篇翻译贡献! --- ...ort for AV1 Video and Steam Deck Controller.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md index deefaf1896..a08b93d24f 100644 --- a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md +++ b/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -1,66 +1,66 @@ -[#]: subject: "Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller" +[#]: subject: "Kodi 20.0 \"Nexus\" Update Includes Support for AV1 Video and Steam Deck Controller" [#]: via: "https://news.itsfoss.com/kodi-20-nexus-release/" [#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" [#]: collector: "lkxed" [#]: translator: "natsumm" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -Kodi 20.0 "Nexus" 带来了诸多新功能,其中包括对 AV1 视频和 Steam Deck 控制器的支持 +Kodi 20.0 发布,支持 AV1 视频和 Steam Deck 控制器 ====== -Kodi v20 版本增加了多项重要功能。 +> Kodi 20 版本增加了多项重要功能。 ![Kodi 20.0 "Nexus" Update Includes Support for AV1 Video and Steam Deck Controller][1] [Kodi][2] 是 Kodi 基金会开发的跨平台开源媒体播放器,提供了大量功能。 -它的上一个主流版本是**两年前**发布的 [Kodi 19‘Matrix’][3]。 +它的上一个主要版本是**两年前**发布的 [Kodi 19 “Matrix”][3]。 -**Kodi 'Nexus'** 是改进后的版本,它更新了几个新功能。 +**Kodi “Nexus”** 是改进后的主要版本,它提供了几个新功能和改进。 让我们来看看这些。 -### 🆕 Kodi 20 'Nexus': 更新了什么? +### 🆕 Kodi 20 “Nexus” 更新了什么? -这次发布带来了很多新的特性。较为突出的有: +这次发布带来了很多新的特性,较为突出的有: -- **AV1 编解码支持** -- **增强的 PVR 支持** -- **更新后的数据抓取器** -- **多个修复和改进** +- AV1 编解码支持 +- 增强的 PVR 支持 +- 更新后的数据抓取器 +- 多个修复和改进 ![kodi 20 nexus][4] #### AV1 编解码支持 -Kodi 现在在 Linux 平台上支持开源免版税的 [AV1编解码][5]。 +Kodi 现在在 Linux 平台上支持开源的免版税的 [AV1 编解码][5]。 -通过 [Video acceleration API][6](VA-API)实现了解码 AV1 的硬件加速,并且还为视频输入流增加了 AV1 支持。 +通过 [视频加速 API][6](VA-API)实现了解码 AV1 的硬件加速,并且还为视频输入流增加了 AV1 支持。 #### 增强的 PVR 支持 通过 [PVR][7] 观看电视和收听广播也得到了许多改进,其中一些值得注意的改进包括: - 重新设计过的频道管理器。 -- 能够显示特定频道或录制的提供方。 -- 能够按提供方对频道和录制进行排序。 -- 支持只读形式的录制。 +- 能够显示特定频道或录音的提供方。 +- 能够按提供方对频道和录音进行排序。 +- 支持只读录音。 - 改进后的 EPG 搜索。 -- 自动清理缓存的PVR图像。 +- 自动清理缓存的 PVR 图像。 - PVR 客户端插件的多实例支持。 -- 海湾主题下的 PVR 体验调整。 +- Estuary 主题下的 PVR 体验调整。 #### 更新后的数据抓取器 -TVDB电视节目抓取器已更新,以防止其在加载损坏的“视频流”和“信息标记视频”后出现问题; +TVDB 电视节目抓取器已更新,以防止其在加载损坏的“视频流”和“信息标记视频”后出现问题。 > 🗒️ 建议旧版 Kodi 20 的用户更新到最新版本,避免使用此抓取器时出现问题。 此外,更新后的 Python 电视节目抓取器,解决了一个潜在的问题,即新的抓取器使用的 XML 格式与现有的程序不同的问题。 -因此,当您向库中现有的电视节目添加新集时,即便您正在使用 NFO 文件,您也必须刷新节目以下载新集指南。 +因此,当你向库中现有的电视节目添加新集时,即便你正在使用 NFO 文件,你也必须刷新节目以下载新集指南。 #### 🛠️ 多个修复和改进 @@ -69,7 +69,7 @@ TVDB电视节目抓取器已更新,以防止其在加载损坏的“视频流 - Steam Deck 控制器的内置支持。 - 开始支持 NFSv4 的文件系统。 - 默认支持光盘。 -- 使用通用缓冲区管理API时,能够设置使用 HDR 输出。 +- 使用通用缓冲区管理 API 时,能够设置使用 HDR 输出。 - 解决了 DRMPrime 的一个问题。 - 多个对于图文电视的支持。 - 修复了单机游戏的黑屏问题。 @@ -78,9 +78,9 @@ TVDB电视节目抓取器已更新,以防止其在加载损坏的“视频流 ### 📥 下载 Kodi 20 -Kodi 20 'Nexus' 可从 [官方网站][9] 及其 [GitHub 仓库] 获取。 +Kodi 20 “Nexus” 可从 [官方网站][9] 及其 [GitHub 仓库][10] 获取。 -在应用商店和官方存储库也可以获取到。 +在应用商店和官方软件库也可以获取到。 Kodi v21(代号:Omega)正在开发中。如果你想从这次发布中获得更多内容,请关注下一个版本。 @@ -91,7 +91,7 @@ via: https://news.itsfoss.com/kodi-20-nexus-release/ 作者:[Sourav Rudra][a] 选题:[lkxed][b] 译者:[natsumm](https://github.com/natsumm) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1b2ca61ba208268cdbfc7ec18b992e952c50a655 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 2 Feb 2023 10:19:39 +0800 Subject: [PATCH 295/357] P MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @natsumm 本文首发地址:https://linux.cn/article-15501-1.html 您的 LCTT 专页:https://linux.cn/lctt/natsumm --- ...te Includes Support for AV1 Video and Steam Deck Controller.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md (98%) diff --git a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md b/published/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md similarity index 98% rename from translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md rename to published/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md index a08b93d24f..358fe6c6eb 100644 --- a/translated/news/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md +++ b/published/20230116.1 ⭐️ Kodi 20.0 Nexus Update Includes Support for AV1 Video and Steam Deck Controller.md @@ -4,8 +4,8 @@ [#]: collector: "lkxed" [#]: translator: "natsumm" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15501-1.html" Kodi 20.0 发布,支持 AV1 视频和 Steam Deck 控制器 ====== From 1ead590b5bebb28a0dc596b8f77f3cc2d897c761 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 2 Feb 2023 17:09:49 +0800 Subject: [PATCH 296/357] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @onionstalgia https://linux.cn/article-15502-1.html 恭喜你已升级为⭐️⭐️译者! --- ...919 I got my first pull request merged!.md | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) rename {translated/talk => published}/20220919 I got my first pull request merged!.md (53%) diff --git a/translated/talk/20220919 I got my first pull request merged!.md b/published/20220919 I got my first pull request merged!.md similarity index 53% rename from translated/talk/20220919 I got my first pull request merged!.md rename to published/20220919 I got my first pull request merged!.md index caa06c812b..bf3badced4 100644 --- a/translated/talk/20220919 I got my first pull request merged!.md +++ b/published/20220919 I got my first pull request merged!.md @@ -2,44 +2,47 @@ [#]: via: "https://opensource.com/article/22/9/first-pull-request-merged" [#]: author: "Oluwaseun https://opensource.com/users/jhhornn" [#]: collector: "lkxed" -[#]: translator: "onionstalgia " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "onionstalgia" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15502-1.html" 我的第一个拉取请求被合并了! ====== + +![][0] + > 体验为开源做出贡献的快乐。 -![Dandelion zoomed in][1] - -图片来自 Rob Tiller, CC BY-SA 4.0 - -难以用言语形容我在收到合并通知(如下图)时的喜悦,当然这要归功于现在我上的工程学校,[AltSchool Africa][2]。 +难以用言语形容我在收到合并通知(如下图)时的喜悦,当然这要归功于现在我上的工程学校 [AltSchool Africa][2]。 ![successful merge message][3] -在此之前,我曾多次接触过开源的概念,了解它在技术领域的重要性,甚至参加过开源会议(比如 OSCAFest)。我曾多次跃跃欲试,但当打开 GitHub 来想创建些东西时,冒名顶替综合症就会冒出来。 +在此之前,我曾多次接触过开源的概念,了解了它在技术领域的重要性,甚至参加过开源会议(比如 OSCAFest)。我曾多次跃跃欲试,但当打开 GitHub 来想创建些东西时,冒名顶替综合症就会冒出来。 -快进到 2022 年 8 月 8 日星期一。当观看了 Bolaji 为开源做贡献的视频之后,我重新振奋起来。不过,想要把我学到的东西付诸实践,我注意到需要下面几个步骤: +时间来到 2022 年 8 月 8 日星期一,当观看了 Bolaji 为开源做贡献的视频之后,我重新振奋起来。不过,想要把我学到的东西付诸实践,我注意到需要下面几个步骤: -步骤: +步骤: 1. 我要下定决心,做好为一个开源项目做出贡献的心理建设。 -2. 我要根据我的技能水平进行筛选,选择一个站点([一个比较好的议题(issue)][4])来开始我的第一个项目。我不停地往下翻看,直到找到了一个符合心意的项目。 +2. 我要根据我的技能水平进行筛选,我从一个站点([Good First Issues][4])寻找我开始的第一个项目。我不停地往下翻看,直到找到了一个符合心意的项目。 3. 我要确定自己掌握完成项目所需的 [Git 和 GitHub][5] 知识。 +> **LCTT 译注:** +> +> “[Good First Issues][4]” 这个网站主要是针对那些想为开源软件做贡献,但不知道从哪里开始或如何开始的开发者。通过为开发者提供过滤器,该网站使他们能够根据自己熟悉的编程语言来浏览和选择问题和存储库。此外,他们还可以选择他们想要解决的问题的类型。 + ### 项目 -经过长时间查找,我终于找到了一个名为 [确保没有缺失的 alt 属性][6] 的项目。我所要做的,就是为网站上的图片提供描述性的 alt 值。图片的 alt 值有助于提高网站的辅助功能,这样屏幕阅读器就可以向视障人士提供图像的详细描述了。这很简单,对吧?是的,但假如我没有下定决心想要作出贡献,我就不会找到这项目,在我心中开源仍将是个神话。 +经过长时间查找,我终于找到了一个名为 [确保没有缺失的 alt 属性][6] 的项目。我所要做的,就是为网站上的图片提供描述性的 `alt` 值。图片的 `alt` 值有助于提高网站的辅助功能,这样屏幕阅读器就可以向视障人士提供图像的详细描述了。这很简单,对吧?是的,但假如我没有下定决心想要作出贡献,我就不会找到这项目,在我心中开源仍将是个神话。 -我心潮澎湃,直到发现这个项目是来自[MDN][7]的。等等,MDNMozzila 开发者网络?干和 Mozilla 的开发者一样的事儿?他们会合并我这么小儿科的贡献吗?[莫名顶替综合症 ][8] 又开始了。 +我心潮澎湃,直到发现这个项目是来自 [MDN][7] 的。等等,MDNMozzila 开发者网络?干和 Mozilla 的开发者一样的事儿?他们会合并我这么小儿科的贡献吗?[冒名顶替综合症][8] 又开始了。 在检查这个议题时,我看到有人已经在提交贡献了,于是我鼓起勇气开始翻阅项目的内容。阅读和理解这个项目颇花费了我一些时间,而另一个要克服的,就是清楚处理这个议题我要怎么做。 这个项目就像你想的那么简单。 -于是,我挑选了两幅图片着手尝试。我给它们的 alt 属性赋值,提交我的更改,然后发出拉取请求。从提交请求到收到批准邮件的这段时间,我充满了自我怀疑。我要不要关闭拉取请求?这可是 MDN 啊。好吧,这甚至都不算编程...... 如果请求没有被合并怎么办?我恐怕再也不会想为开源做出贡献了。不过,所有的疑虑都在我看到审阅者发来的这些邮件时烟消云散: +于是,我挑选了两幅图片着手尝试。我给它们的 `alt` 属性赋值,提交我的更改,然后发出拉取请求。从提交请求到收到批准邮件的这段时间,我充满了自我怀疑。我要不要关闭拉取请求?这可是 MDN 啊。好吧,这甚至都不算编程…… 如果请求没有被合并怎么办?我恐怕再也不会想为开源做出贡献了。不过,所有的疑虑都在我看到审阅者发来的这些邮件时烟消云散: ![拉取请求确认邮件][9] @@ -56,15 +59,13 @@ 我希望你能从这篇文章中感受到以下几点: * 开源是面向所有人的。你在刚刚访问的那个网站上看到拼写错误了吗?你帮助订正了拼写错误,这就是为开源做出了贡献。 -* 没有任何技能是微不足道的。如您所见,我所做出的贡献,只需要对 HTML 最基本的了解。 +* 没有任何技能是微不足道的。如你所见,我所做出的贡献,只需要对 HTML 最基本的了解。 * 能阻止你做出贡献的只有你自己。 * 要想让雪球滚起来,需要做的就只是提交第一个贡献。 -我衷心希望您能从我的经历中获得什么,并且今天就付诸实践。这也就是我想贡献的另一个领域,那么,我们下一篇文章见,也祝您开源愉快! +我衷心希望你能从我的经历中获得什么,并且今天就付诸实践。这也就是我想贡献的另一个领域,那么,我们下一篇文章见,也祝你开源愉快! -*[这篇文章是我的第一个拉取请求被合并后的有感而发!并经许可转载。][13]* - -Image by: (Awosise Oluwaseun, CC BY-SA 4.0) +这篇文章最初发布于 [我的第一个拉取请求被合并][13],并经许可转载。 -------------------------------------------------------------------------------- @@ -73,7 +74,7 @@ via: https://opensource.com/article/22/9/first-pull-request-merged 作者:[Oluwaseun][a] 选题:[lkxed][b] 译者:[onionstalgia](https://github.com/onionstalgia) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -92,3 +93,4 @@ via: https://opensource.com/article/22/9/first-pull-request-merged [11]: https://opensource.com/sites/default/files/2022-09/thanks.png [12]: https://opensource.com/sites/default/files/2022-09/next.png [13]: https://dev.to/jhhornn/i-got-my-first-pull-request-merged-3ei9 +[0]: https://img.linux.net.cn/data/attachment/album/202302/02/170752aebzil6qjabuzb3g.jpg \ No newline at end of file From d2f869864d35bb6acaeff2c61eaf1757ceb41618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 2 Feb 2023 21:02:33 +0800 Subject: [PATCH 297/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?news]:=2020230202.0=20=E2=AD=90=EF=B8=8F=20LibreOffice=207.5=20?= =?UTF-8?q?Unveils=20Stunning=20New=20App=20Icons=20and=20Cool=20Features.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ls Stunning New App Icons and Cool Features.md | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md diff --git a/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md b/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md new file mode 100644 index 0000000000..d37aa6e92b --- /dev/null +++ b/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md @@ -0,0 +1,127 @@ +[#]: subject: "LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features" +[#]: via: "https://news.itsfoss.com/libreoffice-7-5-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features +====== + +LibreOffice 7.5 seems to have a new personality with its brand-new app icons and other improvements. + +![LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features][1] + +LibreOffice 7.5 community edition is here with **many feature upgrades and new app icons**. + +The previous major release [version 7.4][2] bought in better 'interoperability' with Microsoft's proprietary file formats and **further solidified LibreOffice** as one of the [best open-source alternatives to Microsoft Office][3] on Linux. + +And now, a new release is here with a lot in store. + +Let's take a look at what this has to offer. + +### 🆕 LibreOffice 7.5: What's New? + +![LibreOffice 7.5: New Features][4] + +With this release, plenty of improvements have been made to all the programs of LibreOffice; some key highlights include: + +- **New App Icons** +- **Writer Improvements** +- **Calc Improvements** +- **Impress & Draw Improvements** +- **Dark mode improvement** + +#### New App Icons + +![libreoffice's updated icons][5] + +LibreOffice now features a new set of app icons that look pretty modern. These will look neat with current-gen desktop environments such as GNOME and Plasma. + +Here's how it looks compared to the old icon; refreshing, right? + +![libreoffice old icon vs new icon][6] + +Similarly, the developers have also updated the icon set used throughout LibreOffice's interface for various media types/files. + +#### Writer Improvements + +![libreoffice writer screenshot][7] + +The Writer app has received a host of improvements, notable ones include: + +- A new plain text type was added. +- Content controls for titles and tags. +- New combo box type and ability to export content controls to PDF. +- Spellcheck has improved for various languages such as Danish, Dutch, Estonian, German, Hungarian, Norwegian, and Swedish. +- In case of tables, column detection has improved when it intersects with merged cells. +- Bookmark editing and accessibility has been improved. +- A decorative tag can be applied to images, embedded objects, and text frames to allow assistive software to ignore them in exported PDFs. + +#### Calc Improvements + +![libreoffice 7.5 calc screenshot][8] + +Cell inputs with the leading ' apostrophe in cells that are not formatted as Text will now permanently remove the first apostrophe to prevent confusion. + +Support for Kamenický and Mazovia encodings was added, alongside improvements to conditional formatting. + +In addition, when searching for a term in the Function Wizard, it will now match the function descriptions as well as their names. + +#### Impress & Draw Improvements + +Impress now has support for adding cropped videos in media shapes and also includes a fix for an EMF graphics issue where it would appear blurry. + +![libreoffice draw's new table style design feature][9] + +In the case of Draw, essential support was added for modifying table styles and creating new ones. Modified styles are saved into the document and can be made into templates and shared. + +> 🗒️ You can access the feature to modify table style by right-clicking on a design in the Table Design sidebar panel. + +#### 🛠️ Other Changes and Improvements + +These were not the only improvements to LibreOffice with the 7.5 release. + +Things like **better support for dark and high contrast themes**, support for data tables in charts, various improvements to the core, and more make this a packed release. Some refinements are targeted for platforms like macOS and Windows, along with Linux. + +You can check all the technical changes from the [official release notes][10] or the [announcement][11]. + +### Download LibreOffice 7.5 + +LibreOffice 7.5 is available from the [official download page][12]. + +You can find deb and rpm files along with packages for Windows and macOS (Intel/ARM). + +[LibreOffice 7.5][12] + +You can also opt for a Torrent file for an even smoother download experience. + +For existing users, depending on your Linux distribution, expect an update in the coming days/weeks. You may opt for the Flatpak package for faster access to the latest version. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/libreoffice-7-5-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/02/libreoffice-7.5-release.png +[2]: https://news.itsfoss.com/libreoffice-7-4-release/ +[3]: https://itsfoss.com/best-free-open-source-alternatives-microsoft-office/ +[4]: https://youtu.be/ZlAmjIwUvs4 +[5]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Icons.png +[6]: https://news.itsfoss.com/content/images/2023/02/libreoffice-icons.jpg +[7]: https://news.itsfoss.com/content/images/2023/02/libreoffice-writer.png +[8]: https://news.itsfoss.com/content/images/2023/02/libreoffice-7-5.png +[9]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Table_Design.png +[10]: https://wiki.documentfoundation.org/ReleaseNotes/7.5 +[11]: https://blog.documentfoundation.org/blog/2023/02/02/tdf-announces-libreoffice-75-community/ +[12]: https://www.libreoffice.org/download/download-libreoffice/ From 2f7a34f778b966657ed22353f9e4d36530d84827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 2 Feb 2023 21:05:11 +0800 Subject: [PATCH 298/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230202.1=20=E2=AD=90=EF=B8=8F=20Learn=20Basic=20by?= =?UTF-8?q?=20coding=20a=20game.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...30202.1 ⭐️ Learn Basic by coding a game.md | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md diff --git a/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md b/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md new file mode 100644 index 0000000000..87ca9f035b --- /dev/null +++ b/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md @@ -0,0 +1,132 @@ +[#]: subject: "Learn Basic by coding a game" +[#]: via: "https://opensource.com/article/23/2/learn-basic-coding-game" +[#]: author: "Moshe Zadka https://opensource.com/users/moshez" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Learn Basic by coding a game +====== + +Writing the same application in multiple languages is a great way to learn new ways to program. Most programming languages have certain things in common, such as: + +- Variables +- Expressions +- Statements + +These concepts are the basis of most programming languages. Once you understand them, you can start figuring the rest out. + +Programming languages usually share some similarities. Once you know one programming language, you can learn the basics of another by recognizing its differences. + +Practicing with a standard program is a good way of learning a new language. It 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. This article focuses on Basic. + +### Guess the number in (Bywater) Basic + +There is no real standard for the Basic programming language. Wikipedia says, "BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use." The [BWBasic][1] implementation is available under the GPL. + +You can explore Basic by writing a version of the "guess the number" game. + +### Install Basic on Linux + +In Debian or Ubuntu, you can install Basic with the following: + +``` +$ apt install -y bwbasic +``` + +Download the latest release tarball for Fedora, CentOS, Mageia, and any other Linux distribution. Extract it, make it executable, and then run it from a terminal: + +``` +$ tar --extract --file bwbasic*z + +$ chmod +x bywater + +$ ./bywater +``` + +On Windows, [download the .exe release][2]. + +### Basic code + +Here is my implementation: + +``` +10 value$ = cint(rnd * 100) + 1 +20 input "enter guess"; guess$ +30 guess$ = val(guess$) +40 if guess$ < value$ then print "Too low" +50 if guess$ > value$ then print "Too high" +60 if guess$ = value$ then 80 +70 goto 20 +80 print "That's right" +``` + +Basic programs can be numbered or unnumbered. Usually, it is better to write programs unnumbered, but writing them with numbered lines makes it easier to refer to individual lines. + +By convention, coders write lines as multiples of 10. This approach allows interpolating new lines between existing ones for debugging. Here's an explanation of my method above: + +- Line 10: Computes a random value between 1 and 100 using the built-in **rnd** function, which generates a number between 0 and 1, not including 1. +- Line 20: Asks for a guess and puts the value in the **guess$ scalar** variable. Line 30 converts the value to a numeric one. +- Lines 40 and 50: Give the guesser feedback, depending on the comparison. +- Line 70: Goes to the beginning of the loop. +- Line 60: _Breaks_& the loop by transferring control to line 80. Line 80 is the last line, so the program exits after that. + +### Sample output + +The following is an example of the program after putting it in `program.bas`: + +``` +$ bwbasic program.bas  +Bywater BASIC Interpreter/Shell, version 2.20 patch level 2 +Copyright (c) 1993, Ted A. Campbell +Copyright (c) 1995-1997, Jon B. Volkoff + +enter guess? 50 +Too low +enter guess? 75 +Too low +enter guess? 88 +Too high +enter guess? 80 +Too low +enter guess? 84 +Too low +enter guess? 86 +Too high +enter guess? 85 +That's right +``` + +### Get started + +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/2/learn-basic-coding-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://yeolpishack.net/repos/ChipMaster/bwBASIC +[2]: https://github.com/nerun/bwbasic/releases From 3c4f2aec5f62d72fe45ae3d122037400919eaa95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 2 Feb 2023 21:05:54 +0800 Subject: [PATCH 299/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?news]:=2020230201.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Sy?= =?UTF-8?q?stem76's=20Upcoming=20COSMIC=20Desktop=20is=20Gearing=20Up=20Wi?= =?UTF-8?q?th=20Big=20Changes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...g COSMIC Desktop is Gearing Up With Big Changes.md | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md diff --git a/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md b/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md new file mode 100644 index 0000000000..238d4e4596 --- /dev/null +++ b/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md @@ -0,0 +1,159 @@ +[#]: subject: "System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes" +[#]: via: "https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes +====== + +System76 shared development details on its upcoming Rust-powered cosmic desktop environment. Let's take a look. + +![System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes][1] + +The developers of Pop!_OS started working on their **Rust-based desktop environment** 'COSMIC' [back in 2021][2]. + +The goal was to make something familiar to what you already get with Pop!_OS but provide you with a faster and more extensible desktop environment. + +System76 also chose [not to release Pop!_OS 22.10][3] to focus on its development. + +Not to forget, one of our community contributors gave an early build a try, which looked pretty promising. + +**Suggested Read** 📖 + +I Tried System76’s New Rust-based COSMIC Desktop!If you didn’t know already, System76 developers have been working on a new Desktop Environment (dubbed COSMIC) written in Rust: a memory-safe and superfast programming language. Creating a desktop environment from scratch is no small feat. That involves creating everything from the compositor,…![][4]It's FOSS NewsCommunity![][5] + +Fast-forward a year, we now have a better look at what to expect with this desktop environment. + +Let's explore what System76 has in store for us. + +### COSMIC Desktop: 3 Key Enhancements + +> 📋 The changes and mockups discussed are subject to change at the time of final release. + +In a [recent blog post][6], Alex from System76 gave us a good look at the state of development of the COSMIC desktop environment. + +Let me take you through the notable highlights of it: + +- **New UI Features** +- **Settings Revamped** +- **New Wallpaper Feature** + +### 1. New UI Features + +![cosmic de ui new ui features][7] + +A new '[SegmentedButton][8]' widget is being used for handling tabs and segmented buttons around COSMIC DE. + +It is meant to give a clean, organized, and more focused menu experience, whereas the segmented buttons allow actions to be done when selected. + +They also give an example to explain how this helps with the UI: + +> So while you’re customizing your desktop to use horizontal workspaces instead of vertical, for example, your selection will cause the desktop to reflect this behavior. + +### 2. Revamped Settings + +![cosmic de revamped settings menu][9] + +Firstly, the Settings app has received a complete overhaul, with the search results now showing up as a continuous, scrollable list of results from various settings panels. + +> 🗒️ Specific settings were adjusted after the latest rounds of internal user (UX) testing. + +Then there are the remakes of the various settings panels themselves. Let me take you through them: + +#### Display Tweaks + +![cosmic de display settings][10] + +The developers have moved the graphics modes and night light options to the display settings panel. During testing, they found that most users go to the display settings expecting to find those settings. + +![][11] + +Additionally, when using multiple displays, the display settings will be organized into dedicated tabs according to the display, with options to change or add a color profile. + +#### Power Options + +![][12] + +This settings panel now shows the battery level of connected wireless devices and an overview of all the connected devices. + +You can also select power profiles based on your requirements and limit battery charging for your Laptop to preserve battery life. + +#### Region and Language Selection + +![cosmic de region language settings][13] + +This setting has been divided into different categories for ease of access. They have been divided into categories to select regional formats for calendar, date, temperature, and measurement. + +#### Sound + +A new option has been added to the Sound setting that lets you adjust the volume of individual alerts and applications. + +![cosmic de sound settings][14] + +Furthermore, users with two or more speakers can now use the new speaker testing tool to optimize their setup. + +### 3. New Wallpaper Feature + +![][15] + +COSMIC DE will let you set a single wallpaper, one per display, or let you cycle through multiple wallpapers as a slideshow. Finally, **a good news for multi-monitor users!** + +You will also have fine control over how long each wallpaper gets to stay on the screen before switching to the next one. + +### 🛠️ Other Improvements + +In addition to the user-facing changes mentioned above, several under-the-hood refinements include: + +- A new Dynamic renderer, '[iced-dyrend][16]' has been implemented by System76 Principal Engineer, meant to adjust what rendering program your GPU should use dynamically. It can switch between OpenGL or Vulkan if you have a GPU, or [Softbuffer][17] if you don't. +- Text rendering via '[cosmic-text][18]' has been paired with Softbuffer 0.2.0 to allow the software-rendering back-end for the '[libcosmic][19]' widget library to be used on any OS. +- The developers have also tested an XWayland implementation that would let COSMIC DE run applications that use the X11 windowing system. +- Animations support has been added to COSMIC DE via the '[cosmic-time][20]' animation crate. It contains animations used by the default applications and was built using the '[Iced][21]' toolkit. + +The developers also mentioned: + +> While COSMIC DE is being developed for Pop!_OS, our goal is to make its elements available for use on other operating systems, too. + +This is good to hear! If you were wondering if COSMIC DE was something Pop!_OS exclusive, maybe you will be able to use it on distros, too, hopefully! 😊 + +> 🐘 Keep an eye out on our [Mastodon][22] and [Twitter][23] feeds for more news updates! + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/ + +作者:[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/02/cosmic-desktop-changes.png +[2]: https://news.itsfoss.com/pop-os-cosmic-rust/ +[3]: https://news.itsfoss.com/no-pop-os-21-10/ +[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png +[5]: https://news.itsfoss.com/content/images/wordpress/2022/01/system76-rust-based-distro-ft.png +[6]: https://blog.system76.com/post/more-on-cosmic-de-to-kick-off-2023 +[7]: https://news.itsfoss.com/content/images/2023/02/COSMIC_ui.jpg +[8]: https://github.com/pop-os/libcosmic/pull/56 +[9]: https://news.itsfoss.com/content/images/2023/02/COSMIC_revamped_settings.jpg +[10]: https://news.itsfoss.com/content/images/2023/02/COSMIC_display.png +[11]: https://news.itsfoss.com/content/images/2023/02/multiple-displays.jpg +[12]: https://news.itsfoss.com/content/images/2023/02/COSMIC_power-1.png +[13]: https://news.itsfoss.com/content/images/2023/02/COSMIC_region_language.png +[14]: https://news.itsfoss.com/content/images/2023/02/COSMIC_sound.png +[15]: https://news.itsfoss.com/content/images/2023/02/COSMIC_wallpapers-1.png +[16]: https://github.com/pop-os/iced/commit/f1310e47617c3046a3cd98e20e373247f19327af +[17]: https://github.com/rust-windowing/softbuffer/ +[18]: https://github.com/pop-os/cosmic-text +[19]: https://github.com/pop-os/libcosmic +[20]: https://github.com/pop-os/cosmic-time +[21]: https://github.com/iced-rs/iced +[22]: https://mastodon.social/@itsfoss +[23]: https://twitter.com/itsfoss2 From 3eaf11195a10e321b7d9f5ed154355ed3e742cec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 2 Feb 2023 21:07:18 +0800 Subject: [PATCH 300/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230201.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F?= =?UTF-8?q?=E2=AD=90=EF=B8=8F=20A=20guide=20to=20fuzzy=20queries=20with=20?= =?UTF-8?q?Apache=20ShardingSphere.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...A guide to fuzzy queries with Apache ShardingSphere.md | 423 ++++++++++++++++++ 1 file changed, 423 insertions(+) create mode 100644 sources/tech/20230201.1 ⭐️⭐️⭐️ A guide to fuzzy queries with Apache ShardingSphere.md diff --git a/sources/tech/20230201.1 ⭐️⭐️⭐️ A guide to fuzzy queries with Apache ShardingSphere.md b/sources/tech/20230201.1 ⭐️⭐️⭐️ A guide to fuzzy queries with Apache ShardingSphere.md new file mode 100644 index 0000000000..c27795c9af --- /dev/null +++ b/sources/tech/20230201.1 ⭐️⭐️⭐️ A guide to fuzzy queries with Apache ShardingSphere.md @@ -0,0 +1,423 @@ +[#]: subject: "A guide to fuzzy queries with Apache ShardingSphere" +[#]: via: "https://opensource.com/article/23/2/fuzzy-query-apache-shardingsphere" +[#]: author: "Xiong Gaoxiang https://opensource.com/users/xionggaoxiang" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +A guide to fuzzy queries with Apache ShardingSphere +====== + +[Apache ShardingSphere][1] is an open source distributed database and an ecosystem users and developers need for their databases to provide a customized and cloud-native experience. Its [latest release][2] contains many new features, including data encryption integrated with existing SQL workflows. Most importantly, it allows fuzzy queries of the encrypted data. + +### The problem + +By parsing a user's SQL input and rewriting the SQL according to the user's encryption rules, the original data is encrypted and stored with ciphertext data in the underlying database simultaneously. + +When a user queries the data, it fetches the ciphertext data from the database, decrypts it, and returns the decrypted original data to the user. However, because the encryption algorithm encrypts the whole string, users cannot run fuzzy queries. + +Nevertheless, many businesses need fuzzy queries after the data is encrypted. In version 5.3.0, Apache ShardingSphere provides users with a default fuzzy query algorithm that supports encrypted fields. The algorithm also supports hot plugging, which users can customize. The fuzzy query can be achieved through configuration. + +### How to achieve fuzzy query in encrypted scenarios + +#### Load data to the in-memory database (IMDB) + +First, load all the data into the IMDB to decrypt it. Then, it'll be like querying the original data. This method can achieve fuzzy queries. If the amount of data is small, this method will prove simple and cost-effective. However, if the quantity of data is large, it'll be a disaster. + +#### Implement encryption and decryption functions consistent with database programs + +The second method is to modify fuzzy query conditions and use the database decryption function to decrypt data first and then implement fuzzy query. This method's advantage is the low cost of implementation, development, and use. + +Users only need to modify the previous fuzzy query conditions slightly. However, the ciphertext and encryption functions are stored together in the database, which cannot cope with the problem of account data leaks. + +Native SQL: + +``` +select * from user where name like "%xxx%" +``` + +After implementing the decryption function: + +``` +ѕеlесt * frоm uѕеr whеrе dесоdе(namе) lіkе "%ххх%" +``` + +#### Store after data masking + +Implement data masking on ciphertext and then store it in a fuzzy query column. This method could lack precision. + +For example, mobile number **13012345678** becomes **130****5678** after the masking algorithm is performed. + +#### Perform encrypted storage after tokenization and combination + +This method performs tokenization and combination on ciphertext data and then encrypts the resultset by grouping characters with fixed length and splitting a field into multiple ones. For example, we take four English characters and two Chinese characters as a query condition: **ningyu1** uses the four-character as a group to encrypt, so the first group is **ning**, the second group **ingy**, the third group **ngyu**, the fourth group **gyu1**, and so on. All the characters are encrypted and stored in the fuzzy query column. If you want to retrieve all data that contains four characters, such as **ingy**, encrypt the characters and use a key `like"%partial%"` to query. + +Shortcomings: + +- Increased storage costs: Free grouping will increase the amount of data, and the data length will increase after being encrypted. +- Limited length in fuzzy query: Due to security issues, the length of free grouping cannot be too short or the [rainbow table][3] will easily crack it. Like the example I mentioned above, the length of fuzzy query characters must be greater than or equal to four letters/digits or two Chinese characters. + +#### Single-character digest algorithm (default fuzzy query algorithm provided in ShardingSphere version 5.3.0) + +Although the above methods are all viable, it's only natural to wonder if there's a better alternative. In our community, we find that single-character encryption and storage can balance performance and query but fails to meet security requirements. + +So what's the ideal solution? Inspired by masking algorithms and cryptographic hash functions, we find that data loss and one-way functions can be used. + +The cryptographic hash function should have the following four features: + +- It should be easy to calculate the hash value for any given message. +- It should be difficult to infer the original message from a known hash value. +- It should not be feasible to modify the message without changing the hash value. +- There should only be a very low chance that two different messages produce the same hash value. + +Security: Because of the one-way function, it's impossible to infer the original message. To improve the accuracy of the fuzzy query, we want to encrypt a single character, but the rainbow table will crack it. + +So we take a one-way function (to ensure every character is the same after encryption) and increase the frequency of collisions (to ensure every string is **1: N** backward), which greatly enhances security. + +### Fuzzy query algorithm + +Apache ShardingSphere implements a universal fuzzy query algorithm using the below single-character digest algorithm `org.apache.shardingsphere.encrypt.algorithm.like.CharDigestLikeEncryptAlgorithm`. + +``` +public final class CharDigestLikeEncryptAlgorithm implements LikeEncryptAlgorithm { + + private static final String DELTA = "delta"; + + private static final String MASK = "mask"; + + private static final String START = "start"; + + private static final String DICT = "dict"; + + private static final int DEFAULT_DELTA = 1; + + private static final int DEFAULT_MASK = 0b1111_0111_1101; + + private static final int DEFAULT_START = 0x4e00; + + private static final int MAX_NUMERIC_LETTER_CHAR = 255; + + @Getter + private Properties props; + + private int delta; + + private int mask; + + private int start; + + private Map charIndexes; + + @Override + public void init(final Properties props) { + this.props = props; + delta = createDelta(props); + mask = createMask(props); + start = createStart(props); + charIndexes = createCharIndexes(props); + } + + private int createDelta(final Properties props) { + if (props.containsKey(DELTA)) { + String delta = props.getProperty(DELTA); + try { + return Integer.parseInt(delta); + } catch (NumberFormatException ex) { + throw new EncryptAlgorithmInitializationException("CHAR_DIGEST_LIKE", "delta can only be a decimal number"); + } + } + return DEFAULT_DELTA; + } + + private int createMask(final Properties props) { + if (props.containsKey(MASK)) { + String mask = props.getProperty(MASK); + try { + return Integer.parseInt(mask); + } catch (NumberFormatException ex) { + throw new EncryptAlgorithmInitializationException("CHAR_DIGEST_LIKE", "mask can only be a decimal number"); + } + } + return DEFAULT_MASK; + } + + private int createStart(final Properties props) { + if (props.containsKey(START)) { + String start = props.getProperty(START); + try { + return Integer.parseInt(start); + } catch (NumberFormatException ex) { + throw new EncryptAlgorithmInitializationException("CHAR_DIGEST_LIKE", "start can only be a decimal number"); + } + } + return DEFAULT_START; + } + + private Map createCharIndexes(final Properties props) { + String dictContent = props.containsKey(DICT) && !Strings.isNullOrEmpty(props.getProperty(DICT)) ? props.getProperty(DICT) : initDefaultDict(); + Map result = new HashMap<>(dictContent.length(), 1); + for (int index = 0; index < dictContent.length(); index++) { + result.put(dictContent.charAt(index), index); + } + return result; + } + + @SneakyThrows + private String initDefaultDict() { + InputStream inputStream = CharDigestLikeEncryptAlgorithm.class.getClassLoader().getResourceAsStream("algorithm/like/common_chinese_character.dict"); + LineProcessor lineProcessor = new LineProcessor() { + + private final StringBuilder builder = new StringBuilder(); + + @Override + public boolean processLine(final String line) { + if (line.startsWith("#") || 0 == line.length()) { + return true; + } else { + builder.append(line); + return false; + } + } + + @Override + public String getResult() { + return builder.toString(); + } + }; + return CharStreams.readLines(new InputStreamReader(inputStream, Charsets.UTF_8), lineProcessor); + } + + @Override + public String encrypt(final Object plainValue, final EncryptContext encryptContext) { + return null == plainValue ? null : digest(String.valueOf(plainValue)); + } + + private String digest(final String plainValue) { + StringBuilder result = new StringBuilder(plainValue.length()); + for (char each : plainValue.toCharArray()) { + char maskedChar = getMaskedChar(each); + if ('%' == maskedChar) { + result.append(each); + } else { + result.append(maskedChar); + } + } + return result.toString(); + } + + private char getMaskedChar(final char originalChar) { + if ('%' == originalChar) { + return originalChar; + } + if (originalChar <= MAX_NUMERIC_LETTER_CHAR) { + return (char) ((originalChar + delta) & mask); + } + if (charIndexes.containsKey(originalChar)) { + return (char) (((charIndexes.get(originalChar) + delta) & mask) + start); + } + return (char) (((originalChar + delta) & mask) + start); + } + + @Override + public String getType() { + return "CHAR_DIGEST_LIKE"; + } +} +``` + +- Define the binary `mask` code to lose precision `0b1111_0111_1101` (mask). +- Save common Chinese characters with disrupted order like a `map` dictionary. +- Obtain a single string of `Unicode` for digits, English, and Latin. +- Obtain an `index` for a Chinese character belonging to a dictionary. +- Other characters fetch the `Unicode` of a single string. +- Add `1 (delta)`to the digits obtained by different types above to prevent any original text from appearing in the database. +- Then convert the offset `Unicode` into binary, perform the `AND` operation with `mask`, and carry out a two-bit digit loss. +- Directly output digits, English, and Latin after the loss of precision. +- The remaining characters are converted to decimal and output with the common character `start` code after the loss of precision. + +### The fuzzy algorithm development progress + +#### The first edition + +Simply use `Unicode` and `mask` code of common characters to perform the `AND` operation. + +``` +Mask: 0b11111111111001111101 +The original character: 0b1000101110101111讯 +After encryption: 0b1000101000101101設 +``` + +Assuming we know the key and encryption algorithm, the original string after a backward pass is: + +``` +1.0b1000101100101101 謭 +2.0b1000101100101111 謯 +3.0b1000101110101101 训 +4.0b1000101110101111 讯 +5.0b1000101010101101 読 +6.0b1000101010101111 誯 +7.0b1000101000101111 訯 +8.0b1000101000101101 設 +``` + +Based on the missing bits, we find that each string can be derived `2^n` Chinese characters backward. When the `Unicode` of common Chinese characters is decimal, their intervals are very large. Notice that the Chinese characters inferred backward are not common characters, and it's more likely to infer the original characters. + +![Inference of Chinese characters][4] + +#### The second edition + +The interval of common Chinese characters in `Unicode` is irregular. We planned to leave the last few bits of Chinese characters in `Unicode` and convert them into decimal as an `index` to fetch some common Chinese characters. This way, when the algorithm is known, uncommon characters won't appear after a backward pass, and distractors are no longer easy to eliminate. + +If we leave the last few bits of Chinese characters in `Unicode`, it has something to do with the relationship between the accuracy of fuzzy query and anti-decryption complexity. The higher the accuracy, the lower the decryption difficulty. + +Let's take a look at the collision degree of common Chinese characters under our algorithm: + +1. When `mask`=0b0011_1111_1111: + +![Mask results][5] + +2. When `mask`=0b0001_1111_1111: + +![Mask results][6] + +For the mantissa of Chinese characters, leave 10 and 9 digits. The 10-digit query is more accurate because its collision is much weaker. Nevertheless, if the algorithm and the key are known, the original text of the 1:1 character can be derived backward. + +The nine-digit query is less accurate because nine-digit collisions are relatively stronger, but there are fewer 1:1 characters. Although we change the collisions regardless of whether we leave ten or nine digits, the distribution is unbalanced due to the irregular `Unicode` of Chinese characters. The overall collision probability cannot be controlled. + +#### The third edition + +In response to the unevenly distributed problem found in the second edition, we take common characters with disrupted order as the dictionary table. + +1. The encrypted text first looks up the `index` in the out-of-order dictionary table. We use the `index` and subscript to replace the `Unicode` without rules. Use `Unicode` in case of uncommon characters. (Note: Evenly distribute the code to be calculated as far as possible.) + +2. The next step is to perform the `AND` operation with a `mask` and lose two-bit precision to increase the frequency of collisions. + +Let's take a look at the collision degree of common Chinese characters under our algorithm: + +1. When `mask`=0b1111_1011_1101: + +![Mask results][7] + +2. When `mask`=0b0111_1011_1101: + +![Mask results][8] + +When the `mask` leaves 11 bits, you can see that the collision distribution is concentrated at 1:4. When the `mask` leaves ten bits, the number becomes 1:8. At this time, we only need to adjust the number of precision losses to control whether the collision is 1:2, 1:4 or 1:8. + +If the `mask` is selected as 1, and the algorithm and key are known, there will be a 1:1 Chinese character because we calculate the collision degree of common characters at this time. If we add the missing four bits before the 16-bit binary of Chinese characters, the situation becomes `2^5=32` cases. + +Since we encrypt the whole text, even if the individual character is inferred backward, there will be little impact on overall security and will not cause mass data leaks. At the same time, the premise of backward pass is to know the algorithm, key, `delta`, and dictionary, so it's impossible to achieve from the data in the database. + +### How to use fuzzy query + +Fuzzy query requires the configuration of `encryptors` (encryption algorithm configuration), `likeQueryColumn` (fuzzy query column name), and `likeQueryEncryptorName` (encryption algorithm name of fuzzy query column ) in the encryption configuration. + +Please refer to the following configuration. Add your own sharding algorithm and data source. + +``` +dataSources: + ds_0: + dataSourceClassName: com.zaxxer.hikari.HikariDataSource + driverClassName: com.mysql.jdbc.Driver + jdbcUrl: jdbc:mysql://127.0.0.1:3306/test?allowPublicKeyRetrieval=true + username: root + password: root + +rules: +- !ENCRYPT + encryptors: + like_encryptor: + type: CHAR_DIGEST_LIKE + aes_encryptor: + type: AES + props: + aes-key-value: 123456abc + tables: + user: + columns: + name: + cipherColumn: name + encryptorName: aes_encryptor + assistedQueryColumn: name_ext + assistedQueryEncryptorName: aes_encryptor + likeQueryColumn: name_like + likeQueryEncryptorName: like_encryptor + phone: + cipherColumn: phone + encryptorName: aes_encryptor + likeQueryColumn: phone_like + likeQueryEncryptorName: like_encryptor + queryWithCipherColumn: true + + +props: + sql-show: true +``` + +Insert + +``` +Logic SQL: insert into user ( id, name, phone, sex) values ( 1, '熊高祥', '13012345678', '男') +Actual SQL: ds_0 ::: insert into user ( id, name, name_ext, name_like, phone, phone_like, sex) values (1, 'gyVPLyhIzDIZaWDwTl3n4g==', 'gyVPLyhIzDIZaWDwTl3n4g==', '佹堝偀', 'qEmE7xRzW0d7EotlOAt6ww==', '04101454589', '男') +``` + +Update + +``` +Logic SQL: update user set name = '熊高祥123', sex = '男1' where sex ='男' and phone like '130%' +Actual SQL: ds_0 ::: update user set name = 'K22HjufsPPy4rrf4PD046A==', name_ext = 'K22HjufsPPy4rrf4PD046A==', name_like = '佹堝偀014', sex = '男1' where sex ='男' and phone_like like '041%' +``` + +Select + +``` +Logic SQL: select * from user where (id = 1 or phone = '13012345678') and name like '熊%' +Actual SQL: ds_0 ::: select `user`.`id`, `user`.`name` AS `name`, `user`.`sex`, `user`.`phone` AS `phone`, `user`.`create_time` from user where (id = 1 or phone = 'qEmE7xRzW0d7EotlOAt6ww==') and name_like like '佹%' +``` + +Select: federated table sub-query + +``` +Logic SQL: select * from user LEFT JOIN user_ext on user.id=user_ext.id where user.id in (select id from user where sex = '男' and name like '熊%') +Actual SQL: ds_0 ::: select `user`.`id`, `user`.`name` AS `name`, `user`.`sex`, `user`.`phone` AS `phone`, `user`.`create_time`, `user_ext`.`id`, `user_ext`.`address` from user LEFT JOIN user_ext on user.id=user_ext.id where user.id in (select id from user where sex = '男' and name_like like '佹%') +``` + +Delete + +``` +Logic SQL: delete from user where sex = '男' and name like '熊%' +Actual SQL: ds_0 ::: delete from user where sex = '男' and name_like like '佹%' +``` + +The above example demonstrates how fuzzy query columns rewrite SQL in different SQL syntaxes to support fuzzy queries. + +### Wrap up + +This article introduced you to the working principles of fuzzy query and used specific examples to demonstrate how to use it. I hope that through this article, you will have a basic understanding of fuzzy queries. + +_This article was originally published on [Medium][9] and has been republished with the author's permission._ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/fuzzy-query-apache-shardingsphere + +作者:[Xiong Gaoxiang][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/xionggaoxiang +[b]: https://github.com/lkxed +[1]: https://shardingsphere.apache.org/ +[2]: https://opensource.com/article/23/1/apache-shardingsphere-new-features +[3]: https://www.techtarget.com/whatis/definition/rainbow-table +[4]: https://opensource.com/sites/default/files/2023-01/41chinesecharacters.jpg +[5]: https://opensource.com/sites/default/files/2023-01/42-1-characters.jpg +[6]: https://opensource.com/sites/default/files/2023-01/42-2-characters.jpg +[7]: https://opensource.com/sites/default/files/2023-01/43-1-characters.png +[8]: https://opensource.com/sites/default/files/2023-01/43-2-characters.png +[9]: https://medium.com/codex/fuzzy-query-for-ciphercolumn-shardingsphere-5-3-0-deep-dive-ad09faea67d3 From e9d7f454e09d1ba5dc423930bb3f313a976e6ac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Thu, 2 Feb 2023 21:07:42 +0800 Subject: [PATCH 301/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?news]:=2020230131.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20el?= =?UTF-8?q?ementary=20OS=207=20is=20a=20Modest=20Upgrade=20With=20Useful?= =?UTF-8?q?=20Changes.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ry OS 7 is a Modest Upgrade With Useful Changes.md | 157 ++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md diff --git a/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md b/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md new file mode 100644 index 0000000000..9d412d392e --- /dev/null +++ b/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md @@ -0,0 +1,157 @@ +[#]: subject: "elementary OS 7 is a Modest Upgrade With Useful Changes" +[#]: via: "https://news.itsfoss.com/elementary-os-7-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +elementary OS 7 is a Modest Upgrade With Useful Changes +====== + +elementary OS 7 upgrade makes an appearance after almost a year. Some exciting and subtle changes! + +![elementary OS 7 is a Modest Upgrade With Useful Changes][1] + +elementary OS 6.1 was an impressive release. It has been more than a year, and finally, the next major upgrade, **elementary OS 7 'Horus'**, landed. + +The changes may not be considered a massive overhaul, but the development focus was more on **refinements**, as previously [reported][2]. + +### elementary OS 7: What's New? + +The main areas of improvement include: + +- **AppCenter** +- **App & System Updates** +- **Sideloading or Alternate Stores** +- **Improved onboarding and installation experience** +- **App improvements** + +#### AppCenter Upgrades + +![elementary os 7 appcenter][3] + +With every major upgrade, much emphasis is put on AppCenter. While it already offers a polished experience, it gets better with faster performance and better adjustment to different screen resolutions or window sizes. + +The app descriptions are the highlight this time. You get to see more screenshots of an app at once, giving you a better view of applications. + +![elementary os 7 appcenter descriptions][4] + +The images also include captions that should help make app pages accessible to users with vision-related disabilities. + +Overall, the screenshots blend in with a background featuring the default accent color of the app, making it look good. + +Furthermore, the app descriptions will also give you more information on how actively the app is maintained, along with the recent release notes. + +#### App Updates + +![elementaryos 7 appcenter app updates][5] + +You now get an option to toggle if you want automatic app updates. + +The preferences for Flatpak remain the same; instead of manually checking for it, you can opt to have them update automatically. + +In addition, system updates will be installed offline once downloaded and prepared to give you a seamless experience. + +#### Third-Party App Store + +elementaryOS 7 relies on its separate Flatpak repository for the applications on AppCenter. + +However, you can still add Flathub as a repository and get more Flatpak apps. + +To inform you of the difference, the AppCenter will mention some warning like "**Non-Curated**", so you know it is from an alternate store. + +![elementaryos 7 appcenter non-curated app warning][6] + +The pop-up warning will only appear once when you try to install an app from a third-party store for the first time. + +#### Web App Support + +![elementary os 7 web apps][7] + +The release includes GNOME Web 43, which supports creating web apps that can be found in the applications menu. + +You can manage the web apps installed from within GNOME Web. + +#### Redesigned Icons + +![elementaryos new icons][8] + +elementaryOS is already known as one of the best beautiful Linux distributions. + +To elevate the experience, almost every app icon has been redesigned to provide a more modern and expressive user experience. + +#### Installation & Onboarding Experience + +![elementary os 7 primary mouse button prompt installation window][9] + +The installation experience is getting more straightforward with upgrades. + +In other words, you will have less number of screens in the installer but still, get all the essential information that includes warnings and system requirements. + +The installer now prompts you to choose between left-click or right-click as the primary mouse button. + +![elementaryos automatic updates toggle onboarding screen][10] + +From system theme preferences to automatic updates, you can configure all the essential things right after installation. + +#### New Music 7 Multimedia App + +![elementartyos music 7 app][11] + +To provide a better multimedia experience, the Music app has been completely rewritten from scratch, which works well for various use cases. + +You can curate local music locations, preview audio files, get correct metadata info, and more. + +#### Other Changes + +You will find several other subtle refinements. Some of those include: + +- **The mail app now features a more modern and flatter design for improved responsiveness** +- **The mail app now supports Microsoft 365 accounts** +- **Offline support for newly created task lists on the Tasks app** +- **Online Accounts settings include offline support for CalDAV accounts** +- **Toggle to choose folders with a single click** +- **Redesigned printer settings** +- **Power profile management settings** + +You can refer to the [official announcement][12] for more details. + +### Download elementary OS 7 + +> 📋 While I tried the latest RC build to test things out, my NVIDIA graphics-powered system booted up with an inverted (weird-looking) colored screen. This may not be an issue for the final release. + +You can grab the latest ISO from the [official website][13]. I wish they would add a separate ISO for NVIDIA systems, but for the rest, it should work fine. + +[elementary OS 7][13] + +Also, you will have to go for a re-install instead of upgrading from elementary OS 6. Check out its [official FAQ][14] before you proceed to install. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/elementary-os-7-release/ + +作者:[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/2023/01/elementary-os-7-release-ft.png +[2]: https://news.itsfoss.com/elementary-os-7-dev-updates/ +[3]: https://news.itsfoss.com/content/images/2023/01/appcenter-responsive.jpg +[4]: https://news.itsfoss.com/content/images/2023/01/appcenter-appinfo.png +[5]: https://news.itsfoss.com/content/images/2023/01/appcenter-updates.png +[6]: https://news.itsfoss.com/content/images/2023/01/appcenter-sideload.png +[7]: https://news.itsfoss.com/content/images/2023/01/web-apps.png +[8]: https://news.itsfoss.com/content/images/2023/01/icons-apps.png +[9]: https://news.itsfoss.com/content/images/2023/01/initialsetup-lefthand-elementaryos.png +[10]: https://news.itsfoss.com/content/images/2023/01/onboarding-updates.png +[11]: https://news.itsfoss.com/content/images/2023/01/elementary-music.jpg +[12]: https://blog.elementary.io/os-7-available-now/ +[13]: https://elementary.io +[14]: https://github.com/elementary/os/wiki/OS-7-Horus-FAQ From d6382911af8c7604853754eed57fd0bf66b86f57 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 3 Feb 2023 08:41:36 +0800 Subject: [PATCH 302/357] translated --- ...older Between Guest and Host in GNOME Boxes.md | 119 ------------------ ...older Between Guest and Host in GNOME Boxes.md | 119 ++++++++++++++++++ 2 files changed, 119 insertions(+), 119 deletions(-) delete mode 100644 sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md create mode 100644 translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md diff --git a/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md deleted file mode 100644 index c97c16b9ff..0000000000 --- a/sources/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md +++ /dev/null @@ -1,119 +0,0 @@ -[#]: subject: "Share Folder Between Guest and Host in GNOME Boxes" -[#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Share Folder Between Guest and Host in GNOME Boxes -====== - -**Use the below steps to share a folder between host and guest in GNOME Boxes app.** - -GNOME Boxes is a front-end application to create and manage virtual machines. It is primarily compatible with the GNOME desktop. However, you can use it in other desktop environments, such as KDE Plasma and others. - -At the backend, it uses QEMU, KVM, and libvirt tech and provides an easy-to-use user interface to manage multiple virtual machines. - -If you want to learn more, you can also refer to [these guides][1] on GNOME Boxes to create virtual machines. - -In the prior articles, we have explained how to share folders in [virt-manager][2] and [VirtualBox][3]. And the following steps explain the same for GNOME Boxes. - -### How to share folder and file in GNOME Boxes - -GNOME Boxes primarily support [SPICE protocol][4] to enable remote access, sharing and many virtualization features. SPICE is one of the oldest open-source packages in the virtualization space. - -#### 1. Initial setup - -- Firstly, make sure to install the following spice packages inthe **guest system**. - -``` -sudo apt install spice-vdagent spice-webdavd #for Ubuntu-based distros -sudo dnf install spice-vdagent spice-webdavd #Fedora, RHEL, etc -pacman -S --needed spice spice-gtk spice-protocol spice-vdagent #Arch Linux (optional) -``` - -- After you install the above, **reboot** the host and guest systems. -- In the host system (for GNOME desktop), open settings and go to Sharing panel. -- **Enable Sharing** using the top toggle button. -- Then, click on File Sharing and **Enable File Sharing**. Make sure to enable the network. The password is optional. If you want to enable password-based authentication for your shared folder, enable it. - -![Enable sharing in settings][5] - -![Enable File Sharing][6] - -- Close the settings window. -- Open GNOME Boxes. Right-click on the VM and select **preferences**. -- Click on **Devices and Shares** on the preference window and click on the **[+] button** under Shared folders. -- Under **Local Folder**: Select the folder from your host you want to access inside the guest. -- **Name**: Give any name you want. This name will be visible in the guest’s file manager. -- Click Save. - -![Add a share folder in host][7] - -#### 2. Setup for guest - -- Start your guest virtual machine. -- Inside the guest virtual machine, open the file manager. If you are using a GNOME desktop, open Nautilus (i.e. Files). -- Click on **Other Locations**. you should see the “**Spice client folder**” under Networks. -- Double-click on this, and you should see the folder contents of your host system. -- Sometimes, the above folder takes some time to appear. if it is not visible, wait for 1 or 2 minutes. Refresh the file manager window via `F5`. - -![Spice client folder in guest][8] - -#### 3. Some troubleshooting - -- Furthermore, if you are getting the following error, then you need to access the path manually. - -``` -Unable to access location - HTTP Error: Could not connect: Connection refused -``` - -![error while accessing the spice client folder][9] - -- Press `CTRL+L` in the file manager to bring up the address bar. In the address bar, type the following: - -``` -dav://localhost:9843 -``` - -- And hit enter. And you should see the folder contents. The `dav` protocol is used by the SPICE server, which connects the guest and host at port 9843. - -![accessing via dav protocol][10] - -And that’s it. Now you can enjoy file sharing between guests and hosts in GNOME Boxes. - -Here’s a screenshot of the same folder accessed by the guest and host. - -![Share folder and its contents between guest and host in GNOME Boxes (sample)][11] - -If you run into any error, drop a comment below. - -[_Some references are used in this article from GitLab._][12] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/share-folder-gnome-boxes/ - -作者:[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/boxes -[2]: https://www.debugpoint.com/share-folder-virt-manager/ -[3]: https://www.debugpoint.com/share-folder-between-host-guest-virtualbox/ -[4]: https://www.spice-space.org/index.html -[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-sharing-in-settings.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-File-Sharing.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-share-folder-in-host.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Spice-client-folder-in-guest.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/error-while-accessing-the-spice-client-folder.jpg -[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/accessing-via-dav-protocol.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Share-folder-and-its-contents-between-guest-and-host-in-GNOME-Boxes-sample.jpg -[12]: https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/430 diff --git a/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md new file mode 100644 index 0000000000..18d933082e --- /dev/null +++ b/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md @@ -0,0 +1,119 @@ +[#]: subject: "Share Folder Between Guest and Host in GNOME Boxes" +[#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +在 GNOME Boxes 里的客户机和宿主机之间共享文件夹 +====== + +**使用下面的步骤在 GNOME Boxes 应用中的宿主机和客户机之间共享一个文件夹**。 + +GNOME Boxes 是一个创建和管理虚拟机的前端应用。它主要与 GNOME 桌面兼容。然而,你可以在其他桌面环境中使用它,如 KDE Plasma 和其他环境。 + +在后端,它使用 QEMU、KVM 和 libvirt 技术,并提供一个易于使用的用户界面来管理多个虚拟机。 + +如果你想了解更多,你也可以参考关于 GNOME Boxes 创建虚拟机的[这些指南][1]。 + +在之前的文章中,我们已经解释了如何在 [virt-manager][2] 和 [VirtualBox][3] 中共享文件夹。而下面的步骤也解释了 GNOME Boxes 的情况。 + +### 如何在 GNOME Boxes 中共享文件夹和文件 + +GNOME Boxes 主要支持 [SPICE 协议][4]来实现远程访问、共享和许多虚拟化功能。SPICE 是虚拟化领域中最古老的开源包之一。 + +#### 1. 初始设置 + +- 首先,确保在**客户机系统中安装以下 spice 软件包**。 + +``` +sudo apt install spice-vdagent spice-webdavd #for Ubuntu-based distros +sudo dnf install spice-vdagent spice-webdavd #Fedora, RHEL, etc +pacman -S --needed spice spice-gtk spice-protocol spice-vdagent #Arch Linux (optional) +``` + +- 在你安装完上述内容后,**重启**宿主机和客户机系统。 +- 在宿主机系统中(对于 GNOME 桌面),打开设置,进入共享面板。 +- 使用顶部的切换按钮**启用共享**。 +- 然后,点击文件共享和**启用文件共享**。请确保启用网络。密码是可选的。如果你想为你的共享文件夹启用基于密码的认证,请启用它。 + +![在设置中启用共享][5] + +![启用文件共享][6] + +- 关闭设置窗口。 +- 打开 GNOME Boxes。右键单击虚拟机并选择**偏好**。 +- 在偏好设置窗口中点击**设备和共享**,并点击共享文件夹下的** [+] 按钮**。 +- 在**本地文件夹下**:从你的宿主机中选择你想在客户机中访问的文件夹。 +- **名称**:给予你想要的任何名称。这个名称将在客人的文件管理器中可见。 +- 点击保存。 + +![在宿主机中添加一个共享文件夹][7] + +#### 2. 为客户机设置 + +- 启动你的客户机虚拟机。 +- 在客户机虚拟机内,打开文件管理器。如果你使用的是 GNOME 桌面,打开 Nautilus(即 Files)。 +- 点击**其他位置**。你应该在“网络”下看到 “**Spice 客户端文件夹**”。 +- 双击这个,你应该看到你的主机系统的文件夹内容。 +- 有时,上述文件夹需要一些时间才能出现。如果它不可见,请等待 1 或 2 分钟。通过 `F5` 刷新文件管理器窗口。 + +![客户机中的 Spice 客户文件夹][8] + +#### 3. 一些故障排除 + +- 此外,如果你看到以下错误,那么你需要手动访问该路径。 + +``` +Unable to access location - HTTP Error: Could not connect: Connection refused +``` + +![访问 spice 客户端文件夹时出错][9] + +- 在文件管理器中按下 `CTRL+L`,调出地址栏。在地址栏中,输入以下内容: + +``` +dav://localhost:9843 +``` + +- 然后点击回车。然后你应该看到文件夹的内容。SPICE 服务器使用 `dav` 协议,它在 9843 端口连接客户机和宿主机。 + +![通过 dav 协议访问][10] + +就这样了。现在你可以在 GNOME Boxes 中享受客户机和宿主机之间的文件共享。 + +下面是一个客户机和宿主机访问同一个文件夹的截图。 + +![在 GNOME Boxes 中在客户机和宿主机之间共享文件夹及其内容(示例)][11] + +如果你遇到任何错误,请在下方发表评论。 + +[_这篇文章中使用了一些来自 GitLab 的参考资料。_][12] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/share-folder-gnome-boxes/ + +作者:[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/tag/boxes +[2]: https://www.debugpoint.com/share-folder-virt-manager/ +[3]: https://www.debugpoint.com/share-folder-between-host-guest-virtualbox/ +[4]: https://www.spice-space.org/index.html +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-sharing-in-settings.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-File-Sharing.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-share-folder-in-host.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Spice-client-folder-in-guest.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/error-while-accessing-the-spice-client-folder.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/accessing-via-dav-protocol.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Share-folder-and-its-contents-between-guest-and-host-in-GNOME-Boxes-sample.jpg +[12]: https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/430 From 8ed1f318513f82df683435f83b24df253759b4bc Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 3 Feb 2023 08:46:35 +0800 Subject: [PATCH 303/357] translating --- ...221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 3f0d190572..585f2c96dc 100644 --- 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 @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/switch-debian-stable-testing/" [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 4fa423fec261aa8bdffef6d53723422607dfd846 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 3 Feb 2023 11:24:51 +0800 Subject: [PATCH 304/357] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @chai001125 https://linux.cn/article-15504-1.html 恭喜!升级为⭐️⭐️⭐️⭐️贡献者! --- ...alyse Sentiments Using Machine Learning.md | 61 ++++++++++--------- 1 file changed, 32 insertions(+), 29 deletions(-) rename {translated/tech => published}/20220906 How to Analyse Sentiments Using Machine Learning.md (80%) diff --git a/translated/tech/20220906 How to Analyse Sentiments Using Machine Learning.md b/published/20220906 How to Analyse Sentiments Using Machine Learning.md similarity index 80% rename from translated/tech/20220906 How to Analyse Sentiments Using Machine Learning.md rename to published/20220906 How to Analyse Sentiments Using Machine Learning.md index a9955e0fbf..b119fec784 100644 --- a/translated/tech/20220906 How to Analyse Sentiments Using Machine Learning.md +++ b/published/20220906 How to Analyse Sentiments Using Machine Learning.md @@ -3,28 +3,30 @@ [#]: author: "Jishnu Saurav Mittapalli https://www.opensourceforu.com/author/jishnu-saurav-mittapalli/" [#]: collector: "lkxed" [#]: translator: "chai001125" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15504-1.html" 如何使用机器学习来分析情感 ====== ->本文将帮助你理解什么是 情感分析sentiment analysis,并且你能了解如何使用机器学习进行情感分析。我们使用了不同的机器学习算法进行情感分析,然后将各个算法的准确率结果进行比较,以确定哪一种算法最适合这个问题。 +![][0] -情感分析是自然语言处理(NLP)中的一个重要的内容。情绪指的是我们对某一事件、物品、情况或事物产生的感觉。情感分析是一个从文本中自动提取人类情感的研究领域。它在上世纪 90 年代初才慢慢地开始发展起来。 +本文将帮助你理解 情感分析sentiment analysis 的概念,并且学习如何使用机器学习进行情感分析。我们使用了不同的机器学习算法进行情感分析,然后将各个算法的准确率结果进行比较,以确定哪一种算法最适合这个问题。 -本文将让你明白如何将机器学习 (ML) 用于情感分析,并比较不同机器学习算法的结果。本文的目标不在于研究提高算法性能的方法。 +情感分析是自然语言处理(NLP)中的一个重要的内容。情感指的是我们对某一事件、物品、情况或事物产生的感觉。情感分析是一个从文本中自动提取人类情感的研究领域。它在上世纪 90 年代初才慢慢地开始发展起来。 + +本文将让你明白如何将机器学习(ML)用于情感分析,并比较不同机器学习算法的结果。本文的目标不在于研究如何提高算法性能。 如今,我们生活在一个快节奏的社会中,所有的商品都能在网上购买到,每个人都可以在网上发表自己的评论。而一些商品的负面网络评论可能会损害公司的声誉,从而影响公司的销售额。因此对公司来说,通过商品评论来了解客户真正想要什么变得非常重要。但是这些评论数据太多了,无法一个个地手动查看所有的评论。这就是情绪分析诞生的缘由。 现在,就让我们看看如何用机器学习开发一个模型,来进行基本的情绪分析吧。 -### 现在就开始吧! +### 现在就开始吧! #### 获取数据 -第一步是选择一个数据集。你可以从任何公开的评论中进行选择,例如推文或电影评论。数据集中包含两列:标签和实际的文本段。 +第一步是选择一个数据集。你可以从任何公开的评论中进行选择,例如推文或电影评论。数据集中至少要包含两列:标签和实际的文本段。 下图显示了我们选取的部分数据集。 @@ -40,9 +42,9 @@ import re import string ``` -我们使用 NumPy 和 Pandas 库来处理数据。至于其他库,我们会在使用到它们时再说明。 +正如你在上面代码看到,我们导入了 `NumPy` 和 `Pandas` 库来处理数据。至于其他库,我们会在使用到它们时再说明。 -数据集已准备就绪,并且已导入所需的库。接着,我们需要用 Pandas 库将数据集读入到我们的项目中去。我们使用以下的代码将数据集读入 Pandas 数据帧(DataFrame)类型: +数据集已准备就绪,并且已导入所需的库。接着,我们需要用 `Pandas` 库将数据集读入到我们的项目中去。我们使用以下的代码将数据集读入 Pandas 数据帧DataFrame 类型: ``` sentiment_dataframe = pd.read_csv(“/content/drive/MyDrive/Data/sentiments - sentiments.tsv”,sep = ‘\t’) @@ -60,11 +62,11 @@ sentiment_dataframe.columns = [“label”,”body_text”] ![Figure 2: Data frame with basic modifications][2] -#### 准备好特征值、目标值 +#### 准备好特征值、目标值 下一步是数据的预处理。这是非常重要的一步,因为机器学习算法只能理解/处理数值形数据,而不能理解文本,所以此时要进行特征抽取,将字符串/文本转换成数值化的数据。此外,还需要删除冗余和无用的数据,因为这些数据可能会污染我们的训练模型。我们在这一步中去除了噪声数据、缺失值数据和不一致的数据。 -对于情感分析,我们在数据帧中添加特征文本的长度和标点符号计数。我们还要进行词干提取,即将所有相似词(如“give”、“giving”等)转换为单一形式。完成后,我们将数据集分为两部分:特征值 X 和 目标值 Y。 +对于情感分析,我们在数据帧中添加特征文本的长度和标点符号计数。我们还要进行词干提取,即将所有相似词(如 “give”、“giving” 等)转换为单一形式。完成后,我们将数据集分为两部分:特征值 X 和 目标值 Y。 上述内容是使用以下代码完成的。下图显示了执行这些步骤后的数据帧。 @@ -87,29 +89,29 @@ X = sentiment_dataframe[‘body_text’] y = sentiment_dataframe[‘label’] ``` -#### 特征工程:文本特征处理 +#### 特征工程:文本特征处理 -我们接下来进行文本特征抽取,对文本特征进行数值化。为此,我们使用计数向量器(CountVectorizer),它返回词频矩阵。 +我们接下来进行文本特征抽取,对文本特征进行数值化。为此,我们使用计数向量器CountVectorizer,它返回词频矩阵。 在此之后,计算数据帧 X 中的文本长度和标点符号计数等特征。X 的示例如下图所示。 ![Figure 4: Sample of final features][4] -#### 使用的机器学习算法 +#### 使用的机器学习算法 现在数据已经可以训练了。下一步是确定使用哪些算法来训练模型。如前所述,我们将尝试多种机器学习算法,并确定最适合情感分析的算法。由于我们打算对文本进行二元分类,因此我们使用以下算法: -* K-近邻算法(KNN) +* K-近邻算法(KNN) * 逻辑回归算法 -* 支持向量机(SVMs) +* 支持向量机(SVMs) * 随机梯度下降(SGD) * 朴素贝叶斯算法 * 决策树算法 * 随机森林算法 -#### 划分数据集 +#### 划分数据集 -首先,将数据集划分为训练集和测试集。使用 sklearn 库,详见以下代码: +首先,将数据集划分为训练集和测试集。使用 `sklearn` 库,详见以下代码: ``` from sklearn.model_selection import train_test_split @@ -118,9 +120,9 @@ X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.20, rando 我们使用 20% 的数据进行测试,80% 的数据用于训练。划分数据的意义在于对一组新数据(即测试集)评估我们训练的模型是否有效。 -##### K-近邻算法 +##### K-近邻算法 -现在,让我们开始训练第一个模型。首先,我们使用 KNN 算法。先训练模型,然后再评估模型的准确率(具体的代码都可以使用 Python 的 sklearn 库来完成)。详见以下代码,KNN 训练模型的准确率大约为 50%。 +现在,让我们开始训练第一个模型。首先,我们使用 KNN 算法。先训练模型,然后再评估模型的准确率(具体的代码都可以使用 Python 的 `sklearn` 库来完成)。详见以下代码,KNN 训练模型的准确率大约为 50%。 ``` from sklearn.neighbors import KNeighborsClassifier @@ -131,7 +133,7 @@ model.score (X_test,y_test) 0.5056689342403629 ``` -##### 逻辑回归算法 +##### 逻辑回归算法 逻辑回归模型的代码十分类似——首先从库中导入函数,拟合模型,然后对模型进行评估。下面的代码使用逻辑回归算法,准确率大约为 66%。 @@ -144,7 +146,7 @@ model.score (X_test,y_test) 0.6621315192743764 ``` -##### 支持向量机算法 +##### 支持向量机算法 以下代码使用 SVM,准确率大约为 67%。 @@ -157,7 +159,7 @@ model.score(X_test,y_test) 0.6780045351473923 ``` -##### 随机森林算法 +##### 随机森林算法 以下的代码使用了随机森林算法,随机森林训练模型的准确率大约为 69%。 @@ -170,7 +172,7 @@ model.score(X_test,y_test) 0.6938775510204082 ``` -##### 决策树算法 +##### 决策树算法 接下来,我们使用决策树算法,其准确率约为 61%。 @@ -183,7 +185,7 @@ model.score(X_test,y_test) 0.6190476190476191 ``` -##### 随机梯度下降算法 +##### 随机梯度下降算法 以下的代码使用随机梯度下降算法,其准确率大约为 49%。 @@ -196,7 +198,7 @@ model.score(X_test,y_test) 0.49206349206349204 ``` -##### 朴素贝叶斯算法 +##### 朴素贝叶斯算法 以下的代码使用朴素贝叶斯算法,朴素贝叶斯训练模型的准确率大约为 60%。 @@ -209,7 +211,7 @@ model.score(X_test,y_test) 0.6009070294784581 ``` -#### 情感分析的最佳算法 +#### 情感分析的最佳算法 接下来,我们绘制所有算法的准确率图。如下图所示。 @@ -228,7 +230,7 @@ via: https://www.opensourceforu.com/2022/09/how-to-analyse-sentiments-using-mach 作者:[Jishnu Saurav Mittapalli][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/) 荣誉推出 @@ -240,3 +242,4 @@ via: https://www.opensourceforu.com/2022/09/how-to-analyse-sentiments-using-mach [4]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-4-Sample-of-final-features.jpg [5]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-5-Accuracy-performance-of-the-different-algorithms.jpg [6]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-6-Sample-predictions-made.jpg +[0]: hhttps://img.linux.net.cn/data/attachment/album/202302/03/112201q909lsqqs9e0jjzc.jpg \ No newline at end of file From 90ec92b374ef1cbe7cf4e1cfba60d411d71dd1d1 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 3 Feb 2023 13:35:35 +0800 Subject: [PATCH 305/357] RP @geekpi https://linux.cn/article-15505-1.html --- ... Code Editor With a Brand New GUI Framework.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) rename {translated/tech => published}/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md (74%) diff --git a/translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md b/published/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md similarity index 74% rename from translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md rename to published/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md index 6f70b16741..6e9e344c51 100644 --- a/translated/tech/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md +++ b/published/20230116.0 ⭐️ Meet ecode An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework.md @@ -3,14 +3,14 @@ [#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15505-1.html" 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器 ====== -一个新的令人兴奋的代码编辑器正在开发中,它建立在自己的 GUI 框架上。 +> 一个正在开发中令人兴奋的新代码编辑器,基于其自己的 GUI 框架。 ![Meet ecode: An Upcoming Modern, Lightweight Code Editor With a Brand New GUI Framework][1] @@ -22,11 +22,11 @@ 现在,我偶然发现了另一个编辑器,“**ecode**”。这个项目的作者提到,它从 [Lite XL][2] 等编辑器中获得了灵感。 -**有什么不同?** +有什么不同? -- 它建立在其**新的 GUI 框架 [eepp][3]** 之上,该框架专注于提供一个丰富的用户界面。 -- 虽然它的目标是使用最少的资源,但 ecode 的理念针对的是**现代硬件**的系统,有 SSD,高核心数和不错的 GPU 加速。 -- 该代码编辑器可以被编译为在任何现代浏览器中运行。然而,目前的重点并不在网络版的开发上。 +- 它建立在其新的 GUI 框架 [eepp][3] 之上,该框架专注于提供一个丰富的用户界面。 +- 虽然它的目标是使用最少的资源,但 ecode 的理念针对的是有 SSD、高核心数和良好的 GPU 加速的**现代硬件**系统。 +- 该代码编辑器可以被编译为在任何现代浏览器中运行。然而,目前的重点并不在网页版的开发上。 ![ecode official screenshot][4] @@ -42,17 +42,17 @@ 当然,它有计划随着开发的进展增加更多的东西。就目前而言,这里有一些关键的亮点: -- **可移植** -- **语法高亮** -- **终端支持** -- **自动补全** -- **可定制的颜色方案** -- **可定制的键盘绑定**。 -- **LSP 支持** -- **Minimap** -- **插件管理器** -- **深色和浅色模式** -- **各种类型的分割视图以适应不同的工作流程**。 +- 可移植 +- 语法高亮 +- 终端支持 +- 自动补全 +- 可定制的颜色方案 +- 可定制的键盘绑定 +- LSP 支持 +- 缩略视图Minimap +- 插件管理器 +- 深色和浅色模式 +- 各种类型的分割视图以适应不同的工作流程 我在 Linux Mint 上简单地试了一下这个编辑器,它看起来确实是正在开发中。 @@ -62,7 +62,7 @@ 你可以从一组预定义的主题中快速定制编辑器的主题。 -对于编写大量代码(冗长的片段)并需要快速浏览的用户来说,minimap 将非常方便。 +对于编写大量代码(冗长的片段)并需要快速浏览的用户来说,缩略视图将非常方便。 最初,当我在一个空白区域右键点击时,该应用崩溃了。但是,随着下一个版本 **0.4.1**(在发表这篇文章的时候)的更新,它很快就被修复了。所以,我想说**开发进展似乎很有希望**。 @@ -70,13 +70,13 @@ ### 下载 ecode -你可以尝试一下[在线 demo][13] 来快速测试一些选项。 +你可以尝试一下 [在线演示][13] 来快速测试一些选项。 -一个 AppImage 文件可用于所有 Linux 发行版。用于 macOS 和 Windows 的软件包也是可用的。 +有一个可用于所有 Linux 发行版的 AppImage 软件包。也有用于 macOS 和 Windows 的软件包。 -你可以从它的 [GitHub 发布页][14]获得这些包,或者探索它的[源码][3]。 +你可以从它的 [GitHub 发布页][14] 获得这些包,或者探索它的 [源码][3]。 -[下载 ecode][14] +> **[下载 ecode][14]** 💬 有这么多有前途的新代码编辑器在开发中,你认为我们会对微软的 VS Code 有一个好的竞争吗? @@ -87,7 +87,7 @@ via: https://news.itsfoss.com/ecode-editor/ 作者:[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/) 荣誉推出 From c254625511a236510dd2af4307b54069c501794e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 3 Feb 2023 17:18:14 +0800 Subject: [PATCH 306/357] ATRP @wxy https://linux.cn/article-15506-1.html --- ...ry OS 7 is a Modest Upgrade With Useful Changes.md | 158 ++++++++++++++++++ ...ry OS 7 is a Modest Upgrade With Useful Changes.md | 157 ----------------- 2 files changed, 158 insertions(+), 157 deletions(-) create mode 100644 published/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md delete mode 100644 sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md diff --git a/published/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md b/published/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md new file mode 100644 index 0000000000..5efb867a87 --- /dev/null +++ b/published/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md @@ -0,0 +1,158 @@ +[#]: subject: "elementary OS 7 is a Modest Upgrade With Useful Changes" +[#]: via: "https://news.itsfoss.com/elementary-os-7-release/" +[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15506-1.html" + +elementary OS 7 发布 +====== + +> 在一年后,elementary OS 7 出现了,带来一些激动人心的微妙变化! + +![][0] + +elementary OS 6.1 是一个令人印象深刻的版本。终于,过去了一年,下一个主要的升级,elementary OS 7 “Horus” 来了。 + +这些变化可能不算大规模的翻新,正如以前 [报道][2],开发的重点更多的是在细化上。 + +### elementary OS 7:有什么新内容? + +主要的改进领域包括: + +- 应用中心AppCenter +- 应用程序和系统更新 +- 侧载/替代商店 +- 改进的初次安装体验 +- 应用程序的改进 + +#### 应用中心升级 + +![elementary os 7 appcenter][3] + +在每一次重大的升级中,应用中心AppCenter都得到了很大的重视。虽然它已经提供了完美的体验,但它变得越来越好了,更快的性能、更好的调整以适应不同屏幕分辨率或窗口大小。 + +应用的描述是这次的亮点。你可以一次看到应用程序的更多屏幕截图,让你对应用程序有更好的了解。 + +![elementary os 7 appcenter descriptions][4] + +这些图片还包括了图片说明,应该有助于视力有关的残疾用户访问应用程序页面。 + +从大的方面来说,屏幕截图融入到以应用程序的默认重点颜色为特色的背景中,看起来很不错。 + +此外,应用程序的描述也会给你提供更多关于该应用程序如何积极维护的信息,以及最近的发布说明。 + +#### 应用程序更新 + +![elementaryos 7 appcenter app updates][5] + +你现在可以选择切换是否要自动更新应用程序。 + +Flatpak 的首选项保持不变;你可以选择让它们自动更新,而不是手动检查。 + +此外,系统更新一旦下载并准备好,就会离线安装,可以给你一个顺滑的体验。 + +#### 第三方应用商店 + +elementaryOS 7 应用中心上的应用程序放在其独立的 Flatpak 软件仓库上。 + +然而,你仍然可以添加 Flathub 作为软件仓库,以获得更多的 Flatpak 应用程序。 + +为了告知你这一区别,应用中心会提到一些警告,如 “非策划的Non-Curated”,这样你就知道它是来自另一个应用商店。 + +![elementaryos 7 appcenter non-curated app warning][6] + +当你第一次尝试从第三方商店安装一个应用程序时,这样的弹出警告只会出现一次。 + +#### 支持网页应用程序 + +![Elementary os 7 web apps][7] + +该版本包括 GNOME Web 43,它支持创建网页应用程序,可在应用程序菜单中找到。 + +你可以在 GNOME Web 中管理所安装的网页应用程序。 + +#### 重新设计的图标 + +![elementaryos new icons][8] + +elementaryOS 已经被视作最漂亮的 Linux 发行版之一。 + +为了提升体验,几乎每一个应用程序的图标都被重新设计,以提供一个更现代和更有表现力的用户体验。 + +#### 安装和初次体验 + +![elementary os 7 primary mouse button prompt installation window][9] + +安装体验随着升级而变得更加直接了当。 + +换句话说,你在安装程序中的看到屏幕数量将减少,但仍然可以得到所有的基本信息,包括警告和系统要求。 + +安装程序现在可以提示你选择左键或右键设置为鼠标的主按钮。 + +![elementaryos automatic updates toggle onboarding screen][10] + +从系统主题偏好到自动更新,你可以在安装后直接配置所有必要的东西。 + +#### 新的音乐多媒体应用程序 + +![elementartyos music 7 app][11] + +为了提供更好的多媒体体验,该音乐应用程序已经从头开始完全重写,在各种使用情况下都能很好地工作。 + +你可以设置本地音乐位置、预览音频文件、获得正确的元数据信息,以及更多。 + +#### 其他变化 + +你会发现其他几个细微的改进。其中一些包括: + +- 邮件应用现在采用了更现代、更扁平的设计,以提高响应速度。 +- 邮件应用程序现在支持微软 365 账户。 +- 在任务应用中对新创建的任务列表的离线支持。 +- 在线账户设置包括对 CalDAV 账户的离线支持。 +- 切换选择文件夹,只需点击一下。 +- 重新设计的打印机设置。 +- 电源配置文件管理设置。 + +你可以参考 [官方公告][12] 了解更多细节。 + +### 下载 elementary OS 7 + +> 📋 当我尝试最新的 RC 构建版时,我的英伟达显卡驱动的系统启动时出现了一个反色的(看起来很奇怪)的彩色屏幕。这对最终版本来说可能不是一个问题。 + +你可以从 [官方网站][13] 上获取最新的 ISO。我希望他们能够为英伟达系统增加一个单独的 ISO,但对于其他系统,它应该可以正常工作。 + +> **[elementary OS 7][13]** + +另外,你必须得重新安装,而不是从 elementary OS 6 升级。在你继续安装之前,请查看其 [官方 FAQ][14]。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/elementary-os-7-release/ + +作者:[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/2023/01/elementary-os-7-release-ft.png +[2]: https://news.itsfoss.com/elementary-os-7-dev-updates/ +[3]: https://news.itsfoss.com/content/images/2023/01/appcenter-responsive.jpg +[4]: https://news.itsfoss.com/content/images/2023/01/appcenter-appinfo.png +[5]: https://news.itsfoss.com/content/images/2023/01/appcenter-updates.png +[6]: https://news.itsfoss.com/content/images/2023/01/appcenter-sideload.png +[7]: https://news.itsfoss.com/content/images/2023/01/web-apps.png +[8]: https://news.itsfoss.com/content/images/2023/01/icons-apps.png +[9]: https://news.itsfoss.com/content/images/2023/01/initialsetup-lefthand-elementaryos.png +[10]: https://news.itsfoss.com/content/images/2023/01/onboarding-updates.png +[11]: https://news.itsfoss.com/content/images/2023/01/elementary-music.jpg +[12]: https://blog.elementary.io/os-7-available-now/ +[13]: https://elementary.io +[14]: https://github.com/elementary/os/wiki/OS-7-Horus-FAQ +[0]: https://img.linux.net.cn/data/attachment/album/202302/03/171644noopjnzno5z4en2p.jpg \ No newline at end of file diff --git a/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md b/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md deleted file mode 100644 index 9d412d392e..0000000000 --- a/sources/news/20230131.0 ⭐️⭐️ elementary OS 7 is a Modest Upgrade With Useful Changes.md +++ /dev/null @@ -1,157 +0,0 @@ -[#]: subject: "elementary OS 7 is a Modest Upgrade With Useful Changes" -[#]: via: "https://news.itsfoss.com/elementary-os-7-release/" -[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -elementary OS 7 is a Modest Upgrade With Useful Changes -====== - -elementary OS 7 upgrade makes an appearance after almost a year. Some exciting and subtle changes! - -![elementary OS 7 is a Modest Upgrade With Useful Changes][1] - -elementary OS 6.1 was an impressive release. It has been more than a year, and finally, the next major upgrade, **elementary OS 7 'Horus'**, landed. - -The changes may not be considered a massive overhaul, but the development focus was more on **refinements**, as previously [reported][2]. - -### elementary OS 7: What's New? - -The main areas of improvement include: - -- **AppCenter** -- **App & System Updates** -- **Sideloading or Alternate Stores** -- **Improved onboarding and installation experience** -- **App improvements** - -#### AppCenter Upgrades - -![elementary os 7 appcenter][3] - -With every major upgrade, much emphasis is put on AppCenter. While it already offers a polished experience, it gets better with faster performance and better adjustment to different screen resolutions or window sizes. - -The app descriptions are the highlight this time. You get to see more screenshots of an app at once, giving you a better view of applications. - -![elementary os 7 appcenter descriptions][4] - -The images also include captions that should help make app pages accessible to users with vision-related disabilities. - -Overall, the screenshots blend in with a background featuring the default accent color of the app, making it look good. - -Furthermore, the app descriptions will also give you more information on how actively the app is maintained, along with the recent release notes. - -#### App Updates - -![elementaryos 7 appcenter app updates][5] - -You now get an option to toggle if you want automatic app updates. - -The preferences for Flatpak remain the same; instead of manually checking for it, you can opt to have them update automatically. - -In addition, system updates will be installed offline once downloaded and prepared to give you a seamless experience. - -#### Third-Party App Store - -elementaryOS 7 relies on its separate Flatpak repository for the applications on AppCenter. - -However, you can still add Flathub as a repository and get more Flatpak apps. - -To inform you of the difference, the AppCenter will mention some warning like "**Non-Curated**", so you know it is from an alternate store. - -![elementaryos 7 appcenter non-curated app warning][6] - -The pop-up warning will only appear once when you try to install an app from a third-party store for the first time. - -#### Web App Support - -![elementary os 7 web apps][7] - -The release includes GNOME Web 43, which supports creating web apps that can be found in the applications menu. - -You can manage the web apps installed from within GNOME Web. - -#### Redesigned Icons - -![elementaryos new icons][8] - -elementaryOS is already known as one of the best beautiful Linux distributions. - -To elevate the experience, almost every app icon has been redesigned to provide a more modern and expressive user experience. - -#### Installation & Onboarding Experience - -![elementary os 7 primary mouse button prompt installation window][9] - -The installation experience is getting more straightforward with upgrades. - -In other words, you will have less number of screens in the installer but still, get all the essential information that includes warnings and system requirements. - -The installer now prompts you to choose between left-click or right-click as the primary mouse button. - -![elementaryos automatic updates toggle onboarding screen][10] - -From system theme preferences to automatic updates, you can configure all the essential things right after installation. - -#### New Music 7 Multimedia App - -![elementartyos music 7 app][11] - -To provide a better multimedia experience, the Music app has been completely rewritten from scratch, which works well for various use cases. - -You can curate local music locations, preview audio files, get correct metadata info, and more. - -#### Other Changes - -You will find several other subtle refinements. Some of those include: - -- **The mail app now features a more modern and flatter design for improved responsiveness** -- **The mail app now supports Microsoft 365 accounts** -- **Offline support for newly created task lists on the Tasks app** -- **Online Accounts settings include offline support for CalDAV accounts** -- **Toggle to choose folders with a single click** -- **Redesigned printer settings** -- **Power profile management settings** - -You can refer to the [official announcement][12] for more details. - -### Download elementary OS 7 - -> 📋 While I tried the latest RC build to test things out, my NVIDIA graphics-powered system booted up with an inverted (weird-looking) colored screen. This may not be an issue for the final release. - -You can grab the latest ISO from the [official website][13]. I wish they would add a separate ISO for NVIDIA systems, but for the rest, it should work fine. - -[elementary OS 7][13] - -Also, you will have to go for a re-install instead of upgrading from elementary OS 6. Check out its [official FAQ][14] before you proceed to install. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/elementary-os-7-release/ - -作者:[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/2023/01/elementary-os-7-release-ft.png -[2]: https://news.itsfoss.com/elementary-os-7-dev-updates/ -[3]: https://news.itsfoss.com/content/images/2023/01/appcenter-responsive.jpg -[4]: https://news.itsfoss.com/content/images/2023/01/appcenter-appinfo.png -[5]: https://news.itsfoss.com/content/images/2023/01/appcenter-updates.png -[6]: https://news.itsfoss.com/content/images/2023/01/appcenter-sideload.png -[7]: https://news.itsfoss.com/content/images/2023/01/web-apps.png -[8]: https://news.itsfoss.com/content/images/2023/01/icons-apps.png -[9]: https://news.itsfoss.com/content/images/2023/01/initialsetup-lefthand-elementaryos.png -[10]: https://news.itsfoss.com/content/images/2023/01/onboarding-updates.png -[11]: https://news.itsfoss.com/content/images/2023/01/elementary-music.jpg -[12]: https://blog.elementary.io/os-7-available-now/ -[13]: https://elementary.io -[14]: https://github.com/elementary/os/wiki/OS-7-Horus-FAQ From 0ddbfb54319904e168c3de59691e7cd267d0bbc7 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sat, 4 Feb 2023 10:45:53 +0800 Subject: [PATCH 307/357] rebase --- ...blishing- Platinum open access journals.md | 49 ++++++++++--------- ...alks about Vanilla OS and Other Future Projects.md | 1 - 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md index 6ccfafb514..da6d702522 100644 --- a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md +++ b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md @@ -7,48 +7,51 @@ [#]: publisher: " " [#]: url: " " -When open source meets academic publishing: Platinum open access journals +当开源遇到学术出版:白金开放获取期刊 ====== -Academics can now publish free, read free, and still stay on track for professional success. + +学者现在可以免费发表(文章),免费阅读(文章),与此同时仍然能够在专业成就的道路上持续进步。 ![Stack of books for reading][1] -Image by: Opensource.com +图自:Opensource.com -Academics routinely give away their work to companies for free—and then they buy it back! Can you imagine a farmer giving away free food and then paying to get it back for dinner? Probably not. Yet academics like me have been trapped for decades in a scheme where we give free work in exchange for job security and then pay millions of dollars a year to read our own writing. +学者们经常将他们的作品免费提供给公司,然后却要花钱购买它!你能想象农民在免费送出他们的食物之后再重新花钱买回来做晚餐吗?可能不能吧。像我这样的学者陷入这样的阴谋中几十年了,我们以工作安全为交换免费提供我们的作品,然后却要每年花几百万美元来阅读我们自己的文章。 -Fortunately, this is changing. The results from a [study][2] I just finished show that it is possible for academics to get job security without paying for it. My study found hundreds of journals that are *platinum open access* (OA)—that is, they require neither the author nor the readers to pay for peer-reviewed work—yet still carry the prestige and readership to help academics succeed in their careers. +幸运的是,情况正在发生改变。我刚刚完成的一项[研究][2]的结果显示:对于学者来说,获得工作安全保障的同时而不对此付出代价是可能的。我的研究发现数百种期刊是 *白金开放获取* (platinum open access,译注:源自中文网络)的——也就是说,它们不需要作者或者读者就同行评议的文章付费,却仍然享有声望和读者群以帮助学者在他们的职业生涯中取得成功。 -This trend is exploding: The [Directory of Open Access Journals][3] lists over 17,300 journals that offer a means of OA at some level, and over 12,250 have no article-processing charges (APCs). I used a handy open source [Python script][4] to compare this list to a list of journals ranked by the frequency with which their published papers are cited in other articles (The Journal Impact Factor List). It is clear that the last few years have seen a growing trend towards both OA in general and platinum OA specifically. These trends have the potential to accelerate science while helping prevent academic servitude. +这一趋势正在扩张:[开放获取期刊目录][3]罗列了超过17300种期刊,这些期刊均提供了某种程度上的开放获取(OA)方式。该目录还提供了超过12250种无须文章处理费(APC)的期刊。我使用一段简易的开源[Python 脚本][4]来将该列表与另一按照期刊发表的文章被其他文章引用的频次排名的期刊列表(期刊影响因子列表)进行比较。很明显,最近几年来,总体的开放获取(OA)期刊与白金开放获取(OA)期刊均呈上升趋势。这一趋势可能有助于在避免学术奴役的同时加速科学发展。 -### The academic's dilemma +### 学者的窘境 -Academics are generally pretty intelligent, so why have they engaged in this disadvantageous system for so long? Simply put, academics have been caught in a trap: In order to keep their jobs and get tenure, they need to publish in journals with a high impact factor. An impact factor is a metric based on the mean number of citations to articles published in the last two years in a given journal, as indexed by the proprietary Web of Science. Impact factors are a prestige metric for academics. +学者们通常是相当聪慧的,那么他们为什么如此长时间地投身于这种不利体系中呢?简而言之,学者陷于这样一个陷阱中:为了维系他们的工作和获得终身教职,他们需要在高影响因子(impact factor)的期刊上发表文章。影响因子是一种基于最近两年间在给定期刊上发表的文章的平均引用数量的衡量指标。影响因子由 Web of Science 索引。对学者而言,影响因子是一个有影响力的衡量指标。 -Historically, academic publishing has been dominated by a handful of major publishers that used subscription-based business models. In this model, academic authors write articles, peer-review articles, and often do the editing of these articles—all for free. The articles are published under copyright owned by the major publishing companies. Then either the same academics pay to read these articles on an individual basis (~US $35/article), or their university libraries pay to subscribe to all of the articles in a journal. These costs can be astronomical: often over US $1 million per year for all titles from a single publisher. +历史上,学术出版由一小部分主要出版商统治。他们采用基于订阅制的商业模式。在这样的商业模式中,学术作者撰写文章,评审同行的文章,也经常进行这些文章的编辑工作。这些工作都是没有任何报酬的。这些文章出版了,它们的版权则由那些主要的出版公司所有。即使是参与上述工作的学者也需要个人付费阅读这些文章(~每篇文章35美元),或者由他们所在学校的图书馆付费订阅期刊上的所有文章。(订阅)所花的费用是相当可观的:单一出版商的所有文章的订阅费用通常超过一百万每年。 -This system is senseless for many obvious reasons. Scientific progress is bogged down by restricting access to copyrighted scientific literature squirreled away behind paywalls. It is hard to do state-of-the-art research if you do not know what it is because you cannot read it. Scientists are divided into those who can afford access to the literature and those who cannot. Academics in the developing world often struggle to pay, but even well-endowed [Harvard University][5] has taken action to rein in its yearly journal expenses. +有很多显然的理由都说明这一体制是毫无意义的。限制对隐匿在付费专区后的受版权保护的科学文献的访问使得科学进程陷于停滞。如果你因为无法查看而不知道前沿科技是什么的话,你就无法进行相应的前沿技术研究。科学家分为能够负担访问这些文章的费用的人以及不能负担(这些费用的人)。在这个发展的世界中,学者一般都努力负担这些费用,不过即使是财力雄厚的[哈佛大学][5]也已经采取行动控制它的年度期刊费用。 -Costs to authors are similarly high. APC values range from a few hundred dollars to jaw-dropping thousands of dollars per article. APCs can be particularly damaging for some disciplines that are less well funded, such as the humanities and social sciences (as compared to physical and medical sciences or engineering). Substantial APCs also reinforce the wealth gap in academia, making professional success dependent on having income to invest in publishing. Is there another profession that asks workers to pay money to make products for others? +文章作者的花费也同样高昂。每篇文章的文章处理费从几百美元到骇人听闻的几千美元不等。文章处理费对一些资金不足的学科尤其有害,比如人文学科与社会学科(与物理学、医学和工程学相比而言)。大量的文章处理费也强化了学术界的贫富差距,使得(学者的)专业成就依赖于其所拥有的将收入投入文章发表的能力。还有其他的要求从业者付费为他人制造产品的职业吗? -### Open access to the rescue! +### 开放获取,解决之道! -This problem can be solved by the OA movement, which advocates for making all academic literature freely accessible to everyone. There is an unmistakable rise in OA publishing: It now makes up nearly a third of the peer-reviewed literature. +开放获取行动可以解决上述问题,开放获取行动倡导使所有的学术文献对任何人都能自由自由获取。开放获取的出版量有明显上升:它占了当前同行评议文章的将近三分之一。 -The benefits of OA are twofold. First, OA is a benefit to science overall, because it provides a frictionless means of reading the state of the art for making significant advancements in knowledge. Second, from an individual academic's point of view, OA provides the pragmatic advantage of enabling the broadest possible audience of their writing by making it freely and easily available on the internet. +开放获取的优势分两个方面。首先,开放获取有利于科学整体,因为它提供了一个不受阻碍地阅读前沿技术的方式。这些技术有助于进一步做出重要的认知进步。其次,就学者个人层面而言,通过让他们的作品在网络上轻而易举地免费获得,开放获取提供了最大化他们作品的潜在受众的实际优势。 -Funders have begun to demand OA for these reasons, particularly public funders of science. It is hard to argue that if the public funds research, they should have to pay a second time to read it. +基于上述原因,资助者已经开始要求开放获取,尤其是科学领域的公共资助者。如果一项研究的公共资助者还需要在阅读研究内容时二次付费,这种做法很难站得住脚。 -### Where is academic publishing now, and where it is going? +### 学术出版目前身处何方,以后又去向何处? -Conventional publishers still have control of this situation, largely because of the perception that they have a monopoly on journals with an impact factor. Despite the disadvantages of publishing the traditional way, many academics continue to publish in subscription-based journals or pay high APCs, knowing that publication in high impact factor journals is vital for demonstrating expertise for grants, tenure, and promotion. +传统出版商仍然掌控着目前的局面,主要是因为认为他们垄断了具有影响因子的期刊这一认知。很多学者无视传统出版方式的缺点,仍然持续在基于订阅制的期刊上发表文章或者支付高昂的文章处理费,因为他们知道在高影响因子的期刊上发表文章是至关重要的,它能够提供赖以获取补助、终身教职与职位晋升的专业性的证明。 -A few years ago, academics simply had no choice: They could either publish in a journal with an impact factor or publish OA. Now they can publish OA and still get the benefits of an impact factor in one of three ways: +多年以前,学术界完全没有选择的余地:要么在具有影响因子的期刊上发表,要么在通过开放获取方式发表。现在他们可以通过开放获取方式发表并仍然能够通过以下三种方式之一享受影响因子的益处: -* Green OA: Publish in a traditional way and then self-archive by uploading preprints or accepted versions of papers into an open repository or server. Some schools have an institutional repository for this purpose. For example, Western University has [Scholarship@Western][6], where any of their professors can share their work. Academics without their own institutional repos can use servers like [preprints.org][7], [arXiv][8], or  [OSF preprints][9]. I also use social media for academics, like [Academia][10] or [ResearchGate][11], for self-archiving. This can be complex to navigate because publishers have different rules, and it is somewhat time consuming. -* Gold OA: Publish in a growing list of journals with impact factors that make your paper freely available after publication but require an APC. This method is easy to navigate: Academics publish as usual and OA is built into the publishing process. The drawback is that funds going to APCs may be diverted from research activities. -* Platinum OA: Publish in platinum OA journals with an impact factor. No one pays either to read or to publish. The challenge here is finding a journal in your discipline that fits this criterion, but that continues to change. +* 绿色开放获取模式(Green OA):以传统方式出版后,再通过上传预印版或者接受版论文至开放仓库或者服务器完成自行归档。一些高校拥有用于上述目的的公共仓库。举例而言,韦仕敦大学(Western University,译注:来自中文网络)拥用[Scholarship@Western][6]公共仓库,该校的任何教师都可以在上面分享他们的作品。没有属于自己的公共仓库的学者可以使用诸如[preprints.org][7], [arXiv][8], or  [OSF preprints][9]等网络服务器。我也会将社交媒体用于学术,比如将[Academia][10] 或 [ResearchGate][11] 用于自行存档。由于不同的出版商设计了不同的规则,这是不方便查阅的,而且某种程度上是耗时耗时耗力的。 -There are tens of thousands of journals, but only a few hundred platinum OA journals with impact factors. This may make it hard for academics to find a good fit between what they study and a journal that matches their interests. See the Appendix in my [study][12] for the list, or use the Python script mentioned above to run updated numbers for yourself. The number of platinum OA journals is growing quickly, so if you do not find something now you may have some solid journals to choose from soon. Happy publishing! +* 金色开放获取模式(Gold OA):在日益壮大的具有影响因子的期刊列表上选一份期刊发表,它将使你的文章发表后可以自由获取但是需要文章处理费。这种方式易于查阅:开放获取设置内建于出版过程中,只需要像往常一样进行学术出版。这种方式的缺点是用于文章处理的费用可能会从研究活动中挪用。 + +* 白金开放获取模式(Platinum OA):在具有影响因子的白金开放获取期刊上发表。不需要为出版和阅读付费。挑战在于在您的学科中找到符合上述标准的期刊,不过情况正在持续变化。 + +目前已经有数以万计的期刊,但是具有影响因子的白金开放获取期刊仅仅几百种。对于学者,困难可能在于在他们的研究与符合他们预期的期刊之间找到一个合适的平衡。你可以在我研究的附录中找到本文提到的列表,或者使用上文提到的 Python 脚本自行更新列表数量。白金开放获取期刊的数量正在快速增长,因此如果你目前尚未找到合适的期刊,仍然可能在不久以后拥有一些可靠的期刊以供选择。祝你享受出版的乐趣! -------------------------------------------------------------------------------- @@ -56,7 +59,7 @@ via: https://opensource.com/article/22/5/platinum-open-access-academic-journals 作者:[Joshua Pearce][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/) 荣誉推出 diff --git a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md index 4d6b8b8243..afe4c238a8 100644 --- a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md +++ b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md @@ -153,4 +153,3 @@ via: https://news.itsfoss.com/interview-mirko-brombin/ [18]: https://news.itsfoss.com/content/images/2022/12/gnome-1.png [19]: https://news.itsfoss.com/content/images/2022/12/history-1.png [20]: https://news.itsfoss.com/content/images/2022/12/dialogue.png - From fcee46696f049a074561ecdd380ae75c92e08702 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 4 Feb 2023 11:39:50 +0800 Subject: [PATCH 308/357] ATRP @wxy https://linux.cn/article-15508-1.html --- ...g COSMIC Desktop is Gearing Up With Big Changes.md | 159 ++++++++++++++++++ ...g COSMIC Desktop is Gearing Up With Big Changes.md | 159 ------------------ 2 files changed, 159 insertions(+), 159 deletions(-) create mode 100644 published/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md delete mode 100644 sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md diff --git a/published/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md b/published/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md new file mode 100644 index 0000000000..6ce59c3d79 --- /dev/null +++ b/published/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md @@ -0,0 +1,159 @@ +[#]: subject: "System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes" +[#]: via: "https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15508-1.html" + +System76 即将推出的 COSMIC 桌面正在酝酿大变化 +====== + +> System76 介绍了其即将推出的由 Rust 开发的 COSMIC 桌面环境的开发细节。让我们来看看。 + +![System76 即将推出的 COSMIC 桌面正在酝酿大变化][1] + +Pop!_OS 的开发者们 [早在 2021 年][2] 就开始着手开发他们**基于 Rust 的桌面环境** COSMIC。 + +其目标是制作一些你已经熟悉的 Pop!_OS 的东西,但为你提供一个更快和更可扩展的桌面环境。 + +System76 也决定 [不发布 Pop!_OS 22.10][3],以专注于它的开发。 + +另外,我们的一个社区贡献者尝试了它的一个早期版本,它看起来很有希望: + +> **建议阅读** 📖 +> +> 我试用了 System76 新的基于 Rust 的 COSMIC 桌面!如果你还不知道,System76 的开发者一直在开发一个新的桌面环境(被称为 COSMIC),它是用 Rust 编写的:一种内存安全和超快的编程语言。从头开始创建一个桌面环境并不是一件简单的事。这涉及到创建从合成器、... +> +> ![][5] + +时间过去了一年,我们现在对这个桌面环境有了更多的期待。 + +让我们来探索一下 System76 为我们准备了什么。 + +### COSMIC 桌面的 3 项关键性的改进 + +> 📋 我们讨论的这些变化和草图在最终发布时可能会有变化。 + +在 [最近的一篇博文][6] 中,来自 System76 的 Alex 让我们看到了 COSMIC 桌面环境的发展状况。 + +让我带你看看其中值得注意的亮点: + +- 新的用户界面功能 +- 重新打造的设置应用 +- 新的壁纸功能 + +### 1、新的用户界面功能 + +![cosmic de ui new ui features][7] + +一个新的 [SegmentedButton][8] 部件被用来处理 COSMIC 桌面环境中各处的标签和分段式按钮。 + +它的目的是给人一种简洁、有条理、更集中的菜单体验,而分段式按钮则允许在选择时进行操作。 + +他们还举了一个例子来解释这对用户界面有什么帮助: + +> 当你定制你的桌面以使用水平工作区而不是垂直工作区时,例如,你的选择将导致桌面反映这种行为。 + +### 2、重新打造的设置应用 + +![cosmic de revamped settings menu][9] + +首先,“设置” 应用得到了彻底的整改,现在搜索结果显示为一个连续的、可滚动的、来自不同设置面板的结果列表。 + +> 🗒️ 在最新几轮的内部用户(UX)测试后,具体设置进行了调整。 + +然后是各种设置面板本身的改造。让我带你了解一下。 + +#### 显示调整 + +![cosmic de display settings][10] + +开发人员将图形模式和深浅色选项移至显示设置面板。在测试过程中,他们发现大多数用户到显示设置中去是希望找到这些设置。 + +![][11] + +此外,当使用多个显示器时,显示设置将根据显示器被组织到专门的选项卡中,并有改变或添加颜色配置文件的选项。 + +#### 电源选项 + +![][12] + +这个设置面板现在可以显示连接的无线设备的电池电量和所有连接设备的概览。 + +你还可以根据你的要求选择电源配置文件,并限制笔记本电脑的电池充电,以保护电池寿命。 + +#### 地区和语言选择 + +![cosmic de region language settings][13] + +该设置已被划分为不同的类别,以便于访问。它们被分为几个的类别,以选择日历、日期、温度和测量的区域格式。 + +#### 声音 + +声音设置中增加了一个新的选项,可以让你调整个别警报和应用程序的音量。 + +![cosmic de sound settings][14] + +此外,拥有两个或更多扬声器的用户现在可以使用新的扬声器测试工具来优化其设置。 + +### 3、新的壁纸功能 + +![][15] + +COSMIC 桌面环境可以让你设置一张壁纸,每个显示器一张,或者让你以幻灯片的形式循环播放多张壁纸。这是给**多显示器用户的一个好消息!** + +你还可以对每张壁纸在切换到下一张之前在屏幕上停留的时间进行精细控制。 + +### 🛠️ 其他改进措施 + +除了上面提到的面向用户的变化之外,还有一些内在的改进,包括: + +- 一个新的动态渲染器,[iced-dyrend][16] 已经由 System76 首席工程师实现,旨在动态调整你的 GPU 应该使用什么渲染程序。如果你有 GPU,它可以在 OpenGL 或 Vulkan 之间切换;如果你没有,则可以在 [Softbuffer][17] 之间切换。 +- 通过 [cosmic-text][18] 进行的文本渲染已经与 Softbuffer 0.2.0 配对,允许 [libcosmic][19] 部件库的软件渲染后端在任何操作系统上使用。 +- 开发者还测试了 XWayland 的实现,使 COSMIC 桌面环境能够运行使用 X11 窗口系统的应用程序。 +- COSMIC 桌面环境已经通过 [cosmic-time][20] 动画库加入了对动画的支持。它包含了默认应用程序所使用的动画,并使用 [Iced][21] 工具箱构建。 + +开发者还提到: + +> 虽然 COSMIC 桌面环境是为 Pop!_OS 开发的,但我们的目标是让它的元素也能在其他操作系统上使用。 + +这是很好的消息!如果你想知道 COSMIC 桌面环境是否是 Pop!_OS 独有的东西,也许你也可以在发行版上试试它,希望如此! 😊 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/ + +作者:[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/02/cosmic-desktop-changes.png +[2]: https://news.itsfoss.com/pop-os-cosmic-rust/ +[3]: https://news.itsfoss.com/no-pop-os-21-10/ +[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png +[5]: https://news.itsfoss.com/content/images/wordpress/2022/01/system76-rust-based-distro-ft.png +[6]: https://blog.system76.com/post/more-on-cosmic-de-to-kick-off-2023 +[7]: https://news.itsfoss.com/content/images/2023/02/COSMIC_ui.jpg +[8]: https://github.com/pop-os/libcosmic/pull/56 +[9]: https://news.itsfoss.com/content/images/2023/02/COSMIC_revamped_settings.jpg +[10]: https://news.itsfoss.com/content/images/2023/02/COSMIC_display.png +[11]: https://news.itsfoss.com/content/images/2023/02/multiple-displays.jpg +[12]: https://news.itsfoss.com/content/images/2023/02/COSMIC_power-1.png +[13]: https://news.itsfoss.com/content/images/2023/02/COSMIC_region_language.png +[14]: https://news.itsfoss.com/content/images/2023/02/COSMIC_sound.png +[15]: https://news.itsfoss.com/content/images/2023/02/COSMIC_wallpapers-1.png +[16]: https://github.com/pop-os/iced/commit/f1310e47617c3046a3cd98e20e373247f19327af +[17]: https://github.com/rust-windowing/softbuffer/ +[18]: https://github.com/pop-os/cosmic-text +[19]: https://github.com/pop-os/libcosmic +[20]: https://github.com/pop-os/cosmic-time +[21]: https://github.com/iced-rs/iced +[22]: https://mastodon.social/@itsfoss +[23]: https://twitter.com/itsfoss2 diff --git a/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md b/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md deleted file mode 100644 index 238d4e4596..0000000000 --- a/sources/news/20230201.0 ⭐️⭐️ System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes.md +++ /dev/null @@ -1,159 +0,0 @@ -[#]: subject: "System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes" -[#]: via: "https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes -====== - -System76 shared development details on its upcoming Rust-powered cosmic desktop environment. Let's take a look. - -![System76's Upcoming COSMIC Desktop is Gearing Up With Big Changes][1] - -The developers of Pop!_OS started working on their **Rust-based desktop environment** 'COSMIC' [back in 2021][2]. - -The goal was to make something familiar to what you already get with Pop!_OS but provide you with a faster and more extensible desktop environment. - -System76 also chose [not to release Pop!_OS 22.10][3] to focus on its development. - -Not to forget, one of our community contributors gave an early build a try, which looked pretty promising. - -**Suggested Read** 📖 - -I Tried System76’s New Rust-based COSMIC Desktop!If you didn’t know already, System76 developers have been working on a new Desktop Environment (dubbed COSMIC) written in Rust: a memory-safe and superfast programming language. Creating a desktop environment from scratch is no small feat. That involves creating everything from the compositor,…![][4]It's FOSS NewsCommunity![][5] - -Fast-forward a year, we now have a better look at what to expect with this desktop environment. - -Let's explore what System76 has in store for us. - -### COSMIC Desktop: 3 Key Enhancements - -> 📋 The changes and mockups discussed are subject to change at the time of final release. - -In a [recent blog post][6], Alex from System76 gave us a good look at the state of development of the COSMIC desktop environment. - -Let me take you through the notable highlights of it: - -- **New UI Features** -- **Settings Revamped** -- **New Wallpaper Feature** - -### 1. New UI Features - -![cosmic de ui new ui features][7] - -A new '[SegmentedButton][8]' widget is being used for handling tabs and segmented buttons around COSMIC DE. - -It is meant to give a clean, organized, and more focused menu experience, whereas the segmented buttons allow actions to be done when selected. - -They also give an example to explain how this helps with the UI: - -> So while you’re customizing your desktop to use horizontal workspaces instead of vertical, for example, your selection will cause the desktop to reflect this behavior. - -### 2. Revamped Settings - -![cosmic de revamped settings menu][9] - -Firstly, the Settings app has received a complete overhaul, with the search results now showing up as a continuous, scrollable list of results from various settings panels. - -> 🗒️ Specific settings were adjusted after the latest rounds of internal user (UX) testing. - -Then there are the remakes of the various settings panels themselves. Let me take you through them: - -#### Display Tweaks - -![cosmic de display settings][10] - -The developers have moved the graphics modes and night light options to the display settings panel. During testing, they found that most users go to the display settings expecting to find those settings. - -![][11] - -Additionally, when using multiple displays, the display settings will be organized into dedicated tabs according to the display, with options to change or add a color profile. - -#### Power Options - -![][12] - -This settings panel now shows the battery level of connected wireless devices and an overview of all the connected devices. - -You can also select power profiles based on your requirements and limit battery charging for your Laptop to preserve battery life. - -#### Region and Language Selection - -![cosmic de region language settings][13] - -This setting has been divided into different categories for ease of access. They have been divided into categories to select regional formats for calendar, date, temperature, and measurement. - -#### Sound - -A new option has been added to the Sound setting that lets you adjust the volume of individual alerts and applications. - -![cosmic de sound settings][14] - -Furthermore, users with two or more speakers can now use the new speaker testing tool to optimize their setup. - -### 3. New Wallpaper Feature - -![][15] - -COSMIC DE will let you set a single wallpaper, one per display, or let you cycle through multiple wallpapers as a slideshow. Finally, **a good news for multi-monitor users!** - -You will also have fine control over how long each wallpaper gets to stay on the screen before switching to the next one. - -### 🛠️ Other Improvements - -In addition to the user-facing changes mentioned above, several under-the-hood refinements include: - -- A new Dynamic renderer, '[iced-dyrend][16]' has been implemented by System76 Principal Engineer, meant to adjust what rendering program your GPU should use dynamically. It can switch between OpenGL or Vulkan if you have a GPU, or [Softbuffer][17] if you don't. -- Text rendering via '[cosmic-text][18]' has been paired with Softbuffer 0.2.0 to allow the software-rendering back-end for the '[libcosmic][19]' widget library to be used on any OS. -- The developers have also tested an XWayland implementation that would let COSMIC DE run applications that use the X11 windowing system. -- Animations support has been added to COSMIC DE via the '[cosmic-time][20]' animation crate. It contains animations used by the default applications and was built using the '[Iced][21]' toolkit. - -The developers also mentioned: - -> While COSMIC DE is being developed for Pop!_OS, our goal is to make its elements available for use on other operating systems, too. - -This is good to hear! If you were wondering if COSMIC DE was something Pop!_OS exclusive, maybe you will be able to use it on distros, too, hopefully! 😊 - -> 🐘 Keep an eye out on our [Mastodon][22] and [Twitter][23] feeds for more news updates! - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/system76-pop-os-cosmic-de-changes/ - -作者:[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/02/cosmic-desktop-changes.png -[2]: https://news.itsfoss.com/pop-os-cosmic-rust/ -[3]: https://news.itsfoss.com/no-pop-os-21-10/ -[4]: https://news.itsfoss.com/content/images/size/w256h256/2022/08/android-chrome-192x192.png -[5]: https://news.itsfoss.com/content/images/wordpress/2022/01/system76-rust-based-distro-ft.png -[6]: https://blog.system76.com/post/more-on-cosmic-de-to-kick-off-2023 -[7]: https://news.itsfoss.com/content/images/2023/02/COSMIC_ui.jpg -[8]: https://github.com/pop-os/libcosmic/pull/56 -[9]: https://news.itsfoss.com/content/images/2023/02/COSMIC_revamped_settings.jpg -[10]: https://news.itsfoss.com/content/images/2023/02/COSMIC_display.png -[11]: https://news.itsfoss.com/content/images/2023/02/multiple-displays.jpg -[12]: https://news.itsfoss.com/content/images/2023/02/COSMIC_power-1.png -[13]: https://news.itsfoss.com/content/images/2023/02/COSMIC_region_language.png -[14]: https://news.itsfoss.com/content/images/2023/02/COSMIC_sound.png -[15]: https://news.itsfoss.com/content/images/2023/02/COSMIC_wallpapers-1.png -[16]: https://github.com/pop-os/iced/commit/f1310e47617c3046a3cd98e20e373247f19327af -[17]: https://github.com/rust-windowing/softbuffer/ -[18]: https://github.com/pop-os/cosmic-text -[19]: https://github.com/pop-os/libcosmic -[20]: https://github.com/pop-os/cosmic-time -[21]: https://github.com/iced-rs/iced -[22]: https://mastodon.social/@itsfoss -[23]: https://twitter.com/itsfoss2 From 56257075619f9a716f0cf4a28fa421b6eb298f11 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sat, 4 Feb 2023 11:42:39 +0800 Subject: [PATCH 309/357] Eighth trans finished (#28554) * Update 20190331 Codecademy vs. The BBC Micro.md * first commit * h * b * b2 * h2 * translation request * merge * file add * rebase --- ...blishing- Platinum open access journals.md | 49 ++++++++++--------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md index 6ccfafb514..da6d702522 100644 --- a/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md +++ b/sources/talk/20220513 When open source meets academic publishing- Platinum open access journals.md @@ -7,48 +7,51 @@ [#]: publisher: " " [#]: url: " " -When open source meets academic publishing: Platinum open access journals +当开源遇到学术出版:白金开放获取期刊 ====== -Academics can now publish free, read free, and still stay on track for professional success. + +学者现在可以免费发表(文章),免费阅读(文章),与此同时仍然能够在专业成就的道路上持续进步。 ![Stack of books for reading][1] -Image by: Opensource.com +图自:Opensource.com -Academics routinely give away their work to companies for free—and then they buy it back! Can you imagine a farmer giving away free food and then paying to get it back for dinner? Probably not. Yet academics like me have been trapped for decades in a scheme where we give free work in exchange for job security and then pay millions of dollars a year to read our own writing. +学者们经常将他们的作品免费提供给公司,然后却要花钱购买它!你能想象农民在免费送出他们的食物之后再重新花钱买回来做晚餐吗?可能不能吧。像我这样的学者陷入这样的阴谋中几十年了,我们以工作安全为交换免费提供我们的作品,然后却要每年花几百万美元来阅读我们自己的文章。 -Fortunately, this is changing. The results from a [study][2] I just finished show that it is possible for academics to get job security without paying for it. My study found hundreds of journals that are *platinum open access* (OA)—that is, they require neither the author nor the readers to pay for peer-reviewed work—yet still carry the prestige and readership to help academics succeed in their careers. +幸运的是,情况正在发生改变。我刚刚完成的一项[研究][2]的结果显示:对于学者来说,获得工作安全保障的同时而不对此付出代价是可能的。我的研究发现数百种期刊是 *白金开放获取* (platinum open access,译注:源自中文网络)的——也就是说,它们不需要作者或者读者就同行评议的文章付费,却仍然享有声望和读者群以帮助学者在他们的职业生涯中取得成功。 -This trend is exploding: The [Directory of Open Access Journals][3] lists over 17,300 journals that offer a means of OA at some level, and over 12,250 have no article-processing charges (APCs). I used a handy open source [Python script][4] to compare this list to a list of journals ranked by the frequency with which their published papers are cited in other articles (The Journal Impact Factor List). It is clear that the last few years have seen a growing trend towards both OA in general and platinum OA specifically. These trends have the potential to accelerate science while helping prevent academic servitude. +这一趋势正在扩张:[开放获取期刊目录][3]罗列了超过17300种期刊,这些期刊均提供了某种程度上的开放获取(OA)方式。该目录还提供了超过12250种无须文章处理费(APC)的期刊。我使用一段简易的开源[Python 脚本][4]来将该列表与另一按照期刊发表的文章被其他文章引用的频次排名的期刊列表(期刊影响因子列表)进行比较。很明显,最近几年来,总体的开放获取(OA)期刊与白金开放获取(OA)期刊均呈上升趋势。这一趋势可能有助于在避免学术奴役的同时加速科学发展。 -### The academic's dilemma +### 学者的窘境 -Academics are generally pretty intelligent, so why have they engaged in this disadvantageous system for so long? Simply put, academics have been caught in a trap: In order to keep their jobs and get tenure, they need to publish in journals with a high impact factor. An impact factor is a metric based on the mean number of citations to articles published in the last two years in a given journal, as indexed by the proprietary Web of Science. Impact factors are a prestige metric for academics. +学者们通常是相当聪慧的,那么他们为什么如此长时间地投身于这种不利体系中呢?简而言之,学者陷于这样一个陷阱中:为了维系他们的工作和获得终身教职,他们需要在高影响因子(impact factor)的期刊上发表文章。影响因子是一种基于最近两年间在给定期刊上发表的文章的平均引用数量的衡量指标。影响因子由 Web of Science 索引。对学者而言,影响因子是一个有影响力的衡量指标。 -Historically, academic publishing has been dominated by a handful of major publishers that used subscription-based business models. In this model, academic authors write articles, peer-review articles, and often do the editing of these articles—all for free. The articles are published under copyright owned by the major publishing companies. Then either the same academics pay to read these articles on an individual basis (~US $35/article), or their university libraries pay to subscribe to all of the articles in a journal. These costs can be astronomical: often over US $1 million per year for all titles from a single publisher. +历史上,学术出版由一小部分主要出版商统治。他们采用基于订阅制的商业模式。在这样的商业模式中,学术作者撰写文章,评审同行的文章,也经常进行这些文章的编辑工作。这些工作都是没有任何报酬的。这些文章出版了,它们的版权则由那些主要的出版公司所有。即使是参与上述工作的学者也需要个人付费阅读这些文章(~每篇文章35美元),或者由他们所在学校的图书馆付费订阅期刊上的所有文章。(订阅)所花的费用是相当可观的:单一出版商的所有文章的订阅费用通常超过一百万每年。 -This system is senseless for many obvious reasons. Scientific progress is bogged down by restricting access to copyrighted scientific literature squirreled away behind paywalls. It is hard to do state-of-the-art research if you do not know what it is because you cannot read it. Scientists are divided into those who can afford access to the literature and those who cannot. Academics in the developing world often struggle to pay, but even well-endowed [Harvard University][5] has taken action to rein in its yearly journal expenses. +有很多显然的理由都说明这一体制是毫无意义的。限制对隐匿在付费专区后的受版权保护的科学文献的访问使得科学进程陷于停滞。如果你因为无法查看而不知道前沿科技是什么的话,你就无法进行相应的前沿技术研究。科学家分为能够负担访问这些文章的费用的人以及不能负担(这些费用的人)。在这个发展的世界中,学者一般都努力负担这些费用,不过即使是财力雄厚的[哈佛大学][5]也已经采取行动控制它的年度期刊费用。 -Costs to authors are similarly high. APC values range from a few hundred dollars to jaw-dropping thousands of dollars per article. APCs can be particularly damaging for some disciplines that are less well funded, such as the humanities and social sciences (as compared to physical and medical sciences or engineering). Substantial APCs also reinforce the wealth gap in academia, making professional success dependent on having income to invest in publishing. Is there another profession that asks workers to pay money to make products for others? +文章作者的花费也同样高昂。每篇文章的文章处理费从几百美元到骇人听闻的几千美元不等。文章处理费对一些资金不足的学科尤其有害,比如人文学科与社会学科(与物理学、医学和工程学相比而言)。大量的文章处理费也强化了学术界的贫富差距,使得(学者的)专业成就依赖于其所拥有的将收入投入文章发表的能力。还有其他的要求从业者付费为他人制造产品的职业吗? -### Open access to the rescue! +### 开放获取,解决之道! -This problem can be solved by the OA movement, which advocates for making all academic literature freely accessible to everyone. There is an unmistakable rise in OA publishing: It now makes up nearly a third of the peer-reviewed literature. +开放获取行动可以解决上述问题,开放获取行动倡导使所有的学术文献对任何人都能自由自由获取。开放获取的出版量有明显上升:它占了当前同行评议文章的将近三分之一。 -The benefits of OA are twofold. First, OA is a benefit to science overall, because it provides a frictionless means of reading the state of the art for making significant advancements in knowledge. Second, from an individual academic's point of view, OA provides the pragmatic advantage of enabling the broadest possible audience of their writing by making it freely and easily available on the internet. +开放获取的优势分两个方面。首先,开放获取有利于科学整体,因为它提供了一个不受阻碍地阅读前沿技术的方式。这些技术有助于进一步做出重要的认知进步。其次,就学者个人层面而言,通过让他们的作品在网络上轻而易举地免费获得,开放获取提供了最大化他们作品的潜在受众的实际优势。 -Funders have begun to demand OA for these reasons, particularly public funders of science. It is hard to argue that if the public funds research, they should have to pay a second time to read it. +基于上述原因,资助者已经开始要求开放获取,尤其是科学领域的公共资助者。如果一项研究的公共资助者还需要在阅读研究内容时二次付费,这种做法很难站得住脚。 -### Where is academic publishing now, and where it is going? +### 学术出版目前身处何方,以后又去向何处? -Conventional publishers still have control of this situation, largely because of the perception that they have a monopoly on journals with an impact factor. Despite the disadvantages of publishing the traditional way, many academics continue to publish in subscription-based journals or pay high APCs, knowing that publication in high impact factor journals is vital for demonstrating expertise for grants, tenure, and promotion. +传统出版商仍然掌控着目前的局面,主要是因为认为他们垄断了具有影响因子的期刊这一认知。很多学者无视传统出版方式的缺点,仍然持续在基于订阅制的期刊上发表文章或者支付高昂的文章处理费,因为他们知道在高影响因子的期刊上发表文章是至关重要的,它能够提供赖以获取补助、终身教职与职位晋升的专业性的证明。 -A few years ago, academics simply had no choice: They could either publish in a journal with an impact factor or publish OA. Now they can publish OA and still get the benefits of an impact factor in one of three ways: +多年以前,学术界完全没有选择的余地:要么在具有影响因子的期刊上发表,要么在通过开放获取方式发表。现在他们可以通过开放获取方式发表并仍然能够通过以下三种方式之一享受影响因子的益处: -* Green OA: Publish in a traditional way and then self-archive by uploading preprints or accepted versions of papers into an open repository or server. Some schools have an institutional repository for this purpose. For example, Western University has [Scholarship@Western][6], where any of their professors can share their work. Academics without their own institutional repos can use servers like [preprints.org][7], [arXiv][8], or  [OSF preprints][9]. I also use social media for academics, like [Academia][10] or [ResearchGate][11], for self-archiving. This can be complex to navigate because publishers have different rules, and it is somewhat time consuming. -* Gold OA: Publish in a growing list of journals with impact factors that make your paper freely available after publication but require an APC. This method is easy to navigate: Academics publish as usual and OA is built into the publishing process. The drawback is that funds going to APCs may be diverted from research activities. -* Platinum OA: Publish in platinum OA journals with an impact factor. No one pays either to read or to publish. The challenge here is finding a journal in your discipline that fits this criterion, but that continues to change. +* 绿色开放获取模式(Green OA):以传统方式出版后,再通过上传预印版或者接受版论文至开放仓库或者服务器完成自行归档。一些高校拥有用于上述目的的公共仓库。举例而言,韦仕敦大学(Western University,译注:来自中文网络)拥用[Scholarship@Western][6]公共仓库,该校的任何教师都可以在上面分享他们的作品。没有属于自己的公共仓库的学者可以使用诸如[preprints.org][7], [arXiv][8], or  [OSF preprints][9]等网络服务器。我也会将社交媒体用于学术,比如将[Academia][10] 或 [ResearchGate][11] 用于自行存档。由于不同的出版商设计了不同的规则,这是不方便查阅的,而且某种程度上是耗时耗时耗力的。 -There are tens of thousands of journals, but only a few hundred platinum OA journals with impact factors. This may make it hard for academics to find a good fit between what they study and a journal that matches their interests. See the Appendix in my [study][12] for the list, or use the Python script mentioned above to run updated numbers for yourself. The number of platinum OA journals is growing quickly, so if you do not find something now you may have some solid journals to choose from soon. Happy publishing! +* 金色开放获取模式(Gold OA):在日益壮大的具有影响因子的期刊列表上选一份期刊发表,它将使你的文章发表后可以自由获取但是需要文章处理费。这种方式易于查阅:开放获取设置内建于出版过程中,只需要像往常一样进行学术出版。这种方式的缺点是用于文章处理的费用可能会从研究活动中挪用。 + +* 白金开放获取模式(Platinum OA):在具有影响因子的白金开放获取期刊上发表。不需要为出版和阅读付费。挑战在于在您的学科中找到符合上述标准的期刊,不过情况正在持续变化。 + +目前已经有数以万计的期刊,但是具有影响因子的白金开放获取期刊仅仅几百种。对于学者,困难可能在于在他们的研究与符合他们预期的期刊之间找到一个合适的平衡。你可以在我研究的附录中找到本文提到的列表,或者使用上文提到的 Python 脚本自行更新列表数量。白金开放获取期刊的数量正在快速增长,因此如果你目前尚未找到合适的期刊,仍然可能在不久以后拥有一些可靠的期刊以供选择。祝你享受出版的乐趣! -------------------------------------------------------------------------------- @@ -56,7 +59,7 @@ via: https://opensource.com/article/22/5/platinum-open-access-academic-journals 作者:[Joshua Pearce][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 39622f2a01ef951e7b9e99a053f3a7d2ec73b2b1 Mon Sep 17 00:00:00 2001 From: onionstalgia <35531128+onionstalgia@users.noreply.github.com> Date: Sat, 4 Feb 2023 15:01:19 +0800 Subject: [PATCH 310/357] translating --- ...914 Why Enterprises Should Opt for Platform as a Service.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md b/sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md index e2a6004472..dd1bd4fa29 100644 --- a/sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md +++ b/sources/talk/20220914 Why Enterprises Should Opt for Platform as a Service.md @@ -2,7 +2,7 @@ [#]: via: "https://www.opensourceforu.com/2022/09/why-enterprises-should-opt-for-platform-as-a-service/" [#]: author: "Gopala Krishna Behara https://www.opensourceforu.com/author/gopalakrishna-behara/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "onionstalgia" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 96868f1354114ed0589d105b06b3cecbe86df125 Mon Sep 17 00:00:00 2001 From: CanYellow Date: Sat, 4 Feb 2023 17:25:19 +0800 Subject: [PATCH 311/357] add translator's name --- ...20200628 Roy Fielding-s Misappropriated REST Dissertation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20200628 Roy Fielding-s Misappropriated REST Dissertation.md b/sources/talk/20200628 Roy Fielding-s Misappropriated REST Dissertation.md index 0272e2eb43..406b7049c6 100644 --- a/sources/talk/20200628 Roy Fielding-s Misappropriated REST Dissertation.md +++ b/sources/talk/20200628 Roy Fielding-s Misappropriated REST Dissertation.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (CanYellow) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 3fd56d09d782d74baa8ccc3a1b85a4298c5d19de Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 4 Feb 2023 18:27:35 +0800 Subject: [PATCH 312/357] RP @geekpi https://linux.cn/article-15509-1.html --- ...ookStack, an open source Confluence alternative.md | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) rename {translated/tech => published}/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md (66%) diff --git a/translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md b/published/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md similarity index 66% rename from translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md rename to published/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md index 741c8ca683..3339cc14dd 100644 --- a/translated/tech/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md +++ b/published/20230103.1 ⭐️⭐️ Document with BookStack, an open source Confluence alternative.md @@ -3,26 +3,30 @@ [#]: author: "Dan Brown https://opensource.com/users/ssddanbrown" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15509-1.html" 使用 BookStack 写文档,一个开源的 Confluence 替代品 ====== -BookStack 是一个开源的、基于网络的文档系统,它允许你创建一个结构化的知识库供个人、团队或公司使用。BookStack 专注于易用性和设计,以提供适合具有潜在的混合技术技能的受众的体验。它建立在 PHP 框架 Laravel 之上,使用 MySQL 或 MariaDB 作为数据存储。 +![][0] -在尝试为我的工作场所寻找文档或 wiki 系统后,我构建了 BookStack。[Confluence][1] 是最符合我要求的选项,但基于用户的定价带了的阻碍。Confluence 的封闭性也对我要构建的文档的寿命提出了质疑。最后,我决定建立自己的平台来满足我的需求。我用 MIT 许可发布它,以回馈我多年来喜爱并从中受益的开源社区。 +> BookStack 是一个开源的、基于网页的文档系统,它允许你创建一个结构化的知识库,供个人、团队或公司使用。 + +BookStack 是一个开源的、基于网页的文档系统,它允许你创建一个结构化的知识库供个人、团队或公司使用。BookStack 专注于易用性和设计,以适合具有潜在的混合技术技能的受众。它建立在 PHP 框架 Laravel 之上,使用 MySQL 或 MariaDB 作为数据存储。 + +在尝试为我的工作场所寻找文档或维基系统后,我构建了 BookStack。[Confluence][1] 是最符合我要求的选项,但基于用户的定价带了的阻碍。Confluence 的封闭性也对我要构建的文档的寿命提出了质疑。最后,我决定建立自己的平台来满足我的需求。我用 MIT 许可发布它,以回馈我多年来喜爱并从中受益的开源社区。 ### 内容层次和组织选项 -为了保持熟悉和直观,BookStack 使用了现实世界的书籍术语来描述其组织结构。文档内容被创建“页”: +为了保持熟悉和直观,BookStack 使用了现实世界的书籍术语来描述其组织结构。文档内容被创建为 “Page”: -- 页属于一个特定的“书”。 -- 在一本书中,页可以选择性地被分组为“章节”。 -- 随着文档的增长,你可以使用“书架”来对“书”进行分类,如果需要,“书”可以成为多个书架的一部分。 +- “页” 属于一个特定的 “Book”。 +- 在一本书中,“页” 可以选择性地被分组为 “章节Chapter”。 +- 随着文档的增长,你可以使用 “书架Shelve” 来对 “书” 进行分类,如果需要,“书” 可以成为多个书架的一部分。 -这种结构是 BookStack 的核心,而且往往是决定 BookStack 是否适合你的使用情况的爱与恨的方面。 +这种结构是 BookStack 的核心,而且往往是决定 BookStack 是否适合你的使用情况的选择因素。 在这个核心层次上,BookStack 还提供了标签、用户收藏夹和高级搜索功能,以确保内容可被发现。 @@ -45,21 +49,21 @@ BookStack 是一个开源的、基于网络的文档系统,它允许你创建 ### 你的数据是如何存储的 -文档以相对简单的 HTML 格式存储在 [MySQL 或 MariaDB][5] 数据库中,如果使用了 Markdown,除了原始的 Markdown 内容外。很多设计和开发决定都是为了保持这种 HTML 格式的简单性。它尽可能地使用普通的标准 HTML 元素,以确保原始文档内容保持开放和可移植。 +如果使用了 Markdown,除了原始的 Markdown 内容外,文档以相对简单的 HTML 格式存储在 [MySQL 或 MariaDB][5] 数据库中。很多设计和开发决定都是为了保持这种 HTML 格式的简单性。它尽可能地使用普通的标准 HTML 元素,以确保原始文档内容保持开放和可移植。 上传的图片、附件和创建的图纸被保存在本地文件系统中,但也可以选择存储在一个与 s3 兼容的数据存储中,比如开源的 [MinIO][6]。 -为了保持你的内容可访问性,有内置的选项可以将内容导出为 PDF、HTML、纯文本或 Markdown。对于外部消费,有一个 HTTP REST API 和一个 webhook 系统。在扩展方面,一个“逻辑主题系统”允许在广泛的系统事件中运行自定义的 PHP 代码。 +为了保持你的内容可访问性,有内置的选项可以将内容导出为 PDF、HTML、纯文本或 Markdown。对于外部使用,有一个 HTTP REST API 和一个 Webhook 系统。在扩展方面,一个 “逻辑主题系统” 允许在广泛的系统事件中运行自定义的 PHP 代码。 -### 为业务做好准备 +### 为商业做好准备 -BookStack 具有一系列的功能来支持商业环境。内置了对一系列认证选项的支持,包括 SAML2、OpenID Connect 和 LDAP,允许使用 [KeyCloak][7] 等平台轻松实现单点登录。MFA 选项是可用的,并且可以根据角色进行授权。审计日志提供整个实例的修改活动的完整可见性。 +BookStack 具有一系列的功能来支持商业环境。内置了对一系列认证选项的支持,包括 SAML2、OpenID Connect 和 LDAP,允许使用 [KeyCloak][7] 等平台轻松实现单点登录。也支持多因子认证(MFA),并且可以根据角色进行授权。审计日志提供整个实例的修改活动的完整可见性。 一个完全基于角色的权限系统为管理员提供了对系统内容的创建、查看、更新和删除操作的完全控制。这允许每个角色的系统默认值,以及在每个层次项目基础上设置自定义权限的选项。 -### 一个支持的社区 +### 支持的社区 -经过 7 年多的活跃,BookStack 的社区已经发展到了各种讨论和支持的渠道。我们现在有: +经过 7 年多的积极开发,BookStack 的社区已经发展到了各种讨论和支持的渠道。我们现在有: - [我们的文档站点][8] - [YouTube 上的视频指南][9] @@ -67,7 +71,7 @@ BookStack 具有一系列的功能来支持商业环境。内置了对一系列 - [一个活跃的 GitHub 问题列表][11] - [付费业务支持][12] -如果你想玩玩 BookStack,你可以[在我们的演示网站][13]试试。要了解如何设置你自己的实例,请访问[我们文档的安装页面][14]。 +如果你想体验一下 BookStack,你可以 [在我们的演示网站][13] 试试。要了解如何设置你自己的实例,请访问 [我们文档中的安装页面][14]。 -------------------------------------------------------------------------------- @@ -76,7 +80,7 @@ via: https://opensource.com/article/23/1/bookstack-open-source-documentation 作者:[Dan Brown][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/) 荣誉推出 @@ -96,3 +100,4 @@ via: https://opensource.com/article/23/1/bookstack-open-source-documentation [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/ +[0]: https://img.linux.net.cn/data/attachment/album/202302/04/180856n7ql7p8fk7l9fa9n.jpg \ No newline at end of file From 36b7a3ef9010dff675a0a196022eb4e00e6baeed Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 5 Feb 2023 11:25:35 +0800 Subject: [PATCH 313/357] ATRP @wxy https://linux.cn/article-15511-1.html --- ...ls Stunning New App Icons and Cool Features.md | 127 ++++++++++++++++++ ...ls Stunning New App Icons and Cool Features.md | 127 ------------------ 2 files changed, 127 insertions(+), 127 deletions(-) create mode 100644 published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md delete mode 100644 sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md diff --git a/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md b/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md new file mode 100644 index 0000000000..7608577b22 --- /dev/null +++ b/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md @@ -0,0 +1,127 @@ +[#]: subject: "LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features" +[#]: via: "https://news.itsfoss.com/libreoffice-7-5-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15511-1.html" + +LibreOffice 7.5 发布:漂亮的新应用图标和酷炫功能 +====== + +> 通过全新的应用程序图标和其他改进,LibreOffice 7.5 似乎有了新的形象。 + +![LibreOffice 7.5 公布了令人惊叹的新应用图标和很酷的功能][1] + +LibreOffice 7.5 社区版来了,带来**许多功能升级和新的应用图标**。 + +之前的主要版本 [7.4 版][2] 为微软的专有文件格式提供了更好的 “互操作性”,并**进一步巩固了 LibreOffice** 作为 Linux 上 [微软 Office 的最佳开源替代品][3] 之一的地位。 + +而现在,一个新的版本来了,里面有很多东西。 + +让我们来看看带来了什么好东西。 + +### 🆕 LibreOffice 7.5 的新变化 + +![LibreOffice 7.5: New Features][4] + +在这个版本中,对 LibreOffice 的所有程序都做了大量的改进;一些关键的亮点包括: + +- 新的应用程序图标 +- Writer 的改进 +- Calc 的改进 +- Impress & Draw 的改进 +- 深色模式的改进 + +#### 新的应用程序图标 + +![LibreOffice 的更新图标][5] + +LibreOffice 现在具有一套新的应用程序图标,看起来相当现代。这些图标在 GNOME 和 KDE Plasma 等新一代的桌面环境中看起来都很漂亮。 + +下面是它与旧图标的对比情况。令人耳目一新,对吗? + +![LibreOffice 旧图标与新图标][6] + +同样,开发者也更新了 LibreOffice 整个界面上用于各种媒体类型/文件的图标集。 + +#### Writer 的改进 + +![LibreOffice Writer 截图][7] + +Writer 应用程序得到了大量的改进,值得注意的包括: + +- 增加了一个新的纯文本类型。 +- 标题和标签的内容控件。 +- 新的组合框类型和将内容控件导出为 PDF 的能力。 +- 对丹麦语、荷兰语、爱沙尼亚语、德语、匈牙利语、挪威语和瑞典语等语言的拼写检查有所改进。 +- 在表格中,当列与合并单元格相交时,对它的检测得到了改进。 +- 书签的编辑和可访问性得到了改进。 +- 一个可以应用于图像、嵌入对象和文本框的装饰性标签,以允许辅助软件在导出的 PDF 中忽略它们。 + +#### Calc 的改进 + +![LibreOffice 7.5 Calc 截图][8] 。 + +在非文本格式的单元格中,带有前导撇号(')的单元格输入现在将永久删除第一个撇号以防止混淆。 + +增加了对 Kamenický 和 Mazovia 编码的支持,同时对条件格式化进行了改进。 + +此外,在函数向导中搜索一个术语时,现在会通过函数描述以及它们的名称进行匹配。 + +#### Impress & Draw 的改进 + +Impress 现在支持在媒体形状中添加裁剪过的视频,还修复了 EMF 图形的模糊问题。 + +![LibreOffice Draw 的新的表格风格设计功能][9] + +在 Draw 里,增加了对修改表格样式和创建新表格的基本支持。修改后的样式被保存到文档中,并可以做成模板和共享。 + +> 🗒️ 你可以通过右键单击 “表格设计” 侧边栏面板中的设计来访问修改表格样式的功能。 + +#### 🛠️ 其他变化和改进 + +这些并不是 7.5 版本中对 LibreOffice 的唯一改进。 + +像**更好地支持深色和高对比度的主题,支持图表中的数据表格,对核心的各种改进,以及更多的东西使它成为一个完善的版本。一些改进是针对 macOS 和 Windows 等平台的,以及针对 Linux 的。 + +你可以从 [官方发布说明][10] 或 [公告][11] 中查看所有的技术变化。 + +### 下载 LibreOffice 7.5 + +LibreOffice 7.5 可以从 [官方下载页面][12] 获得。 + +你可以找到 deb 和 rpm 文件以及用于 Windows 和 macOS(Intel/ARM)的 软件包。 + +> **[LibreOffice 7.5][12]** + +你也可以选择 Torrent 文件以获得更顺畅的下载体验。 + +对于现有的用户,根据你的 Linux 发行版,预计在未来几天/几周会有更新。你可以选择 Flatpak 包以更快地获得最新版本。 + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/libreoffice-7-5-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/02/libreoffice-7.5-release.png +[2]: https://news.itsfoss.com/libreoffice-7-4-release/ +[3]: https://itsfoss.com/best-free-open-source-alternatives-microsoft-office/ +[4]: https://youtu.be/ZlAmjIwUvs4 +[5]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Icons.png +[6]: https://news.itsfoss.com/content/images/2023/02/libreoffice-icons.jpg +[7]: https://news.itsfoss.com/content/images/2023/02/libreoffice-writer.png +[8]: https://news.itsfoss.com/content/images/2023/02/libreoffice-7-5.png +[9]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Table_Design.png +[10]: https://wiki.documentfoundation.org/ReleaseNotes/7.5 +[11]: https://blog.documentfoundation.org/blog/2023/02/02/tdf-announces-libreoffice-75-community/ +[12]: https://www.libreoffice.org/download/download-libreoffice/ diff --git a/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md b/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md deleted file mode 100644 index d37aa6e92b..0000000000 --- a/sources/news/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md +++ /dev/null @@ -1,127 +0,0 @@ -[#]: subject: "LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features" -[#]: via: "https://news.itsfoss.com/libreoffice-7-5-release/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features -====== - -LibreOffice 7.5 seems to have a new personality with its brand-new app icons and other improvements. - -![LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features][1] - -LibreOffice 7.5 community edition is here with **many feature upgrades and new app icons**. - -The previous major release [version 7.4][2] bought in better 'interoperability' with Microsoft's proprietary file formats and **further solidified LibreOffice** as one of the [best open-source alternatives to Microsoft Office][3] on Linux. - -And now, a new release is here with a lot in store. - -Let's take a look at what this has to offer. - -### 🆕 LibreOffice 7.5: What's New? - -![LibreOffice 7.5: New Features][4] - -With this release, plenty of improvements have been made to all the programs of LibreOffice; some key highlights include: - -- **New App Icons** -- **Writer Improvements** -- **Calc Improvements** -- **Impress & Draw Improvements** -- **Dark mode improvement** - -#### New App Icons - -![libreoffice's updated icons][5] - -LibreOffice now features a new set of app icons that look pretty modern. These will look neat with current-gen desktop environments such as GNOME and Plasma. - -Here's how it looks compared to the old icon; refreshing, right? - -![libreoffice old icon vs new icon][6] - -Similarly, the developers have also updated the icon set used throughout LibreOffice's interface for various media types/files. - -#### Writer Improvements - -![libreoffice writer screenshot][7] - -The Writer app has received a host of improvements, notable ones include: - -- A new plain text type was added. -- Content controls for titles and tags. -- New combo box type and ability to export content controls to PDF. -- Spellcheck has improved for various languages such as Danish, Dutch, Estonian, German, Hungarian, Norwegian, and Swedish. -- In case of tables, column detection has improved when it intersects with merged cells. -- Bookmark editing and accessibility has been improved. -- A decorative tag can be applied to images, embedded objects, and text frames to allow assistive software to ignore them in exported PDFs. - -#### Calc Improvements - -![libreoffice 7.5 calc screenshot][8] - -Cell inputs with the leading ' apostrophe in cells that are not formatted as Text will now permanently remove the first apostrophe to prevent confusion. - -Support for Kamenický and Mazovia encodings was added, alongside improvements to conditional formatting. - -In addition, when searching for a term in the Function Wizard, it will now match the function descriptions as well as their names. - -#### Impress & Draw Improvements - -Impress now has support for adding cropped videos in media shapes and also includes a fix for an EMF graphics issue where it would appear blurry. - -![libreoffice draw's new table style design feature][9] - -In the case of Draw, essential support was added for modifying table styles and creating new ones. Modified styles are saved into the document and can be made into templates and shared. - -> 🗒️ You can access the feature to modify table style by right-clicking on a design in the Table Design sidebar panel. - -#### 🛠️ Other Changes and Improvements - -These were not the only improvements to LibreOffice with the 7.5 release. - -Things like **better support for dark and high contrast themes**, support for data tables in charts, various improvements to the core, and more make this a packed release. Some refinements are targeted for platforms like macOS and Windows, along with Linux. - -You can check all the technical changes from the [official release notes][10] or the [announcement][11]. - -### Download LibreOffice 7.5 - -LibreOffice 7.5 is available from the [official download page][12]. - -You can find deb and rpm files along with packages for Windows and macOS (Intel/ARM). - -[LibreOffice 7.5][12] - -You can also opt for a Torrent file for an even smoother download experience. - -For existing users, depending on your Linux distribution, expect an update in the coming days/weeks. You may opt for the Flatpak package for faster access to the latest version. - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/libreoffice-7-5-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/02/libreoffice-7.5-release.png -[2]: https://news.itsfoss.com/libreoffice-7-4-release/ -[3]: https://itsfoss.com/best-free-open-source-alternatives-microsoft-office/ -[4]: https://youtu.be/ZlAmjIwUvs4 -[5]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Icons.png -[6]: https://news.itsfoss.com/content/images/2023/02/libreoffice-icons.jpg -[7]: https://news.itsfoss.com/content/images/2023/02/libreoffice-writer.png -[8]: https://news.itsfoss.com/content/images/2023/02/libreoffice-7-5.png -[9]: https://news.itsfoss.com/content/images/2023/02/LibreOffice_7.5_Table_Design.png -[10]: https://wiki.documentfoundation.org/ReleaseNotes/7.5 -[11]: https://blog.documentfoundation.org/blog/2023/02/02/tdf-announces-libreoffice-75-community/ -[12]: https://www.libreoffice.org/download/download-libreoffice/ From 2900526525d9f41caff962a8ef926794de51c0f6 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 5 Feb 2023 11:39:18 +0800 Subject: [PATCH 314/357] R --- ...reOffice 7.5 Unveils Stunning New App Icons and Cool Features.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md b/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md index 7608577b22..84953f683a 100644 --- a/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md +++ b/published/20230202.0 ⭐️ LibreOffice 7.5 Unveils Stunning New App Icons and Cool Features.md @@ -62,7 +62,7 @@ Writer 应用程序得到了大量的改进,值得注意的包括: #### Calc 的改进 -![LibreOffice 7.5 Calc 截图][8] 。 +![LibreOffice 7.5 Calc 截图][8] 在非文本格式的单元格中,带有前导撇号(')的单元格输入现在将永久删除第一个撇号以防止混淆。 From be63e9f68fa2d4be8f70c78d67aea51a2f1d7d86 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 5 Feb 2023 14:01:58 +0800 Subject: [PATCH 315/357] =?UTF-8?q?=E6=B8=85=E9=99=A4=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lasma 5.27 Top New Features and Release Details.md | 179 ------------------ ... Linux! Here are 6 Linux origin stories.md | 131 ------------- .../20221016.0 ⭐️⭐️ What’s new in GNOME 43.md | 74 -------- 3 files changed, 384 deletions(-) delete mode 100644 sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md delete mode 100644 sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md delete mode 100644 sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md diff --git a/sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md b/sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md deleted file mode 100644 index 0179989fc6..0000000000 --- a/sources/news/20230118.0 ⭐️⭐️ KDE Plasma 5.27 Top New Features and Release Details.md +++ /dev/null @@ -1,179 +0,0 @@ -[#]: subject: "KDE Plasma 5.27: Top New Features and Release Details" -[#]: via: "https://www.debugpoint.com/kde-plasma-5-27/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -KDE Plasma 5.27: Top New Features and Release Details -====== - -**The list of impressive features and enhancements of the KDE Plasma 5.27 desktop is arriving in February.** - -In a way, KDE Plasma 5.27 is a milestone release. - -Firstly, it is the final LTS release of the Plasma 5 version and the last instalment of the Plasma 5 series. Initial porting work has already started for Plasma 6 series, which would be based on Qt 6 version. - -Release number-wise, it is the 29th version of the KDE Plasma desktop, followed by the [prior plasma 5.26 release][1]. - -Visible feature-wise, it’s of moderate size. However, the bug fixes, code refactoring, cleanup, and optimization are significant. Most are not visible on the deck, but you can feel the changes when using this fluid desktop. - -Before I walk you through the key features, here’s the schedule. - -- **Beta:** Jan 19, 2023 -- **KDE Plasma 5.27 Final release:** Feb 14, 2023 - -![KDE Plasma 5.27 dev edition][2] - -### KDE Plasma 5.27: Best New Features - -#### Plasma Workspace - -A brand new app welcomes you to Plasma desktop from now on. It was a good idea to add this app to Plasma. It will give you some initial information about Plasma, setting up online accounts and so on. - -![Plasma Welcome App][3] - -The media controller applet introduces two new layouts in this release. A vertical layout showing album art, song title and artist name. And an icon-only display showing only album art. [MR 2176][4] - -The icon size settings slide in the Appearance is moved under the preview with more descriptive text. Also, the window size is slightly larger to accommodate the overall items. [MR 2213][5] - -![Changes in icon size slide][6] - -KDE Plasma battery monitor will now show the charging, discharging, and fully charged status for non-power supply batteries such as a wireless mouse, and mobile phones when connected to the Plasma desktop. [MR 2210][7] - -Also, the battery monitor stops showing 100% when the battery is fully charged. You can only see the power icon without any text. [MR 2306][8] - -In another change, the battery monitor shows “Estimating…” text when the remaining time is 0. Also, the remaining time calculation is changed to give you accurate hours and minutes remaining to full charge. - -The middle click features are now exposed in the applet UI when available. The features existed for some apps, but the discovery was difficult unless tried. [MR 2205][9] - -![Exposing the middle click options][10] - -In the upcoming Qt6, the GaussianBlur is not available. Hence it has been removed in this version, and FastBlur is now incorporated. This is part of the initial Qt6 porting of the future Plasma 6 release. [MR 2083][11] - -The “do not disturb” applet now shows a clearer message for the duration. Earlier it used to show “Until today”, and it has been changed to “Automatically ends: Today at ….”. [MR 1412][12] - -In KDE Plasma 5.27, you can directly drag the wallpaper from the image list to any other application which accepts images. For example, you can directly drag and drop an image from the wallpaper window to the Gwenview image viewer. This definitely eases up many workflows and should save hassles from going to the folder and opening them. However, the feature is not working in my test, so I can’t show you a demo. [MR 2284][13] - -We all love Krunner, the most excellent launcher ever! In this release, Krunner now searches for the key in any part of the file name in the recent document list. It sorts the result from the best match, starting with the search key in the file name to the bottom. [MR 2273][14] - -Also, when there is no match in any documents in your system, Krunner now prompts a web search with the search key. [MR 2311][15] - -![Krunner is great][16] - -The developers can now prioritise the applet notification by assigning a notification value of 256. Once it is a high priority, the notification becomes part of the top header instead of the menu. [MR 2245][17] - -The Users settings page, fingerprint register, and authentication selection are much more visually attractive with an actual hand image. [MR 2347][18] - -![New Visual cue for fingerprint][19] - -The accessibility of KDE Plasma is now more robust because the Orca screenreader app can read the notifications. It includes the app name and the notification description. [MR 2295][20] - -#### Wayland, Kwin and Plasma desktop - -KDE Plasma 5.27 now supports **high-resolution scrolling** in Wayland, thanks to libinput 1.9 version changes. With this change, you should experience smooth scrolling performance in Chrome and Firefox browsers. I hope this makes it on par with the Windows experience. To this day, I still feel Windows scrolling in the popular browser is very smooth. [MR 3034][21] - -Another Wayland fix in this release is the inclusion of the Wayland implementation of **idle notification protocol**. In the Wayland session, if you become idle, the data can now be consumed by various apps and modules to save power, change the status in messaging apps, etc. [MR 2959][22] - -Wayland session in Plasma desktop also brings content type. This allows Kwin to tweak the display behaviour (direct scanout, variable refresh rate, etc.) based on the content displayed on the screen. So, you should get an optimized session based on whether you are watching a movie, playing games or casually browsing the web. [MR 2467][23] - -KDE Plasma Wayland session now supports **fractional scaling** natively. The upstream Wayland change for this was [merged][24] a few months back in 2022. You should get native resolution options in Wayland sessions. [MR 2598][25] - -If you are a multi-monitor user, you should be glad to know that the settings to manage multiple displays are now easily accessible via the system tray display configuration. - -![Multiple display configuration is now available from system tray][26] - -#### Discover - -Discover now shows a proper message when you are offline that it cannot fetch software information from servers instead of showing a progress bar. [MR 383][27] - -For the past few releases, Discover has been improved for Flatpak management. This release also gets some goodies for Flatpak apps. Firstly, the Flatpak application view now shows more permissions entries that an app needs. A new settings page lists all the installed Flatpak and its permissions. [MR 372][28] - -![Flatpak Permission in Discover][29] - -Secondly, Discover now waits a few moments before checking updates for Flatpak. While it waits, it shows the locally cached Flatpak data. [MR 421][30] - -Thirdly, the Discover home is revamped. Honestly, it was due for a long time. Now it looks far better with the popular apps, editor’s choice and other categories. [MR 398][31] - -![Discover homepage now revamped][32] - -#### Additional updates - -Other key change includes: - -- Plasma 5.27 is based on KDE Framework 5.102 and Qt 5.15.2. -- Transition animation when changing wallpaper. -- The weather applet now shows weather info in overlay mode. -- The location picker in the weather applet now gives you a possible list of locations. -- The network applet now shows 5G connection label and icons when used. -- And hopefully, a new wallpaper as always! - -[_Detailed changelog_][33] _(5.26.5-5.26.90)_ - -### Download - -The BETA of KDE Plasma 5.27 is now out. You can download the ISO file and torrent via the KDE Neon distribution from the below link. Remember, this is a testing copy, and there may be bugs. So use it with caution. - -[Download KDE Neon (testing edition)][34] - -### Wrapping Up - -Overall, the change list is enormous and impossible to cover in one article. It’s amazing to see so many changes pulled up in each release by the KDE team. The KDE Framework and app changes are not part of this article which is also significant. - -The final release is planned on Feb 14, 2023. - -Distro-wise, KDE Plasma 5.27 should be available in Fedora 38 and Ubuntu 23.04 Lunar Lobster within the March-April timeframe. - -So, which one of the features do you choose as your favourite? Let me know in the comment box below. - -Cheers. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/kde-plasma-5-27/ - -作者:[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/kde-plasma-5-26/ -[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/KDE-Plasma-5.27-dev-edition.jpg -[3]: https://www.debugpoint.com/wp-content/uploads/2023/01/Plasma-Welcome-App.jpg -[4]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2176 -[5]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2213 -[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Changes-in-icon-size-slide2.jpg -[7]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2210 -[8]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2306 -[9]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2205 -[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/Exposing-the-middle-click-options.jpg -[11]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2083 -[12]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1412 -[13]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2284 -[14]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2273 -[15]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2311 -[16]: https://www.debugpoint.com/wp-content/uploads/2023/01/Krunner-is-great.jpg -[17]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2245 -[18]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2347 -[19]: https://www.debugpoint.com/wp-content/uploads/2023/01/New-Visual-cue-for-fingerprint.jpg -[20]: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2295 -[21]: https://invent.kde.org/plasma/kwin/-/merge_requests/3034 -[22]: https://invent.kde.org/plasma/kwin/-/merge_requests/2959 -[23]: https://invent.kde.org/plasma/kwin/-/merge_requests/2467 -[24]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/143 -[25]: https://invent.kde.org/plasma/kwin/-/merge_requests/2598 -[26]: https://www.debugpoint.com/wp-content/uploads/2023/01/Multiple-display-configuration-is-now-available-from-system-tray.jpg -[27]: https://invent.kde.org/plasma/discover/-/merge_requests/383 -[28]: https://invent.kde.org/plasma/discover/-/merge_requests/372 -[29]: https://www.debugpoint.com/wp-content/uploads/2023/01/Flatpak-Permission-in-Discover.jpg -[30]: https://invent.kde.org/plasma/discover/-/merge_requests/421 -[31]: https://invent.kde.org/plasma/discover/-/merge_requests/398 -[32]: https://www.debugpoint.com/wp-content/uploads/2023/01/Discover-homepage-now-revamped.jpg -[33]: https://kde.org/announcements/changelogs/plasma/5/5.26.5-5.26.90/ -[34]: https://files.kde.org/neon/images/testing/current/ diff --git a/sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md b/sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md deleted file mode 100644 index ba0c619a0b..0000000000 --- a/sources/talk/20220825 Happy birthday, Linux! Here are 6 Linux origin stories.md +++ /dev/null @@ -1,131 +0,0 @@ -[#]: subject: "Happy birthday, Linux! Here are 6 Linux origin stories" -[#]: via: "https://opensource.com/article/22/8/linux-birthday-origin-stories" -[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Happy birthday, Linux! Here are 6 Linux origin stories -====== -Our contributors share their first Linux experience on the 31st anniversary of the Linux kernel. - -On August 25, 1991, Linux 0.01 was announced. All of us have a story to tell about Linux. I told my story a couple of months ago, but for those who weren't here: My first exposure to Linux was when my grassroots hospice organization moved from paper to digital charting. We didn't have the funding to get something proprietary, but the IT department had Linux set up on our old machine, and we used the GNOME desktop and OpenOffice to start our journey in creating digital assets. - -I recently asked some Opensource.com authors this simple question: - -*What was your first Linux experience?* - -### From VAX to Linux - -For my junior year of high school, I was shipped off to a state-run "nerd farm" (that's the North Carolina School of Science and Mathematics.) Our first day on campus, the juniors were each assigned a senior big brother or sister. My senior big sister ditched me because she had tickets to go to a big outdoor music festival with her boyfriend, but when they came back all sunburned, we hung out in my mostly empty dorm room eating takeout on the floor. That was when I first met Matt. - -As the year wound on, Matt showed me how to help as a student sysadmin changing backup reels for the VAX mainframe and doing basic tasks on the "big" workstation that doubled as a campus-wide UNIX server. He had a PC in his room, with GNU and XWindows on a Minix kernel, but found this cool new alternative that some Finnish student had started posting the source code for on Usenet. I knew, right then and there, that was my future. - -When I got home for the summer, the first thing I did was buy a shiny new 486 with some of my savings from odd jobs, fired up a SLIP connection through our local BBS, and downloaded and decoded all the bits and pieces I'd need to bootstrap and compile Linux 0.96. - -Matt and I mostly lost touch after he graduated, but I'll always owe him for introducing me to the operating system kernel I'd use for the rest of my life. I think of him every time I see that tattered old copy of **Running Linux** adorning my office shelf. - -The "Matt" in this story is Matthew D. Welsh. After we lost touch, he became the original maintainer of [The Linux Documentation Project][2], and the author of the first edition of the O'Reilly Press book **Running Linux**. - -**[—Jeremy Stanley][3]** - -### Computer club - -Friends at a [computer club][4] inspired me to try Linux. - -I used Linux to help students learn more about other operating systems from 2012 to 2015, and I would say that Linux has taught me more about computers in general. - -It has probably affected my "volunteer career" because to this day I write articles about being a neurodiverse person in the Linux world. I also attend and join different Linux events and groups, so I've had access to a community I probably wouldn't have known otherwise. - -**[—Rikard Grossman-Nielsen][5]** - -### Galaxy - -My Linux story started a long time ago in a galaxy far, far away. In the early 90s, I spent a year in the US as a high school student. Over there, I had access to e-mail and the Internet. When I came back home to Hungary, I finished high school without any Internet access. There were no public Internet providers in Hungary at that time. Only higher education, and some research labs, had Internet. But in 1994, I started university. - -The very first wee of school, I was at the IT department asking for an email address. At that time, there was no Gmail, Hotmail, or anything similar. Not even teachers got an email address automatically at the university. It took some time and persistence, but I eventually received my first university email address. At the same time, I was invited to work in the faculty-student IT group. At first, I got access to a Novell and a FreeBSD server, but soon I was asked to give Linux a try. - -It was probably late 1994 when I installed my first Linux at home. It was Slackware, from a huge pile of floppy disks. At first, I only did a minimal installation, but later I also installed X so I could have a GUI. In early 1995, I installed my first-ever Linux server at the university on a spare machine, which was also the first Linux server at the university. At that time, I used the [Fvwm2][6] window manager both at home and at the university. - -At first, I studied environmental protection at the university, but my focus quickly became IT and IT security. After a while, I was running all the Linux and Unix servers of the faculty. I also had a part time job elsewhere, running web and e-mail servers. I started a PhD about an environmental topic, but I ended up in IT. I've worked with FreeBSD and Linux ever since, helping [sudo][7] and `syslog-ng` users. - -**[—Peter Czanik][8]** - -### Education - -I got introduced to Linux in the late 1990s by my brother and another friend. My first distro was Red Hat 5, and I didn't like it at the time. I couldn't get a GUI running, and all I could see was the command-line, and I thought, "This is like MS-DOS." I didn't much care for that. - -Then a year or more passed, and I picked up a copy of Red Hat 6.1 (I still have that copy) and got it installed on and HP Vectra with a Cyrix chip installed. It had plenty of hard disk space, which was fortunate because the Red Hat Linux software came on a CD. I got the GUI working, and set it up in our technology office at the school district I was employed at. I started experimenting with Linux and used the browser and Star Office (an ancestor of the modern [LibreOffice][9]), which was part of the included software. - -A couple years later, our school district needed a content filter, and so I created one on an extra computer we had in our office. I got Squid, Squidguard, and later Dansguardian installed on Linux, and we had the first self-hosted open source content filter in a public school district in Western New York State. Using this distribution, and later Mandrake Linux (an ancestor of [Mageia][10] Linux) on old Pentium II and Pentium III computers, I set up devices that used [SAMBA][11] to provide backup and profile storage for teachers and other staff. Teaming with members of area school districts I set up spam filtering for a fraction of the cost that proprietary solutions were offering at the time. - -Franklinville Central School District is situated in an area of high rural poverty. I could see that using Linux and open source software was a way to level the playing field for our students, and as I continued to repurpose and refurbish the "cast-off" computers in our storage closets, I built a prototype Linux terminal server running Fedora Core 3 and 4. The software was part of the K12LTSP project. Older computers could be repurposed and PXE booted from this terminal server. At one point, we had several computer labs running the LTSP software. Our staff email server ran on RHEL 2.1, and later RHEL 3.0. - -That journey, which began 25 years ago, continues to this day as I continue to learn and explore Linux. As my brother once said, "Linux is a software Erector set." - -**[—Don Watkins][13]** - -### Out in the open - -My first experience with Linux was brief, and it involved a lot of floppies. As I recall, it was entertaining until my dear wife discovered that her laptop no longer had Windows 98 installed (she was only moderately relieved when I swapped back in the original drive and the "problem" disappeared). That was around 1998, with a Red Hat release that came with a book and a poor unsuspecting ThinkPad. - -But really, at work I always had a nice Sun Workstation on my desktop, so why bother? In 2005, we decided to move to France for a while, and I had to get a (usefully) working Toshiba laptop, which meant Linux. After asking around, I decided to go with Ubuntu, so that was my first "real" experience. I think I installed the first distro (codenamed Warty Warthog,) but soon I was on the latest. There were a few tears along the way, caused mostly by Toshiba's choice of hardware, but once it was running that darned laptop was every bit as fast, and way more functional, for me than the old Sun. Eventually, we returned home, and I had a nice new Dell PC desktop. I installed Feisty Fawn, and I've never looked back. - -I've tried a few other distros, but familiarity has its advantages, particularly when configuring stuff at the lowest of levels. Really though, if forced to switch, I think I would be happy with any decent Linux distro. - -At a few points in time, I have had to do "kernel stuff", like bisecting for bugs and fiddling around with device drivers. I really can't remember the last time something that complicated was necessary, though. - -Right now, I have two desktops and one laptop, all running Ubuntu 22.04, and two aging Cubox i4-pro devices running Armbian, a great Debian-based distro created for people using single-board computers and similar devices. I'm also responsible for a very small herd of various virtual private running several distros, from CentOS to various versions of Ubuntu. That's not to mention a lot of Android-based stuff laying around, and we should recognize that it's Linux, too. - -What really strikes me, as I read this back over, is how weird it all must sound to someone who has never escaped the clutches of a proprietary operating system. - -**[—Chris Hermansen][15]** - -### Getting involved - -The first computer I bought was an Apple, the last Apple was a IIe. I got fed up with the strong proprietorship of Apple over the software and hardware, and switched to an Amiga, which had a nice GUI (incidentally, I have never owned another Apple product.) - -Amiga eventually crumbled, and so I switched to Windows—what an awful transition! About this time, somewhere in the mid- to latter-90s, I was finding out about Linux, and began reading Linux magazines and how to set up Linux machines. I decided to set up a dual-boot machine with Windows, then bought Red Hat Linux, which at the time came on a number of floppy disks. The kernel would have been 2.0-something. I loaded it on my hard drive, and Presto! I was using Linux—the command-line. At that time, Linux didn't read all of your hardware and make automatic adjustments, and it didn't have all the drivers you needed, as it does today. - -So next came the process of looking up in BBSes or wherever to find out where to get drivers for the particular hardware I had, such as the graphics chip. Practically, this meant booting into Windows, saving the drivers to floppy disk, booting back into Linux, and loading the drivers to the hard drive. You then had to hand-edit the configuration files so that Linux knew which drivers to use. This all took weeks to accomplish, but I can still recall the delight I felt when I typed `startx`, and up popped X-Windows!! - -If you wanted to update your kernel without waiting for and buying the next release, you had to compile it yourself. I remember I had to shut down every running program so the compiler didn't crash. - -It's been smooth sailing ever since, with the switch to Fedora (then called "Fedora Core"), and the ease of updating software and the kernel. - -Later, I got involved with the [Scribus][16] project, and I started reading and contributing to the mail list. Eventually, I began contributing to the documentation. Somewhere around 2009, Christoph Schaefer and I, communicating over the internet and sharing files, were able to write **Scribus, The Official Manual** in the space of about 9 months. - -**[—Greg Pittman][17]** - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/8/linux-birthday-origin-stories - -作者:[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/sites/default/files/lead-images/rh_003499_01_linux31x_cc.png -[2]: https://tldp.org/ -[3]: https://opensource.com/users/fungi -[4]: https://opensource.com/article/22/5/my-journey-c-neurodiverse-perspective -[5]: https://opensource.com/users/rikardgn -[6]: https://opensource.com/article/19/12/fvwm-linux-desktop -[7]: https://opensource.com/article/22/8/debunk-sudo-myths -[8]: https://opensource.com/users/czanik -[9]: https://opensource.com/article/21/9/libreoffice-tips -[10]: http://mageia.org -[11]: https://opensource.com/article/21/12/file-sharing-linux-samba -[12]: https://opensource.com/article/22/5/essential-linux-commands -[13]: https://opensource.com/users/don-watkins -[14]: https://www.redhat.com/sysadmin/linux-kernel-tuning -[15]: https://opensource.com/users/clhermansen -[16]: http://scribus.net -[17]: https://opensource.com/users/greg-p diff --git a/sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md b/sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md deleted file mode 100644 index 3e6109f32f..0000000000 --- a/sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md +++ /dev/null @@ -1,74 +0,0 @@ -[#]: subject: "What’s new in GNOME 43?" -[#]: via: "https://opensource.com/article/22/10/whats-new-gnome-43-linux" -[#]: author: "Jim Hall https://opensource.com/users/jim-hall" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -What’s new in GNOME 43? -====== - -I love the [GNOME][1] desktop, and I use it as my daily [Linux desktop environment][2]. I find with GNOME, I can focus on the stuff I need to get done, but I still have flexibility to make the desktop look and act the way I want. - -The GNOME Project recently released GNOME 43, the latest version of the GNOME desktop. I met with GNOME developer Emmanuele Bassi to ask a few questions about this latest release: - -**Jim Hall (Jim): GNOME has lots of great desktop features. What are some of the new features in GNOME 43?** - -**Emmanuele Bassi (Emmanuele):** GNOME 43 has a complete redesign of the system status menu in the Shell. The new design is meant to give quick and easy access to various settings: network connections and VPNs; audio input and output sources and volumes; toggling between light and dark styles. It also has a shortcut for taking a screenshot or starting a screen recording. - -GNOME core applications have also been ported to the new major version of the GNOME toolkit, GTK4. GTK4 is more efficient when it comes to its rendering pipeline, which leads to smoother transitions and animations. Additionally, GNOME applications use libadwaita, which provides new UI elements and adaptive layouts that can seamlessly scale between desktop and mobile form factors. - -The GNOME file manager, Nautilus, is one of the applications that has been ported over to GTK4 and libadwaita, and it has benefitted from the new features in the core platform; it’s now faster, and it adapts its UI when the window is resized. - -The system settings can now show device security information, including manufacturing errors and hardware misconfiguration, as well as possible security issues like device tampering. Lots of work is planned for future releases, as device security is an area of growing concern. - -**Jim: What do you love most about GNOME 43?** - -**Emmanuele:** The most important feature of GNOME, one that I constantly take advantage of and that I always miss when I have to deal with other operating systems is how much the OS does not get in the way of what I’m doing. Everything is designed to let me concentrate on my job, without interruptions. I don’t have bells and whistles constantly on my screen, competing for attention. Everything is neatly tucked away, ready to be used only when I need to. - -**Jim: Many folks are familiar with GNOME today, but may not be familiar with its history. How did GNOME get started?** - -**Emmanuele:** GNOME started in 1997, 25 years ago, as a project for using existing free and open source components to create a desktop environment for everyone that would be respectful of users’ and developers’ freedom. At the time there were only commercial desktops for Unix, or desktops that were based on non-free components. Being able to take the entire desktop, learn from it, and redistribute it has always been a powerful motivator for contributors—even commercial ones. - -Over the past 25 years, GNOME contributors have worked not just on making the desktop, but creating a platform capable of developing and distributing applications. - -**Jim: Open source projects keep going because of a strong community. What keeps the GNOME community strong?** - -**Emmanuele:** I don’t pretend to speak for everyone in the project, but for myself I think the main component is the respect of every voice within the community of contributors, which comes from the shared vision of creating an entirely free and open platform. We all know where we want to go, and we are all working towards the same goal. Sometimes, we may end up pulling in different directions, which is why donating to entities like the GNOME Foundation, which sponsor gatherings and conferences, is crucial: they allow a more comprehensive communication between all the involved parties, and at the end we get better results for it. - -GNOME also takes very seriously respectful communication between members of the community; we have a strong code of conduct, which is enforced within the community itself and covers all venues of communication, including in person events. - -**Jim: GNOME established the Human Interface Guidelines (HIG) to unify the GNOME design and GNOME app interfaces. How did the HIG come about?** - -**Emmanuele****:**The Human Interface Guidelines (HIG) came into being after Sun did a usability study on GNOME 1, one of the very first usability studies for a free software project. The findings from that study led to the creation of a standardized document that projects under the GNOME umbrella would have to follow, which is how we ended up with GNOME 2, back in 2002. - -The HIG was a rallying point and a symbol, a way to demonstrate that the entire project cared about usability and accessibility, and it provided the tools to both desktop and application developers to create a consistent user experience. - -Over the years, the HIG moved away from being a complete checklist of pixels of padding and grids of components, and instead it now provides design principles, UI patterns, conventions, and resources for contributors and application developers. The HIG now has its own implementation library, called libadwaita, which application developers can use when targeting GNOME, and immediately benefit from a deeper integration within the platform without having to re-implement the various styles and patterns manually. - -_Thanks to Emmanuele Bassi for answering this interview. You can find GNOME at_[_https://www.gnome.org/_][3] - -_Read the release announcement for GNOME 43 at_[_https://release.gnome.org/43/_][4] - -_Learn about what’s new in GNOME 43 for developers at_[_https://release.gnome.org/43/developers/_][5] - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/10/whats-new-gnome-43-linux - -作者:[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/article/19/12/gnome-linux-desktop -[2]: https://opensource.com/article/20/5/linux-desktops -[3]: https://www.gnome.org/ -[4]: https://release.gnome.org/43/ -[5]: https://release.gnome.org/43/developers/ From 90be12517205cc2d9951a157ffb3989e47135798 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 5 Feb 2023 14:22:49 +0800 Subject: [PATCH 316/357] RP @geekpi https://linux.cn/article-15512-1.html --- .../20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translated/tech => published}/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md (100%) diff --git a/translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md similarity index 100% rename from translated/tech/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md rename to published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md From 17d7944c7fbbe59868c7a07abfd6197046dad713 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 5 Feb 2023 14:27:51 +0800 Subject: [PATCH 317/357] RP @geekpi https://linux.cn/article-15512-1.html --- ... GNOME Screenshot Tool Old and New Methods.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md b/published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md index d36bc0f684..51da58de03 100644 --- a/published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md +++ b/published/20230119.1 ⭐️ GNOME Screenshot Tool Old and New Methods.md @@ -3,24 +3,24 @@ [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15512-1.html" -GNOME 截图工具:旧的和新的方法 +GNOME 截图工具的新旧截图方式 ====== -**以下是关于 GNOME 截图工具的细节,它的用法以及如何用旧的和现代的方法安装和启动它们。** +> 以下是关于 GNOME 截图工具的细节,它的用法、安装方法以及如何用新旧两种方式启动它们。 ![][1] 2022 年,GNOME 改变了其默认的截图工具,并将截图功能构建为 GNOME Shell 的一部分。它不再是一个独立的应用了。 -早些时候,GNOME 通过所有主要的 Linux 发行版,如 Ubuntu 和 Fedora,提供了一个本地 GTK 应用 gnome-screenshot。然而,从 [GNOME 42][2] 开始,这个功能已经被移除。因此从 [Ubuntu 22.04][3] 和 Fedora 36 开始,你只能得到以下新的截图 UI 作为默认的截图工具。 +早些时候,GNOME 为主要的 Linux 发行版,如 Ubuntu 和 Fedora,提供了一个原生的 GTK 应用 gnome-screenshot。然而,从 [GNOME 42][2] 开始,这个功能已经被移除。因此从 [Ubuntu 22.04][3] 和 Fedora 36 开始,你只能得到以下新的截图 UI 作为默认的截图工具。 -这一变化从根本上破坏了许多工作流程。因为它不是一个你可以单独启动的可执行文件,你只能依赖键盘上的 Print-Screen 键。而且只能通过应用搜索获得一个快捷方式。 +这一变化从根本上破坏了许多工作流程。因为它不是一个你可以单独启动的可执行文件,你只能依赖键盘上的 `Print-Screen` 键。而且只能通过应用搜索找到它的快捷方式。 -因此,在新的 GNOME 截图 UI 中捕捉有延迟的屏幕截图变得更有挑战性。 +因此,在新的 GNOME 截图 UI 中捕捉延迟的屏幕截图变得更有挑战性。 下面是一些你仍然可以使用旧的 GNOME 截图工具的方法,以及如何手动触发新的截图 UI。 @@ -38,7 +38,7 @@ sudo apt install gnome-screenshot sudo dnf install gnome-screenshot ``` -如果你在 **Arch Linux 或者 Manjaro Linux 中使用 GNOME 桌面**,那么使用下面的命令来安装它。 +如果你在 Arch Linux 或者 Manjaro Linux 中使用 GNOME 桌面,那么使用下面的命令来安装它。 ``` pacman -S gnome-desktop @@ -50,7 +50,7 @@ pacman -S gnome-desktop ![GNOME 截图主窗口(旧)][5] -为了进一步定制,你可以打开设置,从 Shell 的新 UI 中移除 Print-Screen 的按键绑定,并通过以下命令创建一个自定义的键盘快捷方式。 +为了进一步定制,你可以打开设置,从 GNOME Shell 的新 UI 中移除 `Print-Screen` 的按键绑定,并通过以下命令创建一个自定义的键盘快捷方式: ``` gnome-screenshot --window <窗口> @@ -60,13 +60,13 @@ gnome-screenshot <全屏> ### GNOME 截图 UI:如何通过命令行手动触发它 -当你从键盘上按下 Print-Screen 键时执行的函数是 [GNOME Shell 代码][6]的一部分。不幸的是,它被保护在 dbus API 内,你不能直接调用它。 +当你从键盘上按下 `Print-Screen` 键时执行的功能是 [GNOME Shell 代码][6] 的一部分。不幸的是,它被保护在 dbus API 内,你不能直接调用它。 这样做是为了让你在 Wayland 下安全,这样就不会有任意的代码通过任何脚本获得对 dbus 调用函数的访问。 -然而,这破坏了许多使用场景和人们多年来编写的脚本。例如,许多用户报告说 [Zoom][7] 在 GNOME-Wayland 下的视频会议通话[中断][8]就是因为这个原因,最终通过下面这个关闭安全模式的方法解决了这个问题。 +然而,这破坏了许多使用场景和人们多年来编写的脚本。例如,许多用户报告说 [Zoom][7] 在 GNOME-Wayland 下的视频会议通话 [中断][8] 就是因为这个原因,最终通过下面这个关闭安全模式的方法解决了这个问题。 -让我们看看如何关闭它并触发 gnome-shell 的截图 +让我们看看如何关闭它并触发 gnome-shell 的截图。 在使用下面的步骤之前,请谨慎行事。因为它可能会开放你的 GNOME Shell,让你任意访问脚本。请确保你知道你在做什么。 @@ -80,7 +80,7 @@ lg ![启动 looking glass][10] -在顶部选择 Evaluator,在命令窗口中,输入以下内容。然后点击回车。 +在顶部选择 “Evaluator”,在命令窗口中,输入以下内容。然后点击回车。 ``` global.context.unsafe_mode = true @@ -92,9 +92,9 @@ global.context.unsafe_mode = true ![验证][12] -现在按 esc 键关闭 looking glass。并打开一个终端。 +现在按 `Esc` 键关闭 “looking glass”。并打开一个终端。 -输入以下内容以启动截图工具。 +输入以下内容以启动截图工具: ``` gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.screenshotUI.open();' @@ -104,10 +104,10 @@ gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --met ![从 CLI 启动新的 GNOME Shell 截图 UI][13] -如果你想关闭它,再次打开 `lg` 并将其设置为 false。 +如果你想关闭它,再次打开 `lg` 并将其设置为 `false`。 ``` -global.context.unsafe_mode = true +global.context.unsafe_mode = false ``` ### 结束语 @@ -123,7 +123,7 @@ via: https://www.debugpoint.com/gnome-screenshot-tool-usage/ 作者:[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 a8ac8785d2b92a79b19ddc65863b2c64b9787b27 Mon Sep 17 00:00:00 2001 From: Peaksol Date: Sun, 5 Feb 2023 17:06:56 +0800 Subject: [PATCH 318/357] Update 20220616 9 Best Matrix Clients for Decentralized Messaging.md --- ...0220616 9 Best Matrix Clients for Decentralized Messaging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md b/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md index efe78ded0a..475c3985bb 100644 --- a/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md +++ b/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/best-matrix-clients/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Peaksol" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From ba6b0b09a0427af9f6e2bff3889b6644a875dac4 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 6 Feb 2023 08:47:43 +0800 Subject: [PATCH 319/357] translated --- ...w to use the Linux file manager for GNOME 2.md | 74 ------------------- ...w to use the Linux file manager for GNOME 2.md | 74 +++++++++++++++++++ 2 files changed, 74 insertions(+), 74 deletions(-) delete mode 100644 sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md create mode 100644 translated/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md diff --git a/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md b/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md deleted file mode 100644 index 7b70b8cfc4..0000000000 --- a/sources/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md +++ /dev/null @@ -1,74 +0,0 @@ -[#]: subject: "How to use the Linux file manager for GNOME 2" -[#]: via: "https://opensource.com/article/22/12/linux-file-manager-caja" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to use the Linux file manager for GNOME 2 -====== - -Before GNOME 3 there was (unsurprisingly) GNOME 2, which had gained an ardent fanbase during its reign as one of the common default Linux desktops. The [Mate project][1] (named after the _yerba mate_ plant) began as an effort to continue the GNOME 2 desktop, at first using GTK 2 (the toolkit GNOME 2 was based upon) and later incorporating GTK 3. Today, Mate delivers a familiar desktop environment that looks and feels exactly like GNOME 2 did, using the GTK 3 toolkit. Part of that desktop is the Caja file manager, a simple but robust application that helps you sort and organize your data. - -### Install Caja - -Caja isn't exactly a stand-alone application. It's tightly coupled to the Mate desktop, so to try it you must install Mate. - -You may find Mate included in your Linux distribution's software repository, or you can download and install a distribution that ships Mate as its default desktop. Before you do, though, be aware that it's meant to provide a full desktop experience, so many Mate apps are installed along with the desktop. If you're running a different desktop, you may find yourself with redundant applications (two PDF readers, two media players, two file managers, and so on). To evaluate Caja without making major changes to your computer, install a Mate-based distribution in a virtual machine using [GNOME Boxes][2]. - -![Image of the ​Caja file manager.][3] - -### Clear layout - -The thing that you're likely to notice first about Caja is its clear and direct layout. There's a toolbar across the top of the Caja window with buttons for common tasks. I love this kind of design. Function isn't hidden away in a right-click menu, nor discoverable only after an action, nor buried in a menu. The "obvious" actions for the window are listed right across the top. - -Under the main toolbar is the location bar. This displays your current path, either as a series of buttons or as editable text. Use the **Edit** button to the left of the path to toggle whether it's editable or not. - -### Configurable - -For longtime users of GNOME 2 or Caja, the main toolbar can be redundant, especially once you know the keyboard shortcuts to invoke common actions. That's why the Caja interface is configurable. You can disable major components of the Caja window from the **View** menu, including: - -- Main toolbar -- Location bar -- Side panel -- Extra panel -- Status bar - -In short, you can make Caja as minimal as you want it to be. - -![Image of ​a minimal Caja layout.][4] - -### Tag your folders - -Some people are "visual" people. They like to organize files and folders according to how they perceive their data, rather than how the computer interprets it. For instance, if the two most significant folders for you are **Music** and **Work**, it can be hard to convince a computer that there's any relationship between those two. Alphabetically, there's a lot that should get started between the two, and the contents of each may be completely different (media files in one, spreadsheets in another). - -### Caja offers some assistance. - -With Caja, you can place directories manually within a window, and Caja remembers that placement. What's more, Caja has a variety of emblems available for you to use as visual labels. You can find them in the **Edit** menu, in **Backgrounds and Emblems**. Drag and drop them onto files and folders to help them stand apart. - -![Image of emblems in Caja.][5] - -### Caja - -As file managers go, Caja is one of the most inviting. It's configurable enough to appeal to many different use cases, and in those configuration options, you're likely to find a workflow that works for you. If you're a fan of GNOME 2, then you're sure to find Caja familiar, and if you've never used GNOME 2 then you might just find your new favorite desktop in Mate. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/22/12/linux-file-manager-caja - -作者:[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/mate-linux-desktop -[2]: https://opensource.com/article/19/5/getting-started-gnome-boxes-virtualization -[3]: https://opensource.com/sites/default/files/2022-10/caja.file%20manager.png -[4]: https://opensource.com/sites/default/files/2022-10/caja-minimal-layout.png -[5]: https://opensource.com/sites/default/files/2022-10/caja-emblem.webp diff --git a/translated/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md b/translated/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md new file mode 100644 index 0000000000..a46007c0b9 --- /dev/null +++ b/translated/tech/20221210.0 ⭐️ How to use the Linux file manager for GNOME 2.md @@ -0,0 +1,74 @@ +[#]: subject: "How to use the Linux file manager for GNOME 2" +[#]: via: "https://opensource.com/article/22/12/linux-file-manager-caja" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何使用 GNOME 2 的 Linux 文件管理器 +====== + +在 GNOME 3 之前是 GNOME 2(毫不奇怪),在其作为常见的默认 Linux 桌面之一的统治期间,它已经获得了一个热心的粉丝群。[Mate项目][1](以 _yerba mate_ 植物命名)开始是为了延续 GNOME 2 的桌面,起初使用 GTK 2(基于 GNOME 2 的工具包),后来加入了 GTK 3。该桌面的一部分是 Caja 文件管理器,一个简单而强大的应用,可以帮助你分类和组织你的数据。 + +### 安装 Caja + +Caja 并不完全是一个独立的应用。它与 Mate 桌面紧密相连,所以要试用它,你必须安装 Mate。 + +你可能会发现 Mate 包含在你的 Linux 发行版的仓库中,或者你可以下载并安装一个将 Mate 作为默认桌面的发行版。不过,在你安装之前,要注意它是为了提供完整的桌面体验,所以许多 Mate 应用会和桌面一起安装。如果你运行一个不同的桌面,你可能会发现自己有多余的应用(两个 PDF 阅读器,两个媒体播放器,两个文件管理器,等等)。要评估 Caja 不会对你的电脑做重大改动,可以使用 [GNOME Boxes][2] 在虚拟机中安装一个基于 Mate 的发行版。 + +![Image of the Caja file manager.][3] + +### Clear 布局 + +你可能首先注意到的是 Caja 的清晰和直接的布局。在 Caja 窗口的顶部有一个工具栏,上面有一些常用任务的按钮。我喜欢这样的设计。功能不是隐藏在右键菜单中,也不是只有在操作后才能发现,更不是埋在菜单中。窗口的“显而易见”的操作被直接列在上面。 + +主工具栏下面是位置栏。它显示你当前的路径,可以是一系列的按钮,也可以是可编辑的文本。使用路径左边的**编辑**按钮来切换它是否可编辑。 + +### 可配置 + +对于 GNOME 2 或 Caja 的长期用户来说,主工具栏可能是多余的,尤其是当你知道了调用常用操作的键盘快捷键后。这就是为什么 Caja 的界面是可配置的。你可以从**查看**菜单中禁用Caja窗口的主要组件,包括: + +- 主工具条 +- 位置栏 +- 侧板 +- 额外面板 +- 状态栏 + +简而言之,你可以把 Caja 变成你想要的最小的样子。 + +![Image of a minimal Caja layout.][4] + +### 标记你的文件夹 + +有些人是“可视化”人。他们喜欢根据自己对数据的看法来组织文件和文件夹,而不是根据计算机对数据的解释。例如,如果对你来说最重要的两个文件夹是**音乐**和**工作**,就很难让计算机相信这两者之间有任何关系。按字母顺序,两者之间有很多应该开始的地方,而且每个文件夹的内容可能完全不同(一个是媒体文件,另一个是电子表格)。 + +### Caja 提供了一些帮助 + +使用 Caja,你可以在一个窗口内手动放置目录,Caja 会记住这个位置。更重要的是,Caja 有多种标志可供你用作视觉标签。你可以在**编辑**菜单的**背景和标志**中找到它们。将它们拖放到文件和文件夹中以帮助它们区分。 + +![Image of emblems in Caja.][5] + +### Caja + +作为文件管理器,Caja 是最诱人的之一。它的可配置性足以吸引许多不同的使用场景,而且在这些配置选项中,你很可能找到适合你的工作流程。如果你是 GNOME 2 的粉丝,那么你肯定会发现 Caja 很熟悉,如果你从来没有使用过 GNOME 2,那么你可能会在 Mate 中找到你的新宠桌面。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/22/12/linux-file-manager-caja + +作者:[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/mate-linux-desktop +[2]: https://opensource.com/article/19/5/getting-started-gnome-boxes-virtualization +[3]: https://opensource.com/sites/default/files/2022-10/caja.file%20manager.png +[4]: https://opensource.com/sites/default/files/2022-10/caja-minimal-layout.png +[5]: https://opensource.com/sites/default/files/2022-10/caja-emblem.webp From dd194582464233a49bfc5a6916fd8eefa623de07 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 6 Feb 2023 08:50:39 +0800 Subject: [PATCH 320/357] translating --- sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md b/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md index 87ca9f035b..e3dcaeff4a 100644 --- a/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md +++ b/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/2/learn-basic-coding-game" [#]: author: "Moshe Zadka https://opensource.com/users/moshez" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 27406e839482cd6ce1303801cf28883a1e01a0f9 Mon Sep 17 00:00:00 2001 From: Peaksol Date: Mon, 6 Feb 2023 10:12:14 +0800 Subject: [PATCH 321/357] Translated --- ...rix Clients for Decentralized Messaging.md | 207 ----------------- ...rix Clients for Decentralized Messaging.md | 215 ++++++++++++++++++ 2 files changed, 215 insertions(+), 207 deletions(-) delete mode 100644 sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md create mode 100644 translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md diff --git a/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md b/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md deleted file mode 100644 index 475c3985bb..0000000000 --- a/sources/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md +++ /dev/null @@ -1,207 +0,0 @@ -[#]: subject: "9 Best Matrix Clients for Decentralized Messaging" -[#]: via: "https://itsfoss.com/best-matrix-clients/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "Peaksol" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -9 Best Matrix Clients for Decentralized Messaging -====== -Matrix is an open network standard tailored for secure decentralized real-time communication. - -It is published and maintained by a non-profit, Matrix.org Foundation. They aim to create an open, independent, and evolving communication platform. - -If an application supports the Matrix protocol, you can consider it a Matrix client. - -### Why Should You Choose a Matrix Client? - -[Matrix][1] clients focus on security and privacy and offer a decentralized network that provides opportunities for numerous things. - -Since 2019 (when it got out of beta), several organizations and government authorities have gradually adopted the Matrix protocol to empower their communication platforms for security, privacy, and reliability. - -For instance, a decentralized protocol makes way for cross-communication between organizations and gives you a communication protocol that is resistant to censorship. - -Matrix protocol is the right choice if you want something that gets you away from the big tech. - -Not just limited to that, you also get the ability to run your server to join the Matrix network. In other words, you get a decentralized infrastructure for communication while still having some control over it to set it up and configure it as per your requirements. - -In case you are curious, Matrix protocol has all the essential features one would need, including: - -* Decentralized conversations -* End-to-End encryption -* WebRTC VoIP/Video calling -* Real-time sync -* Read receipts -* Typing Notifications -* Group conversations - -And, I should highlight this again: It is an **open-source** project! - -So, it is a no-brainer to opt for Matrix clients, especially now that more users care about their privacy and security. - -### 9 Top Open-Source Matrix Clients - -Here, I shall highlight some of the most helpful Matrix clients, primarily for desktop (Linux, Windows, macOS), while also mentioning mobile and terminal clients. - -#### 1. Element - -![element][2] - -[Element][3] is one of the best open-source Slack alternatives. You can use it for personal communication and team chat as well. - -It is free to get started, but you do have options to self-host your server or pay a premium for a managed home server. You get various useful features to collaborate effectively and securely communicate with your team/friends. - -If you opt to pay for a subscription, you can even choose to bring your Signal, WhatsApp, and Telegram chats into a single place. - -It supports Linux, Windows, and macOS while offering a proper mobile client for Android and iOS. Additionally, you can use it through the web browser. So, it should be a convenient option. - -[Element][4] - -#### 2. Rocket.Chat - -![rocket chat][5] - -[Rocket.Chat][6] is yet another Slack alternative, which we prefer to use for our internal team communication. - -It is available for Linux, Windows, and macOS. You also get mobile applications for Android and iOS. - -While it gives you the option to self-host or opt for a premium subscription, it also announced that it is adding [support for Matrix protocol integration][7]. - -When writing this, the Matrix network can be utilized using an alpha build. However, the stable build for it should be around the corner. So, if you are already using Rocket.Chat, or want to use it as a Matrix client, you might want to keep an eye on its upcoming releases. - -[Rocket.Chat][8] - -#### 3. NeoChat - -![neochat][9] - -NeoChat is a simple Matrix client actively developed under KDE’s umbrella. - -Unlike Element, it is only available for Linux and Windows, and particularly tailored for KDE Plasma. You can use it on other desktop environments as well. - -You can install it through KDE’s Discover software center, Flathub, and Snap Store. It is not available for mobile platforms. So, it can be a good candidate for desktop users who prefer a straightforward Matrix client. - -Check out its [source code][10] to explore more about it. - -[NeoChat][11] - -#### 4. FluffyChat - -![fluffychat][12] - -FluffyChat makes up for a good-looking (cute) Matrix client in terms of user experience. - -If you want a simple and intuitive Matrix client on your desktop with mobile apps (Android and iOS) available, FluffyChat is an impressive option. - -For Linux, you can install it from the Snap Store or the Flathub. It does not offer native apps for Windows and macOS, but you can use it through the web browser. - -If you are curious, you can check out its [GitLab page][13] to know more. - -[FluffyChat][14] - -#### 5. Fractal - -![fractal][15] - -Fractal is a Matrix messaging client for GNOME desktop, written in Rust. As per its description, it provides an optimized interface fit for collaboration in large groups. - -Considering it is available as a Flatpak, you can install it on any Linux distribution, irrespective of the desktop environment. - -Fractal seems an excellent option for users who focus on applications that perform the fastest on their system. You can head to its [GitLab page][16] to research more about it. - -[Fractal][17] - -#### 6. Hydrogen Web (Experimental) - -![hydrogen][18] - -Looking for another minimal (performance-focused) Matrix client? - -Hydrogen is a chat client that aims to provide a lightweight experience, offline functionality, and wide browser support. - -While it is still a work in progress, it is being developed by the same team behind the Element messenger. So, if you longingly expect a lightweight Matrix client as an alternative to others, you might want to follow the project on its [GitHub page][19]. - -[Hydrogen][20] - -#### 7. Matrix Commander (CLI-based) - -This command-line tool can be the perfect fit if you want to use the terminal to send/receive text messages via the Matrix network. - -Of course, you cannot do everything from the terminal. So, it is best suited for creating cron jobs for message reminders, or bots, and similar use-cases. - -You can find it on [PyPi][21] and Docker Hub as well. - -[Matrix Commander][22] - -#### 8. Gomuks (CLI-based) - -![gomuks][23] - -Need a terminal-based Matrix client written in Go? - -Not for everyone to try. But, if you are someone who likes to use command-line tools written in Go, Gomuks can be a straightforward Matrix client for basic messaging. - -You can find the binaries for Linux, Windows, and macOS on its [GitHub releases section][24]. - -[Gomuks][25] - -#### 9. Syphon (Alpha) - -![syphon][26] - -We usually avoid listing programs in their early stages of development. However, Syphon is an interesting option as a mobile-exclusive Matrix client. - -If you want a Signal-like open-source Matrix client for your Android/iOS device, Syphon can be an exciting choice. The user interface looks familiar (but not an exact copy of it). You can try it out if you are looking to experiment. - -[Syphon][27] - -### Wrapping Up - -Matrix protocol may not be entirely popular across every organization and demographic. However, it is proving to be one of the most robust decentralized networks for privacy and reliability as an open-source project. - -The best thing is that you get to choose the client you want, without being forced to use a particular app for communication across multiple devices. - -So, what would you choose as your favorite Matrix client? - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/best-matrix-clients/ - -作者:[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://matrix.org/ -[2]: https://itsfoss.com/wp-content/uploads/2022/06/element-2022.jpg -[3]: https://itsfoss.com/element/ -[4]: https://element.io/ -[5]: https://itsfoss.com/wp-content/uploads/2022/06/rocket-chat-2022.jpg -[6]: https://itsfoss.com/rocket-chat/ -[7]: https://news.itsfoss.com/rocket-chat-matrix/ -[8]: https://rocket.chat/ -[9]: https://itsfoss.com/wp-content/uploads/2022/06/neochat.png -[10]: https://invent.kde.org/network/neochat -[11]: https://apps.kde.org/neochat/ -[12]: https://itsfoss.com/wp-content/uploads/2022/06/fluffychat.png -[13]: https://gitlab.com/famedly/fluffychat -[14]: https://fluffychat.im/ -[15]: https://itsfoss.com/wp-content/uploads/2022/06/fractal.png -[16]: https://gitlab.gnome.org/GNOME/fractal -[17]: https://wiki.gnome.org/Apps/Fractal -[18]: https://itsfoss.com/wp-content/uploads/2022/06/hydrogen.png -[19]: https://github.com/vector-im/hydrogen-web/ -[20]: https://github.com/vector-im/hydrogen-web/ -[21]: https://pypi.org/project/matrix-commander/ -[22]: https://github.com/8go/matrix-commander -[23]: https://itsfoss.com/wp-content/uploads/2022/06/gomuks.png -[24]: https://github.com/tulir/gomuks/releases -[25]: https://maunium.net/go/gomuks/ -[26]: https://itsfoss.com/wp-content/uploads/2022/06/syphon.jpg -[27]: https://syphon.org/ diff --git a/translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md b/translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md new file mode 100644 index 0000000000..2c0269445b --- /dev/null +++ b/translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md @@ -0,0 +1,215 @@ +[#]: subject: "9 Best Matrix Clients for Decentralized Messaging" +[#]: via: "https://itsfoss.com/best-matrix-clients/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +9 款最佳的去中心化聊天 Matrix 客户端 +====== +Matrix 是一套开放的网络标准,专用于去中心化实时加密通讯。 + +这套标准由 Matrix.org 基金会发布和维护。Matrix.org 基金会是一个非盈利性组织,致力于创建一个开放、独立且不断演进的通讯平台。 + +如果一款应用支持 Matrix 协议,那就可以视它为 Matrix 客户端。 + +### 为何要选用 Matrix 客户端? + +[Matrix][1] 客户端致力于安全性和隐私性,并且实现了去中心化的网络,令许多特性得以实现。 + +自 2019 年(正式版本发布)以来,部分组织以及政府机构便开始逐渐采用 Matrix 协议,从而搭建安全、隐私、可靠的通讯平台。 + +就实际而言,去中心化的协议实现了不同组织间的相互通讯,同时也使得这个通讯协议得以抵抗审查。 + +如果你想要逃脱科技巨头的魔爪,那 Matrix 就是正确的选择。 + +不仅如此,你还可以运行自己的服务器,并加入 Matrix 网络。换言之,通讯的基础设施是去中心化的,但你仍然能够根据需要,对其部分进行部署和配置。 + +如果你好奇的话,Matrix 协议具备了你需要的所有基本功能: + +* 去中心化交流 +* 端到端加密 +* WebRTC 语音通话 / 视频通话 +* 实时同步 +* 消息已读用户显示 +* “正在输入中” 提示 +* 群组聊天 + +而且,我还要再强调一次:这个项目是**开源**的! + +所以,Matrix 客户端已经是不二之选了。对那些注重隐私和安全的用户来说,则更是如此。 + +> 译注:实际上,Matrix 只是在隐私和便利之间达成了一种相对的平衡。它是将类似 Mastodon 的联邦(federated)网络结构用在了聊天中,也就是说,虽然整个网络去中心化成了许多节点,但节点服务器的运营者仍然能对其用户进行少量掌控。但总的来说,相对那些中心化的聊天应用而言,Matrix 是个值得考虑的替代品。 + +### 9 款最佳的开源 Matrix 客户端 + +本文中,我将介绍一些最好用的 Matrix 客户端,其中主要是桌面客户端(Linux、Windows、macOS),同时也推荐一些移动客户端和终端客户端。 + +#### 1. Element + +![element][2] + +[Element][3] 是最佳的 Slack 开源替代品之一。它可以用于个人通讯,也能用于群组聊天。 + +你可以免费开始使用,不过你也可以选择自己搭建服务器,或者在其他节点服务器上付费使用。Element 提供了许多有用的功能,让你能够高效协作,并与你的团队或好友加密通讯。 + +> 译注:如同 Mastodon 一样,自费搭建服务器或者付费使用服务器,对大部分用户而言都是不必要的。初学者建议前往 ,并选择一个现有的服务器进行注册,其中许多服务器都是免费开放注册,并且国内可以连接的。下述的订阅功能也并不是必要的。 + +如果你选择订阅,你还能将 Signal、WhatsApp 和 Telegram 聊天并入其中。 + +它支持 Linux、Windows 和 macOS,同时还提供 Android 和 iOS 的手机客户端。并且,你还能在网页浏览器中使用它。因此,这是个方便的选择。 + +> 译注:国内用户可能会在桌面客户端遇到错误,导致无法使用 Element。这是因为它在首次启动会连接 matrix.org,但是国内用户无法访问这个地址。要解决此问题,须手动修改配置文件(篇幅有限,详见相关教程)。实在无法解决,可使用基于 Element 的 [SchildiChat](https://schildi.chat/),或下文列出的其他客户端。 + +[Element][4] + +#### 2. Rocket.Chat + +![rocket chat][5] + +[Rocket.Chat][6] 是另一个 Slack 替代品,我们更喜欢把它当成团队内部的通讯工具。 + +你可以在 Linux、Windows 和 macOS 上使用它,也可以获取 Android 和 iOS 的手机应用。 + +尽管你可以选择自建服务器或订阅会员,但它也宣布了添加 [Matrix 协议的支持][7]。 + +本文创作之时,已经可以在 alpha 版中使用 Matrix 网络。不过,稳定版应该很快就会发布了。所以,如果你已经在使用 Rocket.Chat,或者想把它当作 Matrix 客户端来使用,那么敬请关注后续版本的发布。 + +[Rocket.Chat][8] + +#### 3. NeoChat + +![neochat][9] + +NeoChat 是一个简单的 Matrix 客户端,目前在 KDE 家族中进行活跃开发。 + +与 Element 不同,它只支持 Linux 和 Windows,而且尤其用于 KDE Plasma。你也可以在其他桌面环境使用它。 + +你可以在 KDE 的 Discover 软件中心、Flathub 以及 Snap 商店安装它。它不支持手机平台。所以,如果有桌面用户想要一个简单的 Matrix 客户端,那 NeoChat 也是一个不错的选择。 + +> 译注:纠正一下,NeoChat 也支持 Android,可直接下载二进制,也可在 F-Droid 中添加 KDE 仓库后下载。除此之外,它还支持 MacOS。详见其源代码仓库。 + +了解更多,可以查看它的 [源代码][10]。 + +[NeoChat][11] + +#### 4. FluffyChat + +![fluffychat][12] + +FluffyChat 在用户体验方面,是一个美观(可爱)的 Matrix 客户端。 + +如果你想要一个简单又直观的 Matrix 客户端,并且支持桌面和手机(Android 和 iOS),那么 FluffyChat 是一个不错的选择。 + +Linux 用户可以从 Snap 商店或 Flathub 安装它。他并不提供 Windows 和 macOS 的原生应用支持,但你可以在网页浏览器中使用它。 + +如果你好奇的话,可以从它的 [GitLab 页面][13] 了解更多。 + +[FluffyChat][14] + +#### 5. Fractal + +![fractal][15] + +Fractal 是一款用于 GNOME 桌面的 Matrix 聊天客户端,使用 Rust 编写。正如其描述所说,它的界面经过优化,适合大型群组的协作。 + +由于它以 Flatpak 的形式发布,你可以在任何 Linux 发行版上安装它,无论桌面环境如何。 + +如果你喜欢能够在系统上快速运行的应用,那 Fractal 可能是不错的选择。可以前往它的 [GitLab 页面][16] 了解更多。 + +[Fractal][17] + +#### 6. Hydrogen Web (实验性) + +![hydrogen][18] + +在找别的轻量级(专注性能)的 Matrix 客户端吗? + +Hydrogen 聊天客户端提供轻量级体验、离线功能,并有着广泛的浏览器支持。 + +虽然仍未完工,但 Element 背后的同一支团队正在开发着它。所以,如果你期待看到一个轻量的 Matrix 客户端替代品,你可以在它的 [GitHub 页面][19] 跟进该项目。 + +[Hydrogen][20] + +#### 7. Matrix Commander (基于 CLI) + +如果你想要用终端在 Matrix 网络上来收发文字消息,这个命令行工具就十分不错。 + +当然,并非一切都能在终端完成。所以,最好创建 cron 任务来实现消息提醒、机器人等用例。 + +你可以在 [PyPi][21] 或者 Docker Hub 上找到它。 + +[Matrix Commander][22] + +#### 8. Gomuks (基于 CLI) + +![gomuks][23] + +想试试用 Go 写的终端 Matrix 客户端? + +并非每个人都可以尝试。不过,如果你喜欢用 Go 写的命令行工具,可以用 Gomuks 这个简单的 Matrix 客户端来进行基本聊天。 + +你可以在它的 [GitHub Releases 部分][24] 找到其 Linux、Windows 和 macOS 的二进制文件。 + +[Gomuks][25] + +#### 9. Syphon (Alpha) + +![syphon][26] + +我们通常会避免列出仍处于早期开发的程序。但是,Syphon 作为一个手机专用的 Matrix 客户端,是一个有趣的选择。 + +如果你想要为你的 Android/iOS 设备安装一个类似 Signal 的开源 Matrix 客户端,那选择 Syphon 也不错。用户界面看起来很熟悉(但并不是完全照抄的)。如果你想实验一下,那可以试试。 + +[Syphon][27] + +### 总结 + +Matrix 协议也许没能流行于所有组织和人群之中。但是,可以证明的是,作为一个开源项目,它能称得上是一个隐私可靠的去中心化网络。 + +最好的一点在于,你可以选择你想要的客户端,而不必被迫使用特定的应用才能在多个设备之间进行通信。 + +所以,最好的 Matrix 客户端,你选哪一个? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/best-matrix-clients/ + +作者:[Ankush Das][a] +选题:[lkxed][b] +译者:[Peaksol](https://github.com/TravinDreek) +校对:[校对者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://matrix.org/ +[2]: https://itsfoss.com/content/images/wordpress/2022/06/element-2022.jpg +[3]: https://itsfoss.com/element/ +[4]: https://element.io/ +[5]: https://itsfoss.com/content/images/wordpress/2022/06/rocket-chat-2022.jpg +[6]: https://itsfoss.com/rocket-chat/ +[7]: https://news.itsfoss.com/rocket-chat-matrix/ +[8]: https://rocket.chat/ +[9]: https://itsfoss.com/content/images/wordpress/2022/06/neochat.png +[10]: https://invent.kde.org/network/neochat +[11]: https://apps.kde.org/neochat/ +[12]: https://itsfoss.com/content/images/wordpress/2022/06/fluffychat.png +[13]: https://gitlab.com/famedly/fluffychat +[14]: https://fluffychat.im/ +[15]: https://itsfoss.com/content/images/wordpress/2022/06/fractal.png +[16]: https://gitlab.gnome.org/GNOME/fractal +[17]: https://wiki.gnome.org/Apps/Fractal +[18]:https://itsfoss.com/content/images/wordpress/2022/06/hydrogen.png +[19]: https://github.com/vector-im/hydrogen-web/ +[20]: https://github.com/vector-im/hydrogen-web/ +[21]: https://pypi.org/project/matrix-commander/ +[22]: https://github.com/8go/matrix-commander +[23]: https://itsfoss.com/content/images/wordpress/2022/06/gomuks.png +[24]: https://github.com/tulir/gomuks/releases +[25]: https://maunium.net/go/gomuks/ +[26]: https://itsfoss.com/content/images/wordpress/2022/06/syphon.jpg +[27]: https://syphon.org/ From 326f9e6eac2e5ffcf6c41f6457170fcd1bdc8c76 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 6 Feb 2023 15:57:52 +0800 Subject: [PATCH 322/357] RP @geekpi https://linux.cn/article-15514-1.html --- ...ver the power of the Linux SpaceFM file manager.md | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) rename {translated/tech => published}/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md (55%) diff --git a/translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md b/published/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md similarity index 55% rename from translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md rename to published/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md index 000421e242..fc4c8e57f9 100644 --- a/translated/tech/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md +++ b/published/20221219.2 ⭐️⭐️ Discover the power of the Linux SpaceFM file manager.md @@ -3,14 +3,18 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15514-1.html" -发现 Linux SpaceFM 文件管理器的强大 +发现 Linux SpaceFM 文件管理器的威力 ====== -SpaceFM 是一个使用 GTK 工具包的 Linux 的标签式文件管理器,所以它很适合在 [GNOME][1]、[Mate][2]、[Cinnamon][3] 等的桌面上使用。SpaceFM 还具有一个内置的设备管理器系统,所以它特别适合于窗口管理器,像 [Fluxbox][4] 或 [fvwm][5],它们通常不包括一个图形设备管理器。如果你对 Linux 上的文件管理器满意,但你想尝试一个设计上有点不同的文件管理器,SpaceFM 值得一看。 +![][0] + +> 如果你对 Linux 上的文件管理器感到满意,但你想尝试一个设计上有点不同的文件管理器,SpaceFM 值得一看。 + +SpaceFM 是一个使用 GTK 工具包的 Linux 的标签式文件管理器,所以它很适合在 [GNOME][1]、[Mate][2]、[Cinnamon][3] 等的桌面上使用。SpaceFM 还具有一个内置的设备管理器系统,所以它特别适合于 [Fluxbox][4] 或 [fvwm][5] 之类的窗口管理器,它们通常不包括图形设备管理器。如果你对 Linux 上的文件管理器满意,但你想尝试一个设计上有点不同的文件管理器,SpaceFM 值得一看。 ### 安装 SpaceFM @@ -28,7 +32,7 @@ $ sudo apt install spacefm ### 面板 -我不知道为什么 SpaceFM 被称为 SpaceFM,但可能是因为它做出了一致的努力,让你把窗口中的每一点空间都用来做有用的事情。默认情况下,SpaceFM 实际上是相当简单的、标准的文件管理器。它有一个列出你的文件的面板,一个工具栏,和一个菜单栏。 +我不知道为什么 SpaceFM 被称为 SpaceFM,但可能是因为它致力于让你把窗口中的每一点空间都用来做有用的事情。默认情况下,SpaceFM 实际上是相当简单的、标准的文件管理器。它有一个列出你的文件的面板,一个工具栏,和一个菜单栏。 ![SpaceFM is typical in design. At first.][6] @@ -37,38 +41,38 @@ $ sudo apt install spacefm - **双击**打开一个目录或在其默认的应用中打开一个文件。 - **右键点击**可获得一个上下文菜单,提供许多标准选项(复制、粘贴、重命名、查看属性、创建新文件夹,等等)。 -不过,SpaceFM 使自己与众不同的方式是它的面板系统。SpaceFM 默认显示一个面板。这就是列出你的文件的大文件窗口。但它最多可以有四个面板视图,再加上一些用于某些特定任务的额外面板。 +不过,SpaceFM 使自己与众不同的方式是它的面板系统。SpaceFM 默认显示一个面板。这就是占据大部分空间的文件列表窗口。但它最多可以有四个面板视图,再加上一些用于某些特定任务的额外面板。 ### 打开一个新的面板 -在你的文件管理器中,你可以看到两个目录,而不是看到一个目录。要在自己的窗格中调出另一个目录,按 **Ctrl+2** 或进入**视图**菜单,选择 **Panel 2**。或者,点击菜单面板中从左开始的第二个绿点图标。 +在你的文件管理器中,你可以看到两个目录,而不是看到一个目录。要在自己的窗格中调出另一个目录,按 `Ctrl+2` 或进入 “视图View” 菜单,选择 “面板二Panel 2”。或者,点击菜单面板中从左开始的第二个绿点图标。 有了两个面板,你可以把文件从一个目录移到另一个目录,而不需要打开一个新的文件管理器窗口,或者你可以浏览两个目录来比较其内容。 -但为什么要满足于两个面板呢?也许你更想一次看到三个目录。要在一个专门的窗格中调出第三个目录,请按 **Ctrl+3** 或进入**查看**菜单,选择 **Panel 3**。或者,点击菜单面板中从左开始的第三个绿点图标。这个面板出现在 SpaceFM 窗口的底部。 +但为什么要满足于两个面板呢?也许你更想一次看到三个目录。要在一个专门的窗格中调出第三个目录,请按 `Ctrl+3` 或进入 “视图View” 菜单,选择 “面板三Panel 3”。或者,点击菜单面板中从左开始的第三个绿点图标。这个面板出现在 SpaceFM 窗口的底部。 打开三个面板后,你可以在几个目录之间移动文件,或将文件从一个公共的“垃圾场”(如你的桌面或下载文件夹)分类到特定的目录。 -当然,当你尝试了三个面板,你可能会发现自己很想拥有第四个面板。要在自己的窗格中打开第四个目录,按 **Ctrl+4** 或进入**查看**菜单,选择 **Panel 4**。或者,点击菜单面板中从左开始的第四个绿点图标。这个会在面板 3 旁边打开,并将你的 SpaceFM 窗口分成四份。 +当然,当你尝试了三个面板,你可能会发现自己很想拥有第四个面板。要在自己的窗格中打开第四个目录,以此类推。或者,点击菜单面板中从左开始的第四个绿点图标。这个会在面板三旁边打开,并将你的 SpaceFM 窗口分成四份。 ![SpaceFM can have up to four panels.][7] -那么_第五个_面板呢?好吧,实际上 SpaceFM 仅有四个面板。如果你真的想有第五个面板,你必须打开一个新的 SpaceFM 窗口。然而,仍有更多的面板,用于文件列表以外的信息,可供探索。 +那么 _第五个_ 面板呢?好吧,实际上 SpaceFM 仅有四个面板。如果你真的想有第五个面板,你必须打开一个新的 SpaceFM 窗口。然而,仍有更多的面板,用于文件列表以外的信息,可供探索。 ### 特殊面板 -在**查看**菜单中可以看到,除了文件面板外,还有一些特定的任务面板可以选择显示。这包括: +在 “视图View” 菜单中可以看到,除了文件面板外,还有一些特定的任务面板可以选择显示。这包括: -- **任务管理器**:列出正在进行的文件管理器进程。这不是一个通用的任务管理器,所以要设置 nice 值或检测僵尸 PID,[htop 或 top][8] 仍然是你选择的工具。 -- **书签**:常用文件夹的链接,如桌面、文档、下载和任何你想保持方便的位置。 -- **设备**:USB 驱动器和远程文件系统。 -- **文件树**:按照目录继承顺序查看文件系统。 +- “任务管理器Task manager”:列出正在进行的文件管理器进程。这不是一个通用的任务管理器,所以要设置 nice 值或检测僵尸 PID,[htop 或 top][8] 仍然是你应该选择的工具。 +- “书签Bookmarks”:常用文件夹的链接,如桌面、文档、下载和任何你想保持方便的位置。 +- “设备Devices”:USB 驱动器和远程文件系统。 +- “文件树File tree”:按照目录继承顺序查看文件系统。 这些面板在 SpaceFM 的左侧打开,但它们是堆叠的。你可以同时打开书签、设备、任务和文件树,尽管它会有一个非常高的 SpaceFM 窗口。 ### 为 SpaceFM 腾出空间 -SpaceFM 是一个可配置的多任务文件管理器。它最大限度地增加了你可以在一个窗口中展示的信息,并让你决定什么是重要的,以及什么时候重要。本文重点介绍了 SpaceFM 的面板,因为至少在我看来,这些是该应用最独特的方面。然而,SpaceFM 还有很多东西,包括插件、首选项、设计模式、键盘快捷键和自定义。这不是一个小的应用,尽管它是一个轻量级的。花些时间在 SpaceFM 上,因为你永远不知道你会发现什么。 +SpaceFM 是一个可配置的多任务文件管理器。它最大限度地增加了你可以在一个窗口中展示的信息,并让你决定什么是重要的,以及什么时候重要。本文重点介绍了 SpaceFM 的面板,因为至少在我看来,这些是该应用最独特的方面。然而,SpaceFM 还有很多东西,包括插件、首选项、设计模式、键盘快捷键和自定义。这不是一个小型应用,尽管它是轻量级的。花些时间在 SpaceFM 上,因为你永远不知道你会发现什么。 -------------------------------------------------------------------------------- @@ -77,7 +81,7 @@ via: https://opensource.com/article/22/12/linux-file-manager-spacefm 作者:[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/) 荣誉推出 @@ -91,3 +95,4 @@ via: https://opensource.com/article/22/12/linux-file-manager-spacefm [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 +[0]: https://img.linux.net.cn/data/attachment/album/202302/06/155511zdru3ulr4xmxeekj.jpg \ No newline at end of file From 8aefc8abe1978f82d9b91570a4acaf3a9eb5fd54 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 6 Feb 2023 16:41:38 +0800 Subject: [PATCH 323/357] RP @TravinDreek https://linux.cn/article-15515-1.html --- ...rix Clients for Decentralized Messaging.md | 90 ++++++++++--------- 1 file changed, 47 insertions(+), 43 deletions(-) rename {translated/tech => published}/20220616 9 Best Matrix Clients for Decentralized Messaging.md (64%) diff --git a/translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md b/published/20220616 9 Best Matrix Clients for Decentralized Messaging.md similarity index 64% rename from translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md rename to published/20220616 9 Best Matrix Clients for Decentralized Messaging.md index 2c0269445b..2fb8b50590 100644 --- a/translated/tech/20220616 9 Best Matrix Clients for Decentralized Messaging.md +++ b/published/20220616 9 Best Matrix Clients for Decentralized Messaging.md @@ -2,22 +2,25 @@ [#]: via: "https://itsfoss.com/best-matrix-clients/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: translator: "TravinDreek" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15515-1.html" -9 款最佳的去中心化聊天 Matrix 客户端 +9 款最佳的去中心化通讯软件 Matrix 的客户端 ====== + +![][0] + Matrix 是一套开放的网络标准,专用于去中心化实时加密通讯。 -这套标准由 Matrix.org 基金会发布和维护。Matrix.org 基金会是一个非盈利性组织,致力于创建一个开放、独立且不断演进的通讯平台。 +这套标准由 Matrix.org 基金会发布和维护。Matrix.org 基金会是一个非营利性组织,致力于创建一个开放、独立且不断演进的通讯平台。 如果一款应用支持 Matrix 协议,那就可以视它为 Matrix 客户端。 ### 为何要选用 Matrix 客户端? -[Matrix][1] 客户端致力于安全性和隐私性,并且实现了去中心化的网络,令许多特性得以实现。 +[Matrix][1] 客户端致力于安全性和隐私性,并且提供了一个去中心化的网络,令许多特性得以实现。 自 2019 年(正式版本发布)以来,部分组织以及政府机构便开始逐渐采用 Matrix 协议,从而搭建安全、隐私、可靠的通讯平台。 @@ -25,7 +28,7 @@ Matrix 是一套开放的网络标准,专用于去中心化实时加密通讯 如果你想要逃脱科技巨头的魔爪,那 Matrix 就是正确的选择。 -不仅如此,你还可以运行自己的服务器,并加入 Matrix 网络。换言之,通讯的基础设施是去中心化的,但你仍然能够根据需要,对其部分进行部署和配置。 +不仅如此,你还可以运行自己的服务器,并加入 Matrix 网络。换言之,通讯的基础设施是去中心化的,但你仍然能够根据需要,对其进行部署和配置。 如果你好奇的话,Matrix 协议具备了你需要的所有基本功能: @@ -41,31 +44,31 @@ Matrix 是一套开放的网络标准,专用于去中心化实时加密通讯 所以,Matrix 客户端已经是不二之选了。对那些注重隐私和安全的用户来说,则更是如此。 -> 译注:实际上,Matrix 只是在隐私和便利之间达成了一种相对的平衡。它是将类似 Mastodon 的联邦(federated)网络结构用在了聊天中,也就是说,虽然整个网络去中心化成了许多节点,但节点服务器的运营者仍然能对其用户进行少量掌控。但总的来说,相对那些中心化的聊天应用而言,Matrix 是个值得考虑的替代品。 +> LCTT 译注:实际上,Matrix 只是在隐私和便利之间达成了一种相对的平衡。它是将类似 Mastodon 的 联邦federated 网络结构用在了聊天中,也就是说,虽然整个网络去中心化成了许多节点,但节点服务器的运营者仍然能对其用户进行少量掌控。但总的来说,相对那些中心化的聊天应用而言,Matrix 是个值得考虑的替代品。 ### 9 款最佳的开源 Matrix 客户端 本文中,我将介绍一些最好用的 Matrix 客户端,其中主要是桌面客户端(Linux、Windows、macOS),同时也推荐一些移动客户端和终端客户端。 -#### 1. Element +#### 1、Element ![element][2] [Element][3] 是最佳的 Slack 开源替代品之一。它可以用于个人通讯,也能用于群组聊天。 -你可以免费开始使用,不过你也可以选择自己搭建服务器,或者在其他节点服务器上付费使用。Element 提供了许多有用的功能,让你能够高效协作,并与你的团队或好友加密通讯。 +你可以免费使用,不过你也可以选择自己搭建服务器,或者付费使用托管的家庭服务器。Element 提供了许多有用的功能,让你能够高效协作,并与你的团队或好友加密通讯。 -> 译注:如同 Mastodon 一样,自费搭建服务器或者付费使用服务器,对大部分用户而言都是不必要的。初学者建议前往 ,并选择一个现有的服务器进行注册,其中许多服务器都是免费开放注册,并且国内可以连接的。下述的订阅功能也并不是必要的。 +> LCTT 译注:如同 Mastodon 一样,自费搭建服务器或者付费使用服务器,对大部分用户而言都是不必要的。初学者建议前往 ,并选择一个现有的服务器进行注册,其中许多服务器都是免费开放注册,并且国内可以连接的。下述的订阅功能也并不是必要的。 -如果你选择订阅,你还能将 Signal、WhatsApp 和 Telegram 聊天并入其中。 +如果你选择付费订阅,你还能将 Signal、WhatsApp 和 Telegram 聊天并入其中。 它支持 Linux、Windows 和 macOS,同时还提供 Android 和 iOS 的手机客户端。并且,你还能在网页浏览器中使用它。因此,这是个方便的选择。 -> 译注:国内用户可能会在桌面客户端遇到错误,导致无法使用 Element。这是因为它在首次启动会连接 matrix.org,但是国内用户无法访问这个地址。要解决此问题,须手动修改配置文件(篇幅有限,详见相关教程)。实在无法解决,可使用基于 Element 的 [SchildiChat](https://schildi.chat/),或下文列出的其他客户端。 +> LCTT 译注:国内用户可能会在桌面客户端遇到错误,导致无法使用 Element。这是因为它在首次启动会连接 matrix.org,但是国内用户无法访问这个地址。要解决此问题,须手动修改配置文件(篇幅有限,详见相关教程)。实在无法解决,可使用基于 Element 的 [SchildiChat](https://schildi.chat/),或下文列出的其他客户端。 -[Element][4] +> **[Element][4]** -#### 2. Rocket.Chat +#### 2、Rocket.Chat ![rocket chat][5] @@ -73,67 +76,67 @@ Matrix 是一套开放的网络标准,专用于去中心化实时加密通讯 你可以在 Linux、Windows 和 macOS 上使用它,也可以获取 Android 和 iOS 的手机应用。 -尽管你可以选择自建服务器或订阅会员,但它也宣布了添加 [Matrix 协议的支持][7]。 +尽管你可以选择自建服务器或付费订阅,但它也宣布正在添加 [Matrix 协议的支持][7]。 本文创作之时,已经可以在 alpha 版中使用 Matrix 网络。不过,稳定版应该很快就会发布了。所以,如果你已经在使用 Rocket.Chat,或者想把它当作 Matrix 客户端来使用,那么敬请关注后续版本的发布。 -[Rocket.Chat][8] +> **[Rocket.Chat][8]** -#### 3. NeoChat +#### 3、NeoChat ![neochat][9] -NeoChat 是一个简单的 Matrix 客户端,目前在 KDE 家族中进行活跃开发。 +NeoChat 是一个简单的 Matrix 客户端,目前在 KDE 社区的管理下积极开发。 -与 Element 不同,它只支持 Linux 和 Windows,而且尤其用于 KDE Plasma。你也可以在其他桌面环境使用它。 +与 Element 不同,它只支持 Linux 和 Windows,特别是为 KDE Plasma 量身定做。你也可以在其他桌面环境使用它。 -你可以在 KDE 的 Discover 软件中心、Flathub 以及 Snap 商店安装它。它不支持手机平台。所以,如果有桌面用户想要一个简单的 Matrix 客户端,那 NeoChat 也是一个不错的选择。 +你可以在 KDE 的 “发现Discover” 软件中心、Flathub 以及 Snap 商店安装它。它不支持手机平台。所以,如果有桌面用户想要一个简单的 Matrix 客户端,那 NeoChat 也是一个不错的选择。 -> 译注:纠正一下,NeoChat 也支持 Android,可直接下载二进制,也可在 F-Droid 中添加 KDE 仓库后下载。除此之外,它还支持 MacOS。详见其源代码仓库。 +> LCTT 译注:纠正一下,NeoChat 也支持安卓,可直接下载二进制,也可在 F-Droid 中添加 KDE 仓库后下载。除此之外,它还支持 macOS。详见其源代码仓库。 了解更多,可以查看它的 [源代码][10]。 -[NeoChat][11] +> **[NeoChat][11]** -#### 4. FluffyChat +#### 4、FluffyChat ![fluffychat][12] FluffyChat 在用户体验方面,是一个美观(可爱)的 Matrix 客户端。 -如果你想要一个简单又直观的 Matrix 客户端,并且支持桌面和手机(Android 和 iOS),那么 FluffyChat 是一个不错的选择。 +如果你想要一个简单又直观的 Matrix 客户端,并且支持桌面和手机(安卓和 iOS),那么 FluffyChat 是一个不错的选择。 -Linux 用户可以从 Snap 商店或 Flathub 安装它。他并不提供 Windows 和 macOS 的原生应用支持,但你可以在网页浏览器中使用它。 +Linux 用户可以从 Snap 商店或 Flathub 安装它。它并不提供 Windows 和 macOS 的原生应用支持,但你可以在网页浏览器中使用它。 如果你好奇的话,可以从它的 [GitLab 页面][13] 了解更多。 -[FluffyChat][14] +> **[FluffyChat][14]** -#### 5. Fractal +#### 5、Fractal ![fractal][15] -Fractal 是一款用于 GNOME 桌面的 Matrix 聊天客户端,使用 Rust 编写。正如其描述所说,它的界面经过优化,适合大型群组的协作。 +Fractal 是一款用于 GNOME 桌面的 Matrix 聊天客户端,使用 Rust 编写。正如其描述所说,它的界面经过优化,适合大型团队的协作。 由于它以 Flatpak 的形式发布,你可以在任何 Linux 发行版上安装它,无论桌面环境如何。 如果你喜欢能够在系统上快速运行的应用,那 Fractal 可能是不错的选择。可以前往它的 [GitLab 页面][16] 了解更多。 -[Fractal][17] +> **[Fractal][17]** -#### 6. Hydrogen Web (实验性) +#### 6、Hydrogen Web(实验性) ![hydrogen][18] -在找别的轻量级(专注性能)的 Matrix 客户端吗? +在找其它的精简的(专注性能)Matrix 客户端吗? Hydrogen 聊天客户端提供轻量级体验、离线功能,并有着广泛的浏览器支持。 虽然仍未完工,但 Element 背后的同一支团队正在开发着它。所以,如果你期待看到一个轻量的 Matrix 客户端替代品,你可以在它的 [GitHub 页面][19] 跟进该项目。 -[Hydrogen][20] +> **[Hydrogen][20]** -#### 7. Matrix Commander (基于 CLI) +#### 7、Matrix Commander(基于命令行) 如果你想要用终端在 Matrix 网络上来收发文字消息,这个命令行工具就十分不错。 @@ -141,9 +144,9 @@ Hydrogen 聊天客户端提供轻量级体验、离线功能,并有着广泛 你可以在 [PyPi][21] 或者 Docker Hub 上找到它。 -[Matrix Commander][22] +> **[Matrix Commander][22]** -#### 8. Gomuks (基于 CLI) +#### 8、Gomuks(基于命令行) ![gomuks][23] @@ -153,17 +156,17 @@ Hydrogen 聊天客户端提供轻量级体验、离线功能,并有着广泛 你可以在它的 [GitHub Releases 部分][24] 找到其 Linux、Windows 和 macOS 的二进制文件。 -[Gomuks][25] +> **[Gomuks][25]** -#### 9. Syphon (Alpha) +#### 9、Syphon(Alpha 版) ![syphon][26] 我们通常会避免列出仍处于早期开发的程序。但是,Syphon 作为一个手机专用的 Matrix 客户端,是一个有趣的选择。 -如果你想要为你的 Android/iOS 设备安装一个类似 Signal 的开源 Matrix 客户端,那选择 Syphon 也不错。用户界面看起来很熟悉(但并不是完全照抄的)。如果你想实验一下,那可以试试。 +如果你想要为你的安卓 / iOS 设备安装一个类似 Signal 的开源 Matrix 客户端,那选择 Syphon 也不错。用户界面看起来很熟悉(但并不是完全照抄的)。如果你想实验一下,那可以试试。 -[Syphon][27] +> **[Syphon][27]** ### 总结 @@ -171,7 +174,7 @@ Matrix 协议也许没能流行于所有组织和人群之中。但是,可以 最好的一点在于,你可以选择你想要的客户端,而不必被迫使用特定的应用才能在多个设备之间进行通信。 -所以,最好的 Matrix 客户端,你选哪一个? +所以,你会选择什么作为你最喜欢的 Matrix客户端? -------------------------------------------------------------------------------- @@ -180,7 +183,7 @@ via: https://itsfoss.com/best-matrix-clients/ 作者:[Ankush Das][a] 选题:[lkxed][b] 译者:[Peaksol](https://github.com/TravinDreek) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -213,3 +216,4 @@ via: https://itsfoss.com/best-matrix-clients/ [25]: https://maunium.net/go/gomuks/ [26]: https://itsfoss.com/content/images/wordpress/2022/06/syphon.jpg [27]: https://syphon.org/ +[0]: https://img.linux.net.cn/data/attachment/album/202302/06/163855x1rdxojvn1ohh00v.jpg \ No newline at end of file From fe744e23f4502b2ce0945a3f1d777c29f92e1204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:44:21 +0800 Subject: [PATCH 324/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230203.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=207?= =?UTF-8?q?=20Best=20Gentoo-Based=20Linux=20Distributions.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...⭐️ 7 Best Gentoo-Based Linux Distributions.md | 135 ++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md diff --git a/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md b/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md new file mode 100644 index 0000000000..68aae5329a --- /dev/null +++ b/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md @@ -0,0 +1,135 @@ +[#]: subject: "7 Best Gentoo-Based Linux Distributions" +[#]: via: "https://itsfoss.com/gentoo-based-distros/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +7 Best Gentoo-Based Linux Distributions +====== + +Gentoo Linux is one of the [best Linux distributions for advanced users][1]. Want something similar but maybe easier? Gentoo-based distros are your solution. + +Gentoo Linux is famous for its package manager, [Portage][2], which allows you to customize every package per your requirements and build/configure things from the ground up. This way, you get to optimize your system experience in the best possible way. + +However, it is understandable that not everyone prefers using Gentoo Linux because of its learning curve or the effort required to set it up😫 + +So, in that case, you can try Gentoo-based Linux distributions that make things easier. + +Let me highlight some options that do a few things better than having Gentoo Linux barebones. + +📋 + +The list is in no particular order of ranking. + +**Also** + +, like Gentoo Linux, the distros based on it are not tailored for new users. So, you might want to read the documentation of each project thoroughly before trying them out. + +### 1. Calculate Linux + +![calculate linux screenshot with an abstract painting background of a scenary][3] + +[Calculate Linux][4] focuses on providing **a user-friendly experience out-of-the-box**. + +It is based on Gentoo and still backward compatible with it. You get a rolling-release distribution with Calculate Linux, but you can also choose between testing or stable updates per your requirements. + +There are different editions of desktop, server, cloud, and testing. Pick the one you need. + +### 2. CLIP OS + +![][5] + +[CLIP OS][6] is an interesting Gentoo-based distribution that aims to provide a secure experience built by the **National Cybersecurity Agency of France (ANSSI)**. + +There are two versions of the project where v4.0 is a non-working reference where you can explore the source code and use it however you like for building your Gentoo-powered experience. + +And v5.0 is an actively developed project in the beta phase when writing this. It may sound similar to Qubes OS, but it differs in various ways. + +You will have to build an image CLIP OS before you want to try it. + +### 3. Funtoo + +![funtoo linux livecd][7] + +[Funtoo][8] is a Gentoo-based distro by the **creator (former lead) of Gentoo Linux**. + +The philosophy that powers Funtoo is a bit different than Gentoo. Hence, the community approach differs. + +You can download its "next" edition release to get the latest experience or opt for its **1.4-release** for long-term stability. + +Both the editions are rolling-release distros, one offering newer packages. + +### 4. LiGurOS + +![ligur os install image building screenshot][9] + +[LiGurOS][10] is yet another option in the Gentoo family of operating systems. It aims to provide a **fast and secure experience** while ensuring the latest features of AMD and Intel processors work well. + +You will find two different releases, one stable and a rolling. It also gives you the choice of your favorite services manager, supporting openRC as one of them. However, you will have to build the install image to use it. + +Explore more about the project on its [GitLab page][11]. + +### 5. Pentoo + +![][12] + +[Pentoo Linux][13] is one of the [best Linux distributions for penetration testing][14]. + +You can find installable images for both 32-bit and 64-bit systems. Out of the box, you get customized tools, a customized kernel, XFCE 4 window manager, and more. + +### 6. Redcore Linux + +![record linux screenshot][15] + +[Redcore Linux][16] is a distribution **based on the Gentoo Linux testing branch**, with a hardened profile for better security. + +It is a successor of Kogaion Linux (which was initially based on Sabayon Linux), none of which is maintained anymore. One of the members of the original development group responsible for it decided to continue the idea with Redcore. + +This distribution aims to make it easy to install Gentoo Linux on a compatible system easily. + +### 7. Gentoo Studio + +![gentoo studio screenshot][17] + +[Gentoo Studio][18] is a tailored offering for **real-time Linux audio production systems** based on Gentoo Linux. + +It packs in various audio applications and allows you different customization options by default. + +Unlike some studio-focused distributions, you may want to check the packages/utilities it supports out of the box for your production requirements. + +💬_What is your favorite on the list? Did we miss any of your favorites? Let us know in the comments section below._ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/gentoo-based-distros/ + +作者:[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/advanced-linux-distros/ +[2]: https://wiki.gentoo.org/wiki/Portage +[3]: https://itsfoss.com/content/images/2023/02/calculate-linux.jpg +[4]: https://www.calculate-linux.org +[5]: https://itsfoss.com/content/images/2023/02/clip-os-4.jpg +[6]: https://clip-os.org/en/ +[7]: https://itsfoss.com/content/images/2023/02/funtoo-linux.jpg +[8]: https://www.funtoo.org/ +[9]: https://itsfoss.com/content/images/2023/02/gentoo-based-os-liguros.png +[10]: https://liguros.gitlab.io +[11]: https://gitlab.com/liguros +[12]: https://itsfoss.com/content/images/2023/02/pentoo-linux.jpg +[13]: https://www.pentoo.ch +[14]: https://itsfoss.com/linux-hacking-penetration-testing/ +[15]: https://itsfoss.com/content/images/2023/02/redcore.jpg +[16]: https://redcorelinux.org/#hero +[17]: https://itsfoss.com/content/images/2023/02/gentoo-studio.jpg +[18]: https://gentoostudio.org From c43fa2048040f6b7aa8779ecc2ceb8864f5413e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:45:36 +0800 Subject: [PATCH 325/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?news]:=2020230203.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Es?= =?UTF-8?q?cuelas=20Linux=208.0=20A=20Major=20Upgrade=20for=20the=2025th?= =?UTF-8?q?=20Anniversary.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ux 8.0 A Major Upgrade for the 25th Anniversary.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/news/20230203.1 ⭐️⭐️ Escuelas Linux 8.0 A Major Upgrade for the 25th Anniversary.md diff --git a/sources/news/20230203.1 ⭐️⭐️ Escuelas Linux 8.0 A Major Upgrade for the 25th Anniversary.md b/sources/news/20230203.1 ⭐️⭐️ Escuelas Linux 8.0 A Major Upgrade for the 25th Anniversary.md new file mode 100644 index 0000000000..dd66261e8c --- /dev/null +++ b/sources/news/20230203.1 ⭐️⭐️ Escuelas Linux 8.0 A Major Upgrade for the 25th Anniversary.md @@ -0,0 +1,117 @@ +[#]: subject: "Escuelas Linux 8.0: A Major Upgrade for the 25th Anniversary" +[#]: via: "https://news.itsfoss.com/escuelas-linux-8-0-release/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Escuelas Linux 8.0: A Major Upgrade for the 25th Anniversary +====== + +The latest Escuelas Linux 8.0 marks 25 years of promoting FOSS. + +![Escuelas Linux 8.0: A Major Upgrade for the 25th Anniversary][1] + +[Escuelas Linux][2] is a unique distribution that focuses on the **educational side of things,** with the likes of [Bodhi Linux][3], [Ubuntu][4], and [Debian][5] powering it. + +It features a comprehensive set of educational software and resources that are of use to schools, colleges, and even universities. + +In a recent announcement, they **introduced the 25th-anniversary edition** of Escuelas Linux and also thanked the many people who contribute to the Linux ecosystem. + +Let me take you through the highlights of this release. + +### Escuelas Linux 8.0: What's New? + +![the main desktop screen of escuelas linux 8.0][6] + +This release is important, as it signifies 25 years since Escuelas Linux's inception and their struggle to promote Free and Open-Source software (FOSS) in educational settings. + +Since then, it has received support from the Ministry of Education of Zacatecas, Mexico, and has been voluntarily adopted by over 500 institutions. + +Some of the notable highlights of this release include: + +- **Updated Core** +- **New Installer** +- **Improved App Suite** + +#### Updated Core + +The core of Escuelas has been updated; the 64-bit edition now relies on the unreleased Bodhi Linux 7.0 and the well-established [Ubuntu 22.04][7] LTS. + +In the case of the 32-bit edition, it uses Bodhi Linux 6.0 alongside [Debian 11 'Bullseye'][8]. + +As for the kernel, the **64-bit image uses Linux Kernel 6.0.12** (thanks to System76), whereas the **32-bit image utilizes an older 4.19 kernel** for better compatibility with older hardware. + +On this, the developers had this to add: + +> We always strive to offer the best educational and general-purpose distribution, highly updated and polished for its use, even in the finest details. As we have solid foundations, many included packages come from something other than the Ubuntu or Debian repositories. + +> We add hundreds of packages created by third-party sources and some from our own production. “Everything configured to work at its maximum potential” is still our long-time motto and our ever goal to achieve. + +Both the builds continue to use the [Moksha][9] desktop environment (0.4.0), which comes with its suite of apps for ease of management in classroom environments. + +#### New Installer + +![new calamares installer on escuelas linux 8.0][10] + +Escuelas Linux now features the Calamares installer for a more reliable and modern experience. + +#### Improved App Suite + +The app selection on Escuelas Linux has been improved a lot; some of the notable ones include: + +- GCompris 3.1 +- Wxmaxima 22.11.1 +- eXe Learning 2.7 +- LibreOffice 7.4.5 +- OnlyOFFICE 7.2.1 +- GIMP 2.10.32 +- Krita 5.1.5 +- Kdenlive 22.12.1 +- OpenShot 3.0.0 +- VLC 3.0.18 +- Inclusion of IBM Java 8.0.7.20 for running apps such as [LanguageTool][11] and [Zotero][12]. + +In addition to the above, they have also improved the Escuelas Linux Developer Pack with the latest releases of Android Studio, Apache NetBeans, and Eclipse IDE. + +### Get Escuelas Linux 8.0 + +> 📋 To successfully extract the .iso image, you must have the .zip file with the .z01 file in the same folder. + +You can get .z01 and .zip files (you have to download both) for the ISO files of the Spanish and English versions of Escuelas Linux from their project pages on [OSDN][13] and [SourceForge][14]. + +[Escuelas Linux 8.0][2] + +I recommend you refer to the official installation manual to avoid confusion. + +Note that you cannot directly upgrade from 7. x to the 8.0 release, and backing up your files before reinstallation is recommended. + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/escuelas-linux-8-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/02/escuelas-linux-8-0-release.png +[2]: https://escuelaslinux.sourceforge.io/english/index.html +[3]: https://www.bodhilinux.com +[4]: https://ubuntu.com +[5]: https://www.debian.org +[6]: https://news.itsfoss.com/content/images/2023/02/Escuelas_Linux-_8.0.png +[7]: https://news.itsfoss.com/ubuntu-22-04-release/ +[8]: https://news.itsfoss.com/debian-11-feature/ +[9]: https://www.bodhilinux.com/moksha-desktop/ +[10]: https://news.itsfoss.com/content/images/2023/02/Escuelas_Linux_8.0_Installer.png +[11]: https://languagetool.org +[12]: https://www.zotero.org +[13]: https://osdn.net/projects/escuelaslinux/releases/ +[14]: https://sourceforge.net/projects/escuelaslinux/files/ From b6efc172a6258cbfb26e7a8d94b4f63b32eebd79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:46:02 +0800 Subject: [PATCH 326/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230204.0=20=E2=AD=90=EF=B8=8F=20Open=20source=20vide?= =?UTF-8?q?o=20captioning=20on=20Linux.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...️ Open source video captioning on Linux.md | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md diff --git a/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md b/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md new file mode 100644 index 0000000000..1ad750d7ba --- /dev/null +++ b/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md @@ -0,0 +1,91 @@ +[#]: subject: "Open source video captioning on Linux" +[#]: via: "https://opensource.com/article/23/2/live-captions-linux" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Open source video captioning on Linux +====== + +In a perfect world, all videos would have transcripts, and live videos would have captioning. It's not just a requirement for people without hearing to be able to participate in pop culture and video chats, it's a luxury for people with hearing who just prefer to read what's been said. Not all software has captioning built-in though, and some that does relies on third-party cloud services to function. [Live Captions][1] is an application for the Linux desktop that provides instant, local, and open source captioning for video. + +### Install Live Captions + +You can install Live Captions as a [Flatpak][2]. + +If your Linux distribution doesn't ship with a software center, install it manually from a terminal. First, add the [Flathub][3] repository: + +``` +$ flatpak remote-add --if-not-exists flathub \ +https://flathub.org/repo/flathub.flatpakrepo +``` + +Next, install the application: + +``` +$ flatpak install flathub net.sapples.LiveCaptions +``` + +### Launch Live Captions + +To start Live Captions, launch it from your application menu. + +Alternatively, you can start it from a terminal using the `flatpak` command: + +``` +$ flatpak run net.sapples.LiveCaptions +``` + +You can also use a command like [Fuzzpak][4]: + +``` +$ fuzzpak LiveCaptions +``` + +When Live Captions first starts, you're presented with a configuration screen. + +![Image showing preferences in Live Captions.][5] + +You can set the font, font size, colors, and more. By default, text that Live Captions isn't 100% confident about is presented in a darker color than your chosen font color. If you're using Live Captions as a convenience, this probably isn't necessary, but if you can't hear the video, then it's good to get an idea of words that may not be correct. + +You can return to the preferences screen anytime, so your choices don't have to be final. + +### Using Live Captions + +Once Live Captions is running, any English words coming through your system sound are printed to the Live Captions window. + +![Image showing ​Live Captions presenting text from a Jitsi call. ​][6] + +This isn't a cloud service. There are no API keys required. There's no telemetry or spying and no data collection. In fact, it doesn't even require network permissions. Live Captions is open source, so there are no proprietary services or libraries in use. + +To change the sound input, click the **Microphone** icon in the top left of the **Live Captions** window. To open the **Preferences** window, click on the **Gear** icon in the bottom left of the **Live** Captions window. + +### Open access + +In my experience, the results of Live Captions are good. They're not perfect, but in small [Jitsi video calls][7], it's excellent. Even with niche videos (rowdy tournaments of Warhammer 40,000, for instance) it does surprisingly well, stumbling over only the most fictional of sci-fi terminology. + +Making open source accessible is vital, and in the end it has the potential to benefit everyone. I don't personally require Live Captions, but I enjoy using it when I don't feel like listening to a video. I also use it when I want help to focus on something that I might otherwise be distracted away from. Live Captions isn't just a fun open source project, it's an important one. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/live-captions-linux + +作者:[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://github.com/abb128/LiveCaptions +[2]: https://opensource.com/article/21/11/install-flatpak-linux +[3]: https://flathub.org/apps/details/net.sapples.LiveCaptions +[4]: https://www.redhat.com/sysadmin/launch-flatpaks-terminal-fuzzpak +[5]: https://opensource.com/sites/default/files/2023-01/live-caption-preferences.png +[6]: https://opensource.com/sites/default/files/2023-01/Livecaptions%20onJitsiCall.png +[7]: https://opensource.com/article/21/9/alternatives-zoom From 96a6d64a334ab9e46b24e92dfd7fd53fb5efdab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:46:25 +0800 Subject: [PATCH 327/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230206.0=20=E2=AD=90=EF=B8=8F=20Elementary=20OS=207?= =?UTF-8?q?=20Installation=20Guide=20with=20Screenshots.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ry OS 7 Installation Guide with Screenshots.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md diff --git a/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md b/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md new file mode 100644 index 0000000000..be82e4ad91 --- /dev/null +++ b/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md @@ -0,0 +1,117 @@ +[#]: subject: "Elementary OS 7 Installation Guide with Screenshots" +[#]: via: "https://www.linuxtechi.com/elementary-os-7-installation-guide/" +[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Elementary OS 7 Installation Guide with Screenshots +====== + +Hello techies, in this post, we will cover how to Install Elementary OS 7 step by step with screenshots on laptop or desktop. It is based on latest and stable Ubuntu 22.04 LTS. + +Elementary OS 7 with code name “Horus” released with lot of improvements like : + +- Improved AppCenter and install all application that one need. +- Improved sideloading and alt store (Flathub) experience +- Latest GNOME Web 43 support for creating web apps. +- Getting OS and Applicate Updates quickly +- Power Profile Management +- Improvement in App Description + +##### System Requirements for Elementary OS 7 + +- Dual Core 64-bit processor +- 4 GB RAM or more +- 32 GB hard disk +- Internet Access +- Bootable USB Flash Drive ( 4 GB Storage) + +Without any further delay, let’s jump into the installation steps + +### 1) Download Elementary OS 7 + +Use below official URL to download ISO file, + +- Download Elementary OS 7 ISO + +Once ISO file is downloaded then burn it into USB flash drive and make it bootable. + +On Windows operating use “Rufus” software to make bootable USB drive using ISO file. In Linux, refer the following URL: + +- How to Create Bootable USB Drive on Ubuntu / Linux Mint + +### 2) Boot the system with bootable media + +Now boot the target system with bootable USB drive. From bios settings change the boot medium from hard disk to USB. When the system boots up with USB drive then we will get the following screen, + +### 3) Select Language for Installation + +Choose your preferred language and then click select, + +### 4) Choose Keyboard Layout + +In this step, you will be requested to choose keyboard layout and then click on ‘Select’ + +### 5) Try or Install elementary OS + +We will be presented the beneath screen, where we must our choose installation type. It gives us following options, + +- Try Demo Mode – Try Elementary OS 7 without installing +- Erase disk and Install – Installer will erase the whole disk and will create required partitions automatically. +- Custom Install (Advanced) – It will give us the option to create custom partitions. + +In this post, I will go with the 2nd option (Erase disk and install). + +Click on “Erase Disk and Install” + +In the following screen, select the drive on which OS will be installed and then click on “Erase and Install” + +If you want to encrypt the device’s drive, then click on “Choose Password” else click on “Don’t Encrypt”. + +### 6) Installation Progress + +As we can see below, installation got started and is in progress. + +Once the installation is completed, installer will prompt to reboot the system. + +Click on “Restart Device” and don’t forget to change boot medium from bios settings so that it boots up with the disk. + +### 7) Create Local User and Set Hostname + +When the system boots up after the installation, you will be prompted to enter local user details and hostname of your system. + +Specify the details as per your requirement, + +Click on “Finish Setup”. + +In the following screen, you will be prompted to enter your local user credentials that you have created above, + +After entering the credentials, hit enter + +### 8) Elementary OS 7 Welcome Screen + +We will get the beneath welcome screen, + +Choose “Skip All” + +Click “Get Started” and then we will get following desktop screen, + +Great, it confirms that you have successfully installed Elementary OS 7 on your system. That’s all from this guide, explore this exciting Linux distribution and have fun 😊. + +-------------------------------------------------------------------------------- + +via: https://www.linuxtechi.com/elementary-os-7-installation-guide/ + +作者:[Pradeep Kumar][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.linuxtechi.com/author/pradeep/ +[b]: https://github.com/lkxed + From 15fa6833d0fc94e58029df85c8887da21417a823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:47:13 +0800 Subject: [PATCH 328/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230206.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Wo?= =?UTF-8?q?rdsmith=20on=20the=20Linux=20command=20line=20with=20dict.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Wordsmith on the Linux command line with dict.md | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 sources/tech/20230206.1 ⭐️⭐️ Wordsmith on the Linux command line with dict.md diff --git a/sources/tech/20230206.1 ⭐️⭐️ Wordsmith on the Linux command line with dict.md b/sources/tech/20230206.1 ⭐️⭐️ Wordsmith on the Linux command line with dict.md new file mode 100644 index 0000000000..0e58640322 --- /dev/null +++ b/sources/tech/20230206.1 ⭐️⭐️ Wordsmith on the Linux command line with dict.md @@ -0,0 +1,161 @@ +[#]: subject: "Wordsmith on the Linux command line with dict" +[#]: via: "https://opensource.com/article/23/2/linux-dict-command" +[#]: author: "David Both https://opensource.com/users/dboth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Wordsmith on the Linux command line with dict +====== + +As a writer, I frequently need to determine the correct spelling or definition of words. I also need to use a thesaurus to find alternate words that may have a somewhat different connotation than the one I might otherwise use. Because I frequently use the Linux command line and text-mode tools to do much of my work, it makes sense to use a command line dictionary. + +I really like using the command line for a number of reasons, the primary one being that it is more efficient for me. It is also far more comprehensive than any one or multiple physical paper dictionaries, could ever be. I have been using the Linux `dict` command for many years and I have come to depend on it. + +### Install dict on Linux + +The dict program is not installed by default on Fedora, but it's easy to install. Here is how to install it on Fedora and similar programs: + +``` +$ sudo dnf install dictd +``` + +On Debian and similar programs, you must also install the dictionary definitions: + +``` +$ sudo apt install dictd dict-gcide +``` + +No additional configuration is required. The minimalistic `/usr/share/doc/dictd/dict1.conf` file specifies the remote server for the dictionary databases. This tool uses the Dictionary Server Protocol (DICT) on port 2628. + +### Use dict on Linux + +In a terminal session as a non-root user, type `dict ` to get a list of definitions from one or more dictionaries and the thesaurus. For example, look up the word `memory` this way. + +``` +$ dict memory | less +6 definitions found + +From The Collaborative International Dictionary of English v.0.48 [gcide]: + + Memory \Mem"o*ry\, n.; pl. {Memories}. [OE. memorie, OF. + memoire, memorie, F. m['e]moire, L. memoria, fr. memor + mindful; cf. mora delay. Cf. {Demur}, {Martyr}, {Memoir}, + {Remember}.] + [1913 Webster] + 1. The faculty of the mind by which it retains the knowledge + of previous thoughts, impressions, or events. + [1913 Webster] + + Memory is the purveyor of reason. --Rambler. + [1913 Webster] + + 2. The reach and positiveness with which a person can + remember; the strength and trustworthiness of one's power + to reach and represent or to recall the past; as, his + memory was never wrong. + [1913 Webster] + + +From WordNet (r) 3.0 (2006) [wn]: + + memory + n 1: something that is remembered; "search as he would, the + memory was lost" + 2: the cognitive processes whereby past experience is + remembered; "he can do it from memory"; "he enjoyed + remembering his father" [syn: {memory}, {remembering}] + 3: the power of retaining and recalling past experience; "he had + + +From Moby Thesaurus II by Grady Ward, 1.0 [moby-thesaurus]: + + 78 Moby Thesaurus words for "memory": + RAM, anamnesis, anniversaries, archetypal pattern, archetype, + awareness, celebrating, celebration, ceremony, cognizance, + commemoration, consciousness, disk memory, dressing ship, + + +From The Free On-line Dictionary of Computing (30 December 2018) [foldoc]: + + memory + + These days, usually used synonymously with {Random + Access Memory} or {Read-Only Memory}, but in the general sense + it can be any device that can hold {data} in + {machine-readable} format. + + (1996-05-25) + + +From Bouvier's Law Dictionary, Revised 6th Ed (1856) [bouvier]: + + MEMORY, TIME OF. According to the English common law, which has been altered + by 2 & 3 Wm. IV., c. 71, the time of memory commenced from the reign of +``` + +I have cut large sections of this result to save space while leaving enough information to provide an idea of what typical results look like. You can also look up multi-word phrases by enclosing them in quotes, either double or single. + +``` +$ dict "air gapped" +``` + +### Dictionaries + +The `dict` command uses several online dictionaries, including legal and technical ones. Dictionaries are also available for many languages. You can `list` the available dictionary databases as shown here: + +``` +$ dict -D | less +Databases available: + gcide The Collaborative International Dictionary of English v.0.48 + wn WordNet (r) 3.0 (2006) + moby-thesaurus Moby Thesaurus II by Grady Ward, 1.0 + elements The Elements (07Nov00) + vera V.E.R.A. -- Virtual Entity of Relevant Acronyms (February 2016) + jargon The Jargon File (version 4.4.7, 29 Dec 2003) + foldoc The Free On-line Dictionary of Computing (30 December 2018) + easton Easton's 1897 Bible Dictionary + hitchcock Hitchcock's Bible Names Dictionary (late 1800's) + bouvier Bouvier's Law Dictionary, Revised 6th Ed (1856) + devil The Devil's Dictionary (1881-1906) + world02 CIA World Factbook 2002 + gaz2k-counties U.S. Gazetteer Counties (2000) + gaz2k-places U.S. Gazetteer Places (2000) + gaz2k-zips U.S. Gazetteer Zip Code Tabulation Areas (2000) + fd-hrv-eng Croatian-English FreeDict Dictionary ver. 0.1.2 + fd-fin-por suomi-português FreeDict+WikDict dictionary ver. 2018.09.13 + fd-fin-bul suomi-български език FreeDict+WikDict dictionary ver. 2018.09.13 + fd-fra-bul français-български език FreeDict+WikDict dictionary ver. 2018.09.13 + fd-deu-swe Deutsch-Svenska FreeDict+WikDict dictionary ver. 2018.09.13 + +``` + +You can specify individual dictionaries with the `-d` option: + +``` +$ dict -d gcide +``` + +### Endmost Dictum + +Sometimes using words found in the thesaurus is not the best approach to writing as it can obfuscate your meaning. But I do find that the `dict` command can be immensely useful in choosing the best word for a specific meaning. It also ensures that the words I use are spelled correctly. + +There's a dearth of information about dict. The URL [http://www.dict.org/][1] provides only a web-based interface to the dictionaries. The man page covers syntax. But the command is a useful and fun command to have handy. I admit that after discovering the `dict` command I spent many hours of the day just trying different things to see what the result would be. I was the kid who read the encyclopedia and dictionary. Yes, I was _that_ kid. In addition to being a useful tool when writing or reading, dict can also be a fun tool to satisfy a bit of curiosity. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/linux-dict-command + +作者:[David Both][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/dboth +[b]: https://github.com/lkxed +[1]: http://www.dict.org/ + From a6b2108dfcbba3332468e3cc99d5758280fa7f65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:47:36 +0800 Subject: [PATCH 329/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230206.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Re?= =?UTF-8?q?invent=20your=20release=20strategy=20with=20an=20API=20gateway.?= =?UTF-8?q?md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nvent your release strategy with an API gateway.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sources/tech/20230206.2 ⭐️⭐️ Reinvent your release strategy with an API gateway.md diff --git a/sources/tech/20230206.2 ⭐️⭐️ Reinvent your release strategy with an API gateway.md b/sources/tech/20230206.2 ⭐️⭐️ Reinvent your release strategy with an API gateway.md new file mode 100644 index 0000000000..53b2491906 --- /dev/null +++ b/sources/tech/20230206.2 ⭐️⭐️ Reinvent your release strategy with an API gateway.md @@ -0,0 +1,87 @@ +[#]: subject: "Reinvent your release strategy with an API gateway" +[#]: via: "https://opensource.com/article/23/2/api-gateway" +[#]: author: "Bobur Umurzokov https://opensource.com/users/iambobur" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Reinvent your release strategy with an API gateway +====== + +One benefit of moving to an API-based architecture is that you can iterate quickly and deploy new changes to our services. There is also the concept of traffic and routing established with an API gateway for the modernized part of the architecture. API gateway provides stages to allow you to have multiple deployed APIs behind the same gateway and is capable of in-place updates with no downtime. Using an API gateway enables you to leverage the service's numerous API management features, such asauthentication, ratethrottling, observability, multiple API versioning, and stage deployment management (deploying an API in multiple stages such as dev, test, stage, and prod). + +Open source API gateway ([Apache APISIX][1] and [Traefik][2]) and service mesh ([Istio][3] and Linkerd) solutions are capable of doing traffic splitting and implementing functionalities like canary release and [blue green deployment][4]. With canary testing, you can make a critical examination of a new release of an API by selecting only a small portion of your user base. + +### What is a canary release? + +A canary release introduces a new version of the API and flows a small percentage of the traffic to the canary. In API gateways, traffic splitting makes it possible to gradually shift or migrate traffic from one version of a target service to another. For example, a new version, `v1.1`, of a service can be deployed alongside the original, `v1.0`. Traffic shifting enables you to canary test or release your new service by at first only routing a small percentage of user traffic, say `1%`, to `v1.1`, then shifting all of your traffic over time to the new service. + +![Image of the API Canary release.][5] + +This allows you to monitor the new service, look for technical problems, such as increased latency or error rates, and look for the desired business impact. This includes checking for an increase in key performance indicators like customer conversion ratio or the average shopping checkout value. Traffic splitting enables you to run A/B or multivariate tests by dividing traffic destined for a target service between multiple versions of the service. For example, you can split traffic `50/50` across your `v1.0` and `v1.1` of the target service and see which performs better over a specific period of time. Learn more about the traffic split feature in Apache APISIX Ingress Controller. + +When appropriate, canary releases are an excellent option, as the percentage of traffic exposed to the canary is highly controlled. The trade-off is that the system must have good monitoring in place to be able to quickly identify an issue and roll back if necessary (which can be automated). This guide shows you how to use [Apache APISIX and Flagger][6] to quickly implement a canary release solution. + +![Image showing API traffic splitting.][7] + +### Traffic mirroring + +In addition to using traffic splitting to run experiments, you can also use traffic mirroring to copy or duplicate traffic. You can send this to an additional location or a series of locations. Frequently with traffic mirroring, the results of the duplicated requests are not returned to the calling service or end user. Instead, the responses are evaluated out-of-band for correctness. For instance, it compares the results generated by a refactored and existing service. + +![Image showing API traffic mirroring.][8] + +Using traffic mirroring enables you to "dark release" services, where a user is kept in the dark about the new release, but you can internally observe for the required effect. + +Implementing traffic mirroring at the edge of systems has become increasingly popular over the years. APISIX offers the [proxy-mirror][9] plugin to mirror client requests. It duplicates the real online traffic to the mirroring service and enables specific analysis of the online traffic or request content without interrupting the online service. + +### What is a blue green deployment? + +Blue green deployment is usually implemented at a point in the architecture that uses a router, gateway, or load balancer. Behind this sits a complete blue environment and a green environment. The current blue environment represents the current live environment, and the green environment represents the next version of the stack. The green environment is checked prior to switching to live traffic. When it goes live, the traffic is flipped over from blue to green. The blue environment is now off, but if a problem is spotted the rollback is quick. The next change is to go from green to blue, oscillating from the first release onward. + +![Image showing Blue and Green release strategies.][10] + +Blue green works well due to its simplicity, and it is one of the better deployment options for coupled services. It is also easier to manage persisting services, though you still need to be careful in the event of a rollback. It also requires double the number of resources to be able to run cold in parallel to the currently active environment. + +### Traffic management with Argo Rollouts + +The strategies discussed add a lot of value, but the rollout itself is a task that you would not want to have to manage manually. This is where a tool such as [Argo Rollouts][11] is valuable for demonstrating some of the concerns discussed. + +Using Argo, it is possible to define a [Rollout CRD][12] that represents the strategy you can take for rolling out a new canary of your API. A custom resource definition (CRD) allows Argo to extend the Kubernetes API to support rollout behavior. CRDs are a popular pattern with Kubernetes. They allow the user to interact with one API with the extension to support different features. + +You can use the Apache APISIX and Apache APISIX Ingress Controller for traffic management with Argo Rollouts. This [guide][13] shows you how to integrate `ApisixRoute` with Argo Rollouts using it as a weighted round-robin load balancer. + +### Summary + +The ability to separate the deployment and release of service (and corresponding API) is a powerful technique, especially with the rise in the progressive delivery approach. A canary release service can make use of the API gateway traffic split and mirroring features, and provides a competitive advantage. This helps your business with both mitigating risk of a bad release and also understanding your customer's requirements. + +_This article was originally published on the [API7.ai blog][14] and has been republished with permission._ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/api-gateway + +作者:[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://apisix.apache.org/ +[2]: https://opensource.com/article/20/3/kubernetes-traefik +[3]: https://www.redhat.com/architect/istio-CNI-plugin +[4]: https://www.redhat.com/en/topics/devops/what-is-blue-green-deployment?intcmp=7013a000002qLH8AAM +[5]: https://opensource.com/sites/default/files/2023-01/ApiCanaryrelease.png +[6]: https://github.com/fluxcd/flagger/blob/6c29c2118478a69207e2ff23a7afe6006f5518dc/docs/gitbook/tutorials/apisix-progressive-delivery.md +[7]: https://opensource.com/sites/default/files/2023-01/APITrafficsplitting.png +[8]: https://opensource.com/sites/default/files/2023-01/APItrafficMirroring.png +[9]: https://apisix.apache.org/docs/apisix/plugins/proxy-mirror +[10]: https://opensource.com/sites/default/files/2023-01/APIBLueGreen.png +[11]: https://argoproj.github.io/argo-rollouts/ +[12]: https://argoproj.github.io/argo-rollouts/concepts/ +[13]: https://argoproj.github.io/argo-rollouts/features/traffic-management/apisix/ +[14]: https://api7.ai/blog/api-release-strategies-with-api-gateway From 7353a0a28018cb82d235712b350f6ca8afd257a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:48:02 +0800 Subject: [PATCH 330/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?news]:=2020230206.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Mo?= =?UTF-8?q?zilla's=20Abandoned=20Servo=20Web=20Engine=20is=20Making=20a=20?= =?UTF-8?q?Comeback=20in=202023.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...d Servo Web Engine is Making a Comeback in 2023.md | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md diff --git a/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md b/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md new file mode 100644 index 0000000000..abe2daf392 --- /dev/null +++ b/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md @@ -0,0 +1,97 @@ +[#]: subject: "Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023" +[#]: via: "https://news.itsfoss.com/mozilla-servo-web-engine/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023 +====== + +Open-source Rust-powered Servo web engine might be getting back to the game with its roadmap plan for development. + +![Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023][1] + +Servo is a rust-based experimental browser engine initially developed by the **research wing of Mozilla** but was later [delegated][2] to [The Linux Foundation][3] as a community-maintained project. + +Since then, no significant development has taken place, even though the members involved have been trying to do their best. + +Until now. + +Things are looking up for Servo in 2023, as the team behind it has shared a promising roadmap. + +Let me take you through it. + +### 📢 Roadmap for 2023: Overview + +![2023's roadmap for the servo project][4] + +The Servo project **came back from the dead** thanks to the [new funding][5] they received in January. + +To further solidify their intent, the development team has **shared a roadmap for this year** that shows a good outlook on the things they have planned. + +On this, they also add: + +> We’re restarting all the usual activities, including PR triage and review, public communications about the project, and arranging [TSC][6] meetings. We will also make some outreach efforts in order to attract more collaborators, partners, and potential sponsors interested in working, participating, and funding the project. + +They have also shared 7 goals that they want to achieve in 2023. + +**Project Reactivation:** This is the first stage that will continue until the end of 2023 and will involve reactivating the Servo project as a whole. + +**Project Outreach:** Fueled by the renewed activity on the project's [GitHub][7] page, they plan to make some outreach efforts by spreading the word about the project. + +This will be done to attract more collaborators, companies, and partners who may be interested in contributing to or funding the project. + +**Main Dependencies Upgrade:** Several dependencies of Servo will be worked upon as they have been in a dilapidated condition and require upgrading, such as [WebRender][8] and [Stylo][9]. + +**Layout Engine Selection:** Servo currently has two layout engines, 2013 (the original one) and 2020 (the new one). + +They will be deciding, along with the contributors and the community, which option to go with for the long term. + +**Progress Towards Basic CSS2 Support:** After the above two things are done, they plan to work towards basic [CSS2 conformance][10]. + +**Explore Android Support:** They want to explore the possibility of supporting Android along with other platforms, as they have already experimented with the platform in the past. + +**Embeddable Web Engine Experiments:** For the final stage of the roadmap, they aim to make Servo into an 'embeddable web rendering engine.' + +The team is also exploring possibilities in this regard by having some sort of Servo demo running on embedded devices or looking into existing projects such as [Tauri][11]. + +You can go through the [official announcement][12] to learn more about the roadmap. + +### Final Thoughts + +A rust-powered web engine could do wonders and be superior to [Blink][13] or [Gecko][14]-based alternatives. + +Furthermore, another open-source alternative to something we use almost daily shouldn't be a bad thing and will let us have many options. + +_💬 What do you think about Servo's aim to restart things and focus on getting back on the track it was initially designed for?_ + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/mozilla-servo-web-engine/ + +作者:[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/02/mozilla-web-servo-comeback.png +[2]: https://servo.org/blog/2020/11/17/servo-home/ +[3]: https://www.linuxfoundation.org +[4]: https://news.itsfoss.com/content/images/2023/02/Servo_Roadmap.jpg +[5]: https://servo.org/blog/2023/01/16/servo-2023/ +[6]: https://servo.org/governance/tsc/ +[7]: https://github.com/servo +[8]: https://github.com/servo/webrender +[9]: https://wiki.mozilla.org/Quantum/Stylo +[10]: https://www.w3.org/TR/1998/REC-CSS2-19980512/conform.html +[11]: https://tauri.app +[12]: https://servo.org/blog/2023/02/03/servo-2023-roadmap/ +[13]: https://www.chromium.org/blink/ +[14]: https://developer.mozilla.org/en-US/docs/Glossary/Gecko From 48bc0ede3b150b1c52b2da8db8c81b5b22db0655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:50:36 +0800 Subject: [PATCH 331/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230131.1=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Us?= =?UTF-8?q?e=20Terraform=20to=20manage=20an=20OpenStack=20cluster.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Use Terraform to manage an OpenStack cluster.md | 375 ++++++++++++++++++ 1 file changed, 375 insertions(+) create mode 100644 sources/tech/20230131.1 ⭐️⭐️ Use Terraform to manage an OpenStack cluster.md diff --git a/sources/tech/20230131.1 ⭐️⭐️ Use Terraform to manage an OpenStack cluster.md b/sources/tech/20230131.1 ⭐️⭐️ Use Terraform to manage an OpenStack cluster.md new file mode 100644 index 0000000000..b992522335 --- /dev/null +++ b/sources/tech/20230131.1 ⭐️⭐️ Use Terraform to manage an OpenStack cluster.md @@ -0,0 +1,375 @@ +[#]: subject: "Use Terraform to manage an OpenStack cluster" +[#]: via: "https://opensource.com/article/23/1/terraform-manage-openstack-cluster" +[#]: author: "AJ Canlas https://opensource.com/users/ajscanlas" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Use Terraform to manage an OpenStack cluster +====== + +After having an OpenStack production and home lab for a while, I can definitively say that provisioning a workload and managing it from an Admin and Tenant perspective is important. + +Terraform is an open source Infrastructure-as-Code (IaC) software tool used for provisioning networks, servers, cloud platforms, and more. Terraform is a declarative language that can act as a blueprint of the infrastructure you're working on. You can manage it with Git, and it has a strong [GitOps][1] use case. + +This article covers the basics of managing an OpenStack cluster using Terraform. I recreate the OpenStack Demo project using Terraform. + +### Install Terraform + +I use CentOS as a jump host, where I run Terraform. Based on the official documentation, the first step is to add the Hashicorp repository: + +``` +$ sudo dnf config-manager \ +--add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo +``` + +Next, install Terraform: + +``` +$ sudo dnf install terraform -y +``` + +Verify the installation: + +``` +$ terraform –version +``` + +If you see a version number in return, you have installed Terraform. + +### Create a Terraform script for the OpenStack provider + +In Terraform, you need a provider. A provider is a converter that Terraform calls to convert your `.tf` into API calls to the platform you are orchestrating. + +There are three types of providers: Official, Partner, and Community: + +- Official providers are Hashicorp maintained. +- Partner providers are maintained by technology companies that partner with Hashicorp. +- Community providers are maintained by open source community members. + +There is a good Community provider for OpenStack in this [link][2]. To use this provider, create a `.tf` file and call it `main.tf`. + +``` +$ vi main.tf +``` + +Add the following content to `main.tf`: + +``` +terraform { + required_version = ">= 0.14.0" + required_providers { + openstack = { + source = "terraform-provider-openstack/openstack" + version = "1.49.0" + } + } +} + +provider "openstack" { + user_name = “OS_USERNAME” + tenant_name = “OS_TENANT” + password = “OS_PASSWORD” + auth_url = “OS_AUTH_URL” + region = “OS_REGION” +} +``` + +You need to change the **OS_USERNAME**, **OS_TENANT**, **OS_PASSWORD**, **OS_AUTH_URL**, and **OS_REGION** variables for it to work. + +### Create an Admin Terraform file + +OpenStack Admin files focus on provisioning external networks, routers, users, images, tenant profiles, and quotas. + +This example provisions flavors, a router connected to an external network, a test image, a tenant profile, and a user. + +First, create an `AdminTF` directory for the provisioning resources: + +``` +$ mkdir AdminTF + +$ cd AdminTF +``` + +In the `main.tf`, add the following: + +``` +terraform { + required_version = ">= 0.14.0" + required_providers { + openstack = { + source = "terraform-provider-openstack/openstack" + version = "1.49.0" + } + } +} + +provider "openstack" { + user_name = “OS_USERNAME” + tenant_name = “admin” + password = “OS_PASSWORD” + auth_url = “OS_AUTH_URL” + region = “OS_REGION” +} + +resource "openstack_compute_flavor_v2" "small-flavor" { + name = "small" + ram = "4096" + vcpus = "1" + disk = "0" + flavor_id = "1" + is_public = "true" +} + +resource "openstack_compute_flavor_v2" "medium-flavor" { + name = "medium" + ram = "8192" + vcpus = "2" + disk = "0" + flavor_id = "2" + is_public = "true" +} + +resource "openstack_compute_flavor_v2" "large-flavor" { + name = "large" + ram = "16384" + vcpus = "4" + disk = "0" + flavor_id = "3" + is_public = "true" +} + +resource "openstack_compute_flavor_v2" "xlarge-flavor" { + name = "xlarge" + ram = "32768" + vcpus = "8" + disk = "0" + flavor_id = "4" + is_public = "true" +} + +resource "openstack_networking_network_v2" "external-network" { + name = "external-network" + admin_state_up = "true" + external = "true" + segments { + network_type = "flat" + physical_network = "physnet1" + } +} + +resource "openstack_networking_subnet_v2" "external-subnet" { + name = "external-subnet" + network_id = openstack_networking_network_v2.external-network.id + cidr = "10.0.0.0/8" + gateway_ip = "10.0.0.1" + dns_nameservers = ["10.0.0.254", "10.0.0.253"] + allocation_pool { + start = "10.0.0.1" + end = "10.0.254.254" + } +} + +resource "openstack_networking_router_v2" "external-router" { + name = "external-router" + admin_state_up = true + external_network_id = openstack_networking_network_v2.external-network.id +} + +resource "openstack_images_image_v2" "cirros" { + name = "cirros" + image_source_url = "https://download.cirros-cloud.net/0.6.1/cirros-0.6.1-x86_64-disk.img" + container_format = "bare" + disk_format = "qcow2" + + properties = { + key = "value" + } +} + +resource "openstack_identity_project_v3" "demo-project" { + name = "Demo" +} + +resource "openstack_identity_user_v3" "demo-user" { + name = "demo-user" + default_project_id = openstack_identity_project_v3.demo-project.id + password = "demo" +} +``` + +### Create a Tenant Terraform file + +As a Tenant, you usually create VMs. You also create network and security groups for the VMs. + +This example uses the user created above by the Admin file. + +First, create a `TenantTF` directory for Tenant-related provisioning: + +``` +$ mkdir TenantTF +$ cd TenantTF +``` + +In the `main.tf`, add the following: + +``` +terraform { + required_version = ">= 0.14.0" + required_providers { + openstack = { + source = "terraform-provider-openstack/openstack" + version = "1.49.0" + } + } +} + +provider "openstack" { + user_name = “demo-user” + tenant_name = “demo” + password = “demo” + auth_url = “OS_AUTH_URL” + region = “OS_REGION” +} + +resource "openstack_compute_keypair_v2" "demo-keypair" { + name = "demo-key" + public_key = "ssh-rsa ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" +} + + +resource "openstack_networking_network_v2" "demo-network" { + name = "demo-network" + admin_state_up = "true" +} + +resource "openstack_networking_subnet_v2" "demo-subnet" { + network_id = openstack_networking_network_v2.demo-network.id + name = "demo-subnet" + cidr = "192.168.26.0/24" +} + +resource "openstack_networking_router_interface_v2" "demo-router-interface" { + router_id = “XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX” + subnet_id = openstack_networking_subnet_v2.demo-subnet.id +} + +resource "openstack_compute_instance_v2" "demo-instance" { + name = "demo" + image_id = "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" + flavor_id = "3" + key_pair = "demo-key" + security_groups = ["default"] + + metadata = { + this = "that" + } + + network { + name = "demo-network" + } +} +``` + +### Initialize your Terraform + +After creating the Terraform files, you need to initialize Terraform. + +For Admin: + +``` +$ cd AdminTF + +$ terraform init + +$ terraform fmt +``` + +For Tenants: + +``` +$ cd TenantTF + +$ terraform init + +$ terraform fmt +``` + +Command explanation: + +- `terraform init` downloads the provider from the registry to use in provisioning this project. +- `terraform fmt` formats the files for use in repositories. + +### Create a Terraform plan + +Next, create a plan for you to see what resources will be created. + +For Admin: + +``` +$ cd AdminTF + +$ terraform validate + +$ terraform plan +``` + +For Tenants: + +``` +$ cd TenantTF + +$ terraform validate + +$ terraform plan +``` + +Command explanation: + +- `terraform validate` validates whether the `.tf` syntax is correct. +- `terraform plan` creates a plan file in the cache where all managed resources can be tracked in creation and destroy. + +### Apply your first TF + +To deploy the resources, use the `terraform apply` command. This command applies all resource states in the plan file. + +For Admin: + +``` +$ cd AdminTF + +$ terraform apply +``` + +For Tenants: + +``` +$ cd TenantTF + +$ terraform apply +``` + +### Next steps + +Previously, I wrote an [article][3] on deploying a minimal OpenStack cluster on a Raspberry Pi. You can discover how to have more detailed [Terraform and Ansible][4] configurations and implement some CI/CD with GitLab. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/terraform-manage-openstack-cluster + +作者:[AJ Canlas][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/ajscanlas +[b]: https://github.com/lkxed +[1]: https://opensource.com/article/21/3/gitops +[2]: https://registry.terraform.io/providers/terraform-provider-openstack/openstack/1.49.0 +[3]: https://opensource.com/article/20/12/openstack-raspberry-pi +[4]: https://www.ansible.com/blog/ansible-vs.-terraform-demystified?intcmp=7013a000002qLH8AAM + From 284c964a523e14894d17d9041dd9895bbb4f4783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:50:57 +0800 Subject: [PATCH 332/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230131.2=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Me?= =?UTF-8?q?rge=20design=20and=20code=20with=20Penpot.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... ⭐️⭐️ Merge design and code with Penpot.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md diff --git a/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md b/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md new file mode 100644 index 0000000000..95afc8c794 --- /dev/null +++ b/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md @@ -0,0 +1,57 @@ +[#]: subject: "Merge design and code with Penpot" +[#]: via: "https://opensource.com/article/23/1/merge-design-code-penpot" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Merge design and code with Penpot +====== + +For most of the history of computer programming, there's been a gap between the programmers creating an application's code and the designers creating an application's user experience (UX). The two disciplines receive vastly different training, and they use a different set of tools. Programmers use a text editor or an IDE to write code, while designers often draw concepts of widget layout and potential interactions. While some IDEs, like [Eclipse][1] and [Netbeans][2], have interface design components, they're usually focused on widget position and not on widget design. The open source design app [Penpot][3] is a collaborative design and prototyping platform. It has a suite of new features that make it easy for designers and developers to work together with familiar workflows. Penpot's design interface lets developers write code in harmony with the design process like no other tool does. And it's come a long way since Opensource.com [last looked at it][4]. Its latest features don't just improve your experience with Penpot, they propel the open source Penpot app past similar and proprietary tools. + +### Prototyping with Penpot + +One of the common problems with trying to design how an application might work best is that, at the time of designing, the application doesn't exist yet. A designer can visualize and storyboard to help both the design team and the programmer understand what to aim for. But it's a process that requires iteration and feedback as developers start to implement UX concepts, and designs change to react to the reality of code. + +With Penpot, you can create a "working" prototype of your web or mobile application. You can connect buttons with specific actions, triggering changes in layout based on user input. And this can all be done before any code for the project exists. + +The most important aspect of this isn't the ability to do a mock-up, though. Everything done in Penpot for an app's design has usable layout data that developers can use in the final project. Penpot isn't just a great drawing and layout tool. It informs the coding process. + +Rather than providing just a visual list of designer-specific elements, like properties, colors, and typography, Penpot now integrates code output directly into the design workspace (like developer tools in a web browser). Designers and developers share the same space for design and front-end development, getting specifications in whatever format they need. + +![Image of the current Penpot interface][5] + +### Memory unlock + +Many online design tools use proprietary technology to provide some fancy features, but at the price of essentially becoming an application, you don't run so much as access through a browser. Penpot uses open web standards, though, and is rendered by your web browser. That means Penpot has access to the web browser's maximum available memory, which makes Penpot the first online prototype and layout application with design scalability. You can provide more options, more mock-ups, and more pitches. Plus, you can open your design space to more concurrent collaborators with no fear of running out of application memory. + +### Self-hosting and SaaS + +Penpot is open source, so you don't have to use it on the cloud if that doesn't fit your workflow. You can self-host Penpot easily in a container, using it as a local application on your own workstation or hosting it for your organization on your own server. + +### Open source design + +I've written an [introductory article to Penpot][6] previously, and since then the application has only gotten better. If you're looking to bring coders and stakeholders into your design process, then give Penpot a try. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/merge-design-code-penpot + +作者:[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/12/eclipse +[2]: https://opensource.com/article/20/12/netbeans +[3]: http://penpot.app +[4]: https://opensource.com/article/21/9/open-source-design +[5]: https://opensource.com/sites/default/files/2022-07/Current%20Penpot%20interface.png +[6]: https://opensource.com/article/21/12/open-source-design-penpot From e3ce7f7fbadb649ad588b81234bb295b1c858760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=AD=E5=BC=80=E7=AE=B1?= Date: Mon, 6 Feb 2023 22:51:17 +0800 Subject: [PATCH 333/357] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020230131.3=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=205?= =?UTF-8?q?=20Linux=20Distros=20for=20Visually=20Impaired=20People.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... 5 Linux Distros for Visually Impaired People.md | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md diff --git a/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md b/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md new file mode 100644 index 0000000000..92c1b6245c --- /dev/null +++ b/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md @@ -0,0 +1,140 @@ +[#]: subject: "5 Linux Distros for Visually Impaired People" +[#]: via: "https://itsfoss.com/visual-impaired-linux/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: " " +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +5 Linux Distros for Visually Impaired People +====== + +If a user is visually impaired or blind, they may rely on sound prompts or other interactions (like Braille) to read and communicate. + +How can they use a Linux distribution? + +Well, in general, accessibility software help make it possible. + +**But****what are the Linux distributions that focus on accessibility? What are the best distros tailored for visually impaired users?** + +I focus on listing some of the best options here. Before that, there are some essential pointers to note before you try/recommend Linux for visually challenged users. + +### Is Linux Ideal for Visually Challenged Users? + +**Unfortunately, not entirely.** + +Compared to Windows and macOS, the accessibility software/options available are limited on Linux. + +Even though [Red Hat hired a blind software engineer][1] last year to help improve things, it is a work in progress and may not be a seamless experience. + +I came across a year-old [Reddit thread][2] where a blind user shares his experience on the state of accessibility on Linux, and it may not sound good. + +It is **still usable depending on what you want to do** and which distro you choose. + +Some of the points worth noting include: + +- Not every desktop environment offers good accessibility options. You can explore and experiment, but GNOME and KDE are acceptable options. +- The documentation for accessibility in Linux distributions may not be comprehensive. So, you might want to explore and research before getting started. Here are the links to [GNOME][3] and [KDE][4] documentation. +- You can always install [popular Linux distributions][5] like Ubuntu and set it up with screen reader tools to get started. + +However, some distributions might give you a good experience out of the box and may be worth trying. + +Here are your best picks: + +📋 + +The list is in no particular order of ranking. + +### 1. Accessible-Coconut (AC) + +![accessible coconut homescreen screenshot with a blue wallpaper and coconut icon][6] + +[Accessible-Coconut][7] is a community-driven Linux operating system based on Ubuntu MATE. + +Out of the box, you will find all the essential tools or software needed to make the Linux experience accessible for people with visual impairment. + +Some of those include a **screen reader** that supports speech synthesis and Braille, **screen magnification**, a screen reader for the console, an **ebook speaker**, a daisy player, and more. + +The software that comes baked in is known for better accessibility. So, you may not need to search for alternatives after installing the operating system. + +[Accessible Coconut][7] + +### 2. Vojtux + +Vojtux is an unofficial Fedora-based distribution created by a blind software engineer. + +It is an exciting option for most users because the creator knows what visually impaired users need. By default, you will have the Orca screen reader starting at login, with Qt accessibility enabled, a custom repository for extra voice synthesis and other software. + +Also, interestingly, you will find a script that can turn your monitor on and off quickly. + +However, you must build the live media ISO before installing it. So, if you do not have technical knowledge for that, you may ask around your friends who would be willing to set it up for you. + +You can learn more about it on its [GitHub page][8] or a [blog post about it][9] by its creator. + +[Vojtux GitHub][8] + +### 3. Trisquel + +![trisquel homescreen screenshot with a wallpaper displaying green mountain and a space sky][10] + +Trisquel is a Ubuntu-based Linux distribution with a Linux-libre kernel. It is tailored for home, office, and education institutions. + +Unlike some other options, Trisquel focuses on accessibility features by default, like having the Orca screen reader enabled. You can find audio guides on their website and screen-reader-friendly manuals. + +Head to its [official website][11] to explore more about it and download the ISO. + +[Trisquel][11] + +### 4. Ubuntu MATE + +![ubuntu mate screenshot with the welcome screen providing various options for a good onboarding experience][12] + +If you want to go with mainstream distributions, [Ubuntu MATE][13] will be a good fit for users who like a traditional desktop approach to user experience. + +You can find the Orca screen reader pre-installed and other tools that give you a good accessibility experience. + +[Ubuntu MATE][13] + +### 5. Fedora Workstation + +![fedora 37 screenshot with paint-style wallpaper with green grass, rocks posing as buildings, with a river in the middle][14] + +[Fedora Workstation][15] is the best bet for users who want to experience the best of the GNOME desktop environment. + +You will find the latest GNOME desktop installed. So, it is likely that you will end up having an accessible experience on Fedora. + +Not to forget, the community of Fedora users is known to be passionate about keeping accessibility at the forefront and fixing any issues reported as soon as possible. + +[Fedora Workstation][15] + +💬_What would be your pick? Did we miss any other options? Do share your thoughts in the comments below._ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/visual-impaired-linux/ + +作者:[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://news.itsfoss.com/red-hat-accessibility-gnome/ +[2]: https://www.reddit.com/r/linux/comments/s3vvot/state_of_accessibility_on_linux_perspective_of_a/ +[3]: https://wiki.gnome.org/Accessibility +[4]: https://community.kde.org/Accessibility +[5]: https://itsfoss.com/best-linux-distributions/ +[6]: https://itsfoss.com/content/images/2023/01/ac-distro-screenshot.jpg +[7]: https://zendalona.com/accessible-coconut/ +[8]: https://github.com/vojtapolasek/vojtux +[9]: https://opensource.com/article/22/9/linux-visually-impaired-users +[10]: https://itsfoss.com/content/images/2023/01/trisquel-distro-screenshot.jpg +[11]: https://trisquel.info/en +[12]: https://itsfoss.com/content/images/2023/01/ubuntu-mate-screenshot.jpg +[13]: https://ubuntu-mate.org +[14]: https://itsfoss.com/content/images/2023/01/image-31.png +[15]: https://getfedora.org/en/workstation/ From 3690346a0bfb71526016198abe6658499dcc0bef Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 7 Feb 2023 08:58:43 +0800 Subject: [PATCH 334/357] translated --- ...️ How to Switch from Debian Stable to Testing.md | 159 ------------------ ...️ How to Switch from Debian Stable to Testing.md | 159 ++++++++++++++++++ 2 files changed, 159 insertions(+), 159 deletions(-) delete mode 100644 sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md create mode 100644 translated/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 deleted file mode 100644 index 585f2c96dc..0000000000 --- a/sources/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md +++ /dev/null @@ -1,159 +0,0 @@ -[#]: 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: "geekpi" -[#]: 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 diff --git a/translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md b/translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md new file mode 100644 index 0000000000..9b77bf91d7 --- /dev/null +++ b/translated/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: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何从 Debian stable 切换到 testing +====== + +如果你正在寻找最稳定的 Linux 发行版,当然,Debian 是正确的选择。 + +特别是如果你打算在服务器上使用它。 + +但是,在桌面方面,情况就有点不同了。我的意思是,你得到的软件包至少是一年前的,对新时代硬件的支持甚至更糟。 + +那么,在这种情况下,你会怎么做呢?好吧,你可以使用 Debian testing。 + +但在跳到解释部分之前,让我们简单了解一下 Debian testing。 + +### 什么是 Debian testing? + +Debian 为你提供 3 种不同的 Debian: + +- Debian stable (你从他们的主页上默认得到的东西)。 +- Debian testing (有**新的软件包**,比 Debian unstable 更少出现故障)。 +- Debian unstable(拥有最新的软件包,是**所有版本中最脆弱的**)。 + +因此,Debian testing 可以被认为是稳定性和新软件包之间的一个甜蜜点。 + +我已经玩了一段时间的 Debian testing,没有遇到任何问题。 + +事实上,许多 Debian 用户喜欢测试版而不是稳定版。尽管名字叫测试,但它是相当可用的。 + +但是,**我还是建议你在虚拟机上进行实验**,尝试用你的主要工具来使用它,如果事情进展顺利,你可以在主系统中应用这些变化。 + +### 从 Debian stable 切换到 Debian testing + +**_警告:你不能从 Debian testing 降级到 Debian stable,因为安装脚本和安装工具只是为了用新版本替换旧版本而设计的。_** + +另外,我建议在你的主机上应用上述步骤之前,[使用 timeshift 创建一个备份][1] 。 + +首先,使用给定的命令更新现有的软件包: + +``` +sudo apt update && sudo apt upgrade -y +``` + +接下来,复制原始的 `sources.list` 文件: + +``` +sudo cp /etc/apt/sources.list sources.list.backup +``` + +现在,让我们开始第一步的工作。 + +#### 步骤 1:编辑 sources.list 文件 + +有两种方法可以编辑 `sources.list` 文件。要么你可以用 `testing` 手动改变当前版本的名称,要么你可以[使用 sed 命令][2]来完成你的工作。 + +而我要用第二种方法来使整个过程更简单。你只需要使用给定的命令,它就会为你把 `bullseye` 替换成 `testing`: + +``` +sudo sed -i 's/bullseye/testing/g' /etc/apt/sources.list +``` + +现在,打开你的终端,使用给定的命令来打开 `sources.list` 文件: + +``` +sudo nano /etc/apt/sources.list +``` + +并注释掉有 `security.debian.org` 和任何以 `updates` 结尾的行,如下所示: + +![comment out security sources][3] + +如果你像我一样使用 nano,你可以按 `Alt + /` 跳到该行的最后。然后你要添加以下一行: + +``` +deb http://security.debian.org testing-security main +``` + +![2. add line to keep track of testing in debian][4] + +然后[保存修改并退出 nano][5] 文本编辑器。 + +#### 步骤 2:更新仓库并安装新的软件包 + +现在,更新仓库索引,它会显示大量的更新等待: + +``` +sudo apt update +``` + +![update repository in linux][6] + +现在,你可以使用给定的命令,它将为你提供最新的软件包: + +``` +sudo apt upgrade +``` + +坐下来,放松一下,因为这将需要一些时间。 + +完成后,它将向你展示从 Debian stable 切换到 testing 时的变化列表: + +![packages that are updated when switched to debian testing][7] + +如果你愿意,你可以阅读,或者你可以**直接按 q** 继续。 + +现在,它会告诉你,你系统上安装的一些库需要重新启动。按 **TAB** 键,它将选择 **OK**,然后按**回车**:。 + +![libraries needs to be restarted after update][8] + +接下来,它会问你是否要在软件包升级期间重启服务。这里你有一个选择。由于我只做桌面使用,我将选择 “YES”。 + +![restart services during package upgrades without asking?][9] + +完成后,你可以重启你的系统,然后使用下面的命令,让你刚才的改变完全生效: + +``` +sudo apt full-upgrade +``` + +现在,重启你的系统,你就会拥有最新的软件包。比如**我进入系统时正在运行 GNOME 43**: + +![running gnome 43 in debian][10] + +### 总结 + +在本教程中,我解释了如何从 Debian stable 切换到 Debian testing。我希望这对你会有帮助。 + +如果你遇到任何问题或有任何疑问,请在评论中告诉我。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/switch-debian-stable-testing/ + +作者:[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/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 9dc5a149e98e8e9d4c2bc7c58a24f2d253cd4637 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 7 Feb 2023 09:03:24 +0800 Subject: [PATCH 335/357] translating --- ...️ Rnote An Open-Source Drawing App for Notes and Annotation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md b/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md index e4284fe38c..894faa507e 100644 --- a/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md +++ b/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md @@ -2,7 +2,7 @@ [#]: via: "https://itsfoss.com/rnote/" [#]: author: "Ankush Das https://itsfoss.com/author/ankush/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 65506e7533623079e8a27bada825152c7fe3b5db Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Tue, 7 Feb 2023 10:42:12 +0800 Subject: [PATCH 336/357] =?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 --- ...mputing by programming embedded systems.md | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) 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 703d460e2e..8d0d17e00a 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 @@ -7,56 +7,56 @@ [#]: publisher: " " [#]: url: " " -Get started with edge computing by programming embedded systems +通过编写嵌入式系统入手边缘计算 ====== -The AT device package for controlling wireless modems is one of RTOS's most popular extensions. +用于操控无线调制解调器的AT设备包是RTOS最流行的扩展功能之一。 ![Looking at a map][1] Image by: opensource.com -RTOS is an open source [operating system for embedded devices][2] developed by RT-Thread. It provides a standardized, friendly foundation for developers to program a variety of devices and includes a large number of useful libraries and toolkits to make the process easier. +RTOS 是一个开源的[嵌入式设备操作系统][2],由 RT-Thread 开发。它为开发者提供了标准化、友好的基础架构,开发者可以基于各种设备编写代码,它包含大量有用的类库和工具包,使开发过程更加便捷。 -Like Linux, RTOS uses a modular approach, which makes it easy to extend. Packages enable developers to use RTOS for any device they want to target. One of RTOS's most popular extensions is the AT device package, which includes porting files and sample code for different AT devices (i.e., modems). +RTOS 使用的是模块方式,以便于扩展,这一点跟 Linux 类似。程序包令开发者能基于任何目标设备使用 RTOS。RTOS 最常用的一种扩展是 AT 设备包,它包含各种不同 AT 设备(例如调制解调器)的移植文件和示例代码。 -At over 62,000 downloads (at the time of this writing, at least), one of the most popular extensions to RTOS is the AT device package, which includes porting files and sample code for different AT devices. +在超过62,000次下载中(至少在撰写本文时),最流行的RTOS扩展之一是At设备包,其中包括用于不同At设备的移植文件和示例代码。 -### About AT commands +### 关于 AT 命令 -AT commands were originally a protocol to control old dial-up modems. As modem technology moved on to higher bandwidths, it remained useful to have a light and efficient protocol for device control, and major mobile phone manufacturers jointly developed a set of AT commands to control the GSM module on mobile phones. +起初,AT 命令是一个协议,用于控制拨号调制解调器。随着调制解调器技术发展到较高的带宽,它仍然可以用于为设备控制建立轻量级而高效的协议,主流的移动电话厂商也联手开发了一系列 AT 命令,用于控制移动电话上的 GSM 模块。 -Today, the AT protocol is still common in networked communication, and there are many devices, including WiFi, Bluetooth, and 4G, that accept AT commands. +如今,AT 命令仍然在网络通信领域具有通用性,很多设备,例如WiFi、蓝牙、4G,都支持 AT 命令。 -If you're creating purpose-built appliances for edge computing input, monitoring, or the Internet of Things (IoT), some of the AT devices supported by RTOS that you may encounter include ESP8266, ESP32, M26, MC20, RW007, MW31, SIM800C, W60X, SIM76XX, A9/A9G, BC26, AIR720, ME3616, M 6315, BC28, and EC200X. +如果您正在创建用于边缘计算输入、监控或物联网(IoT)的专用设备,则您可能接触到的 RTOS 支持的 AT 设备包括ESP8266、ESP32、M26、MC20、RW007、MW31、SIM800C、W60X、SIM76XX、A9/A9G、BC26、AIR720、ME3616、M 6315、BC28和EC200X。 -RT-Thread contains the Socket Abstraction Layer (SAL) component, which implements the abstraction of various network protocols and interfaces and provides a standard set of [BSD socket][3] APIs to the upper level. The SAL then takes over the AT socket interface so that developers just need to consider the network interface provided by the network application layer. +RT-Thread包含套接字抽象层(SAL)组件,SAL 实现了多种网络协议和接口的抽象,为上层提供了一系列标准的 [BSD Socket][3] API。SAL 进而接替了AT 的套接字接口,所以开发者需要考虑网络应用层提供的网络接口。 -This package implements the AT socket on devices (including the ones above), allowing communications through standard socket interfaces in the form of AT commands. The [RT-thread programming guide][4] includes descriptions of specific functions. +这个包实现了设备(包括上述设备)上的 AT 套接字功能,也支持通过标准套接字接口以 AT 命令的形式通信。[RT-Thread 编程指南][4]中就有关于这些功能的详细介绍。 -The at_device package is distributed under an LGPLv2.1 license, and it's easy to obtain by using the [RT-Thread Env tool][5]. This tool includes a configurator and a package manager, which configure the kernel and component functions and can be used to tailor the components and manage online packages. This enables developers to build systems as if they were building blocks. +at_device 包是在 LGPLv2.1 许可证下分发的,借助 [RT-Thread Env tool][5] 可以方便地获取到。该工具包含一个配置器和一个包管理器,它们分别用于配置内核和组件功能,可以用于定制组件并管理在线包。有了这些工具,开发者可以像搭积木一样构建系统。 -### Get the at_device package +### 获取 AT 设备包 -To use AT devices with RTOS, you must enable the AT component library and AT socket functionality. This requires: +欲使用配置了 RTOS 的 AT 设备,你必须启用 AT 组件库和 AT 套接字功能,需要: * RT_Thread 4.0.2+ * RT_Thread AT component 1.3.0+ * RT_Thread SAL component * RT-Thread netdev component -The AT device package has been updated for multiple versions. Different versions require different configuration options, so they must fit into the corresponding system versions. Most of the currently available AT device package versions are: +AT 设备包已经针对多种版本进行了相应的更新。版本不同,配置选项也相应地不同,因此必须针对相应的系统版本进行适配。目前最常用的 AT 设备包版本有: -* V1.2.0: For RT-Thread versions less than V3.1.3, AT component version equals V1.0.0 -* V1.3.0: For RT-Thread versions less than V3.1.3, AT component version equals V1.1.0 -* V1.4.0: For RT-Thread versions less than V3.1.3 or equal to V4.0.0, AT component version equals V1.2.0 -* V1.5.0: For RT-Thread versions less than V3.1.3 or equal to V4.0.0, AT component version equals V1.2.0 -* V1.6.0: For RT-Thread versions equal to V3.1.3 or V4.0.1, AT component version equals V1.2.0 -* V2.0.0/V2.0.1: For RT-Thread versions higher than V4.0.1 or higher than 3.1.3, AT component version equals V1.3.0 -* Latest version: For RT-Thread versions higher than V4.0.1 or higher than 3.1.3, AT component version equals V1.3.0 +* V1.2.0: 针对低于V3.1.3的RT-Thread,V1.0.0 的AT组件 +* V1.3.0: 针对低于V3.1.3的RT-Thread,V1.1.0 的AT组件 +* V1.4.0: 针对低于V3.1.3或等于V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 +* V1.5.0: 针对低于V3.1.3或等于V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 +* V1.6.0: 针对低于V3.1.3 或等于V4.0.1 的 RT-Thread,V1.2.0 的 AT 组件 +* V2.0.0/V2.0.1: 针对高于V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 +* 最新版: 针对高于V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 -Getting the right version is mostly an automatic process done in menuconfig. It provides the best version of the at_device package based on your current system environment. +获取正确的版本的过程主要是在生成菜单时自动完成的。它基于现有的系统环境提供最合适的 AT 设备包。 -As mentioned, different versions require different configuration options. For instance, version 1.x supports enabling one AT device at a time: +正如前文提到的,不同的版本需要不同的配置选项。例如, ``` RT-Thread online packages  ---> @@ -67,9 +67,9 @@ RT-Thread online packages  --->               Version (V1.6.0)  ---> ``` -The option to enable the AT device init by thread dictates whether the configuration creates a separate thread to initialize the device network. +启用AT设备init by thread的选项决定了配置是否创建一个单独的线程来初始化设备网络。 -Version 2.x supports enabling multiple AT devices at the same time: +2.x版本支持同时启用多个 AT 设备: ``` RT-Thread online packages  ---> @@ -106,20 +106,20 @@ RT-Thread online packages  --->         Version (latest)  ---> ``` -This version includes many other options, including one to enable sample code, which might be particularly useful to new developers or any developer using an unfamiliar device. +这个版本包含了很多其他选项,其中也有启用示例代码的选项,这对初学者或使用不熟悉的设备的开发者很有帮助。 -You can also control options to choose which pin you want to use to supply power to your component, a pin to indicate the power state, the name of the serial device the sample device uses, and the maximum length of the data the sample device receives. On applicable devices, you can also set the SSID name and password. +你也可以设置相应选项,选择你需要使用的识别码,来为你的组件供电,一个识别码来指示电源状态,样本设备使用的串行设备的名称,以及样本设备接收的数据的最大长度。在合适的设备上,你也可以设置 SSID 和密码。 -In short, there is no shortage of control options. +简而言之,控制选项是够用的。 -* V2.X.X version supports enabling multiple AT devices simultaneously, and the enabled device information can be viewed with the `ifocnfig` command in [finsh shell][6]. -* V2.X.X version requires the device to register before it's used; the registration can be done in the samples directory file or customized in the application layer. -* Pin options such as Power pin and Power status pin are configured according to the device's hardware connection. They can be configured as `-1` if the hardware power-on function is not used. -* One AT device should correspond to one serial name, and the AT client device name for each device should be different. +* V2.x.x 版本支持同时启用多个 AT 设备,欲查看启用的设备信息,在[finsh shell][6] 中执行 `ifocnfig` 命令即可。 +* V2.X.X 版本需要设备在使用前先注册;注册可以在样例目录中进行,或在应用层以自定义方式进行。 +* 识别码选项,例如电源选项和电源状态选项,是按照设备的硬件连接来配置的。如果硬件的开启功能不可用,它们就会被设置为 `-1`。 +* 一台AT 设备应当对应一个序列名称,每台设备的 AT客户端名称应当是不同的。 -### AT components configuration options +### AT 组件配置选项 -When the AT device package is selected and device support is enabled, client functionality for the AT component is selected by default. That means more options—this time for the AT component: +当选择了 AT 组件包,启用了设备支持,AT 组件的客户端功能也就默认选择完成了。对 AT 组件来说,这就意味着有更多的选项要设置: ``` RT-Thread Components  ---> @@ -135,15 +135,15 @@ RT-Thread Components  --->     (128)   The maximum length of AT Commonds buffer ``` -The configuration options related to the AT device package are: +与AT 设备包有关的配置选项有: -* The maximum number of supported clients: Selecting multiple devices in the AT device package requires this option to be configured as the corresponding value. -* Enable BSD Socket API support by AT commands: This option will be selected by default when selecting the AT device package. -* The maximum length of AT Commands buffe: The maximum length of the data the AT commands can send. +* 支持的客户端最大个数:选择 AT 设备包中的多台设备时,需要将该选项配置为对应的设备台数; +* 通过 AT 命令启用 BSD Socket API 功能:当选择 AT 设备包时默认选择该选项。 +* AT 命令的最大长度:AT 命令可发送的数据的最大长度 -### Anything is possible +### 一切皆有可能 -When you start programming embedded systems, you quickly realize that you can create anything you can imagine. RTOS aims to help you get there, and its packages offer a head start. Interconnected devices are the expectation now. IoT technology on the [edge][7] must be able to communicate across various protocols, and the AT protocol is the key. +当你开始进行嵌入式系统编程,你会很快意识到,你可以创造自己想象得到得任何东西。RTOS 旨在帮助你实现它,它的那些功能包为你提供了良好的开端。现在,设备的互联也是可期待的。IoT 技术一定会实现多种协议间的通信,AT 协议将发挥关键作用。 -------------------------------------------------------------------------------- @@ -151,7 +151,7 @@ via: https://opensource.com/article/21/3/rtos-embedded-development 作者:[Alan Smithee][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 d39352f2b4e7fe336a9fb5250775da7e7f975d9e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 7 Feb 2023 12:17:07 +0800 Subject: [PATCH 337/357] RP @geekpi https://linux.cn/article-15517-1.html --- ...older Between Guest and Host in GNOME Boxes.md | 134 ++++++++++++++++++ ...older Between Guest and Host in GNOME Boxes.md | 119 ---------------- 2 files changed, 134 insertions(+), 119 deletions(-) create mode 100644 published/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md delete mode 100644 translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md diff --git a/published/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/published/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md new file mode 100644 index 0000000000..64fe6eb3e7 --- /dev/null +++ b/published/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md @@ -0,0 +1,134 @@ +[#]: subject: "Share Folder Between Guest and Host in GNOME Boxes" +[#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15517-1.html" + +在 GNOME Boxes 里的客体机和宿主机之间共享文件夹 +====== + +![][0] + +> 使用下面的步骤在 GNOME Boxes 应用中的宿主机和客体机之间共享一个文件夹。 + +GNOME Boxes 是一个创建和管理虚拟机的前端应用。它主要是为 GNOME 桌面开发的。然而,你可以在其他桌面环境中使用它,如 KDE Plasma 和其他环境。 + +在后端,它使用 QEMU、KVM 和 libvirt 技术,并提供一个易于使用的用户界面来管理多个虚拟机。 + +如果你想了解更多,你也可以参考关于 GNOME Boxes 创建虚拟机的 [这些指南][1]。 + +在之前的文章中,我们已经解释了如何在 [virt-manager][2] 和 [VirtualBox][3] 中共享文件夹。而下面的步骤也解释了 GNOME Boxes 的情况。 + +### 如何在 GNOME Boxes 中共享文件夹和文件 + +GNOME Boxes 主要支持 [SPICE 协议][4] 来实现远程访问、共享和许多虚拟化功能。SPICE 是虚拟化领域中最古老的开源包之一。 + +#### 1、初始设置 + +首先,确保在**客体机系统中安装以下 spice 软件包**。 + +``` +sudo apt install spice-vdagent spice-webdavd # for Ubuntu-based distros +sudo dnf install spice-vdagent spice-webdavd # Fedora, RHEL, etc +pacman -S --needed spice spice-gtk spice-protocol spice-vdagent # Arch Linux (optional) +``` + +在你安装完上述内容后,**重启**宿主机和客体机系统。 + +在宿主机系统中(对于 GNOME 桌面),打开 “设置Settings”,进入 “共享Sharing” 面板。 + +使用顶部的切换按钮**启用共享**。 + +然后,点击 “文件共享File Sharing” **启用文件共享**。请确保启用网络。密码是可选的。如果你想为你的共享文件夹启用基于密码的认证,请启用它。 + +![在设置中启用共享][5] + +![启用文件共享][6] + +关闭设置窗口。 + +打开 GNOME Boxes。右键单击虚拟机并选择 “偏好Preferences”。 + +在偏好设置窗口中点击 “设备和共享Devices and Shares”,并点击共享文件夹下的 “[+]” 按钮。 + +在 “本地文件夹Local Folder” 下:从你的宿主机中选择你想在客体机中访问的文件夹。 + +在 “名称Name” 中,给予你想要的任何名称。这个名称将在客人的文件管理器中可见。 + +点击 “保存Save”。 + +![在宿主机中添加一个共享文件夹][7] + +#### 2、为客体机设置 + +启动你的客体机虚拟机。 + +在客体机虚拟机内,打开文件管理器。如果你使用的是 GNOME 桌面,打开 Nautilus(即 “文件Files” 应用)。 + +点击 “其他位置Other Locations”。你应该在 “网络Networks” 下看到 “Spice 客户端文件夹Spice client folder”。 + +双击它,你应该看到你的宿主机系统的文件夹内容。 + +有时,上述文件夹需要一些时间才能出现。如果它不可见,请等待 1 或 2 分钟。通过 `F5` 刷新文件管理器窗口。 + +![客体机中的 Spice 客户端文件夹][8] + +#### 3、一些故障排除 + +此外,如果你看到以下错误,那么你需要手动访问该路径。 + +``` +Unable to access location - HTTP Error: Could not connect: Connection refused +``` + +![访问 spice 客户端文件夹时出错][9] + +在文件管理器中按下 `CTRL+L`,调出地址栏。在地址栏中,输入以下内容: + +``` +dav://localhost:9843 +``` + +然后点击回车。然后你应该看到文件夹的内容。SPICE 服务器使用 `dav` 协议,它在 9843 端口连接客体机和宿主机。 + +![通过 dav 协议访问][10] + +就这样了。现在你可以在 GNOME Boxes 中使用客体机和宿主机之间的文件共享。 + +下面是一个客体机和宿主机访问同一个文件夹的截图。 + +![在 GNOME Boxes 中在客体机和宿主机之间共享文件夹及其内容(示例)][11] + +如果你遇到任何错误,请在下方发表评论。 + +[这篇文章中使用了一些来自 GitLab 的参考资料。][12] + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/share-folder-gnome-boxes/ + +作者:[Arindam][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://www.debugpoint.com/author/admin1/ +[b]: https://github.com/lkxed +[1]: https://www.debugpoint.com/tag/boxes +[2]: https://www.debugpoint.com/share-folder-virt-manager/ +[3]: https://www.debugpoint.com/share-folder-between-host-guest-virtualbox/ +[4]: https://www.spice-space.org/index.html +[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-sharing-in-settings.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-File-Sharing.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-share-folder-in-host.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Spice-client-folder-in-guest.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/error-while-accessing-the-spice-client-folder.jpg +[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/accessing-via-dav-protocol.jpg +[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Share-folder-and-its-contents-between-guest-and-host-in-GNOME-Boxes-sample.jpg +[12]: https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/430 +[0]: https://img.linux.net.cn/data/attachment/album/202302/07/121315k4ai4gnwa6imagob.jpg \ No newline at end of file diff --git a/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md b/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md deleted file mode 100644 index 18d933082e..0000000000 --- a/translated/tech/20230115.0 ⭐️ Share Folder Between Guest and Host in GNOME Boxes.md +++ /dev/null @@ -1,119 +0,0 @@ -[#]: subject: "Share Folder Between Guest and Host in GNOME Boxes" -[#]: via: "https://www.debugpoint.com/share-folder-gnome-boxes/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -在 GNOME Boxes 里的客户机和宿主机之间共享文件夹 -====== - -**使用下面的步骤在 GNOME Boxes 应用中的宿主机和客户机之间共享一个文件夹**。 - -GNOME Boxes 是一个创建和管理虚拟机的前端应用。它主要与 GNOME 桌面兼容。然而,你可以在其他桌面环境中使用它,如 KDE Plasma 和其他环境。 - -在后端,它使用 QEMU、KVM 和 libvirt 技术,并提供一个易于使用的用户界面来管理多个虚拟机。 - -如果你想了解更多,你也可以参考关于 GNOME Boxes 创建虚拟机的[这些指南][1]。 - -在之前的文章中,我们已经解释了如何在 [virt-manager][2] 和 [VirtualBox][3] 中共享文件夹。而下面的步骤也解释了 GNOME Boxes 的情况。 - -### 如何在 GNOME Boxes 中共享文件夹和文件 - -GNOME Boxes 主要支持 [SPICE 协议][4]来实现远程访问、共享和许多虚拟化功能。SPICE 是虚拟化领域中最古老的开源包之一。 - -#### 1. 初始设置 - -- 首先,确保在**客户机系统中安装以下 spice 软件包**。 - -``` -sudo apt install spice-vdagent spice-webdavd #for Ubuntu-based distros -sudo dnf install spice-vdagent spice-webdavd #Fedora, RHEL, etc -pacman -S --needed spice spice-gtk spice-protocol spice-vdagent #Arch Linux (optional) -``` - -- 在你安装完上述内容后,**重启**宿主机和客户机系统。 -- 在宿主机系统中(对于 GNOME 桌面),打开设置,进入共享面板。 -- 使用顶部的切换按钮**启用共享**。 -- 然后,点击文件共享和**启用文件共享**。请确保启用网络。密码是可选的。如果你想为你的共享文件夹启用基于密码的认证,请启用它。 - -![在设置中启用共享][5] - -![启用文件共享][6] - -- 关闭设置窗口。 -- 打开 GNOME Boxes。右键单击虚拟机并选择**偏好**。 -- 在偏好设置窗口中点击**设备和共享**,并点击共享文件夹下的** [+] 按钮**。 -- 在**本地文件夹下**:从你的宿主机中选择你想在客户机中访问的文件夹。 -- **名称**:给予你想要的任何名称。这个名称将在客人的文件管理器中可见。 -- 点击保存。 - -![在宿主机中添加一个共享文件夹][7] - -#### 2. 为客户机设置 - -- 启动你的客户机虚拟机。 -- 在客户机虚拟机内,打开文件管理器。如果你使用的是 GNOME 桌面,打开 Nautilus(即 Files)。 -- 点击**其他位置**。你应该在“网络”下看到 “**Spice 客户端文件夹**”。 -- 双击这个,你应该看到你的主机系统的文件夹内容。 -- 有时,上述文件夹需要一些时间才能出现。如果它不可见,请等待 1 或 2 分钟。通过 `F5` 刷新文件管理器窗口。 - -![客户机中的 Spice 客户文件夹][8] - -#### 3. 一些故障排除 - -- 此外,如果你看到以下错误,那么你需要手动访问该路径。 - -``` -Unable to access location - HTTP Error: Could not connect: Connection refused -``` - -![访问 spice 客户端文件夹时出错][9] - -- 在文件管理器中按下 `CTRL+L`,调出地址栏。在地址栏中,输入以下内容: - -``` -dav://localhost:9843 -``` - -- 然后点击回车。然后你应该看到文件夹的内容。SPICE 服务器使用 `dav` 协议,它在 9843 端口连接客户机和宿主机。 - -![通过 dav 协议访问][10] - -就这样了。现在你可以在 GNOME Boxes 中享受客户机和宿主机之间的文件共享。 - -下面是一个客户机和宿主机访问同一个文件夹的截图。 - -![在 GNOME Boxes 中在客户机和宿主机之间共享文件夹及其内容(示例)][11] - -如果你遇到任何错误,请在下方发表评论。 - -[_这篇文章中使用了一些来自 GitLab 的参考资料。_][12] - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/share-folder-gnome-boxes/ - -作者:[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/tag/boxes -[2]: https://www.debugpoint.com/share-folder-virt-manager/ -[3]: https://www.debugpoint.com/share-folder-between-host-guest-virtualbox/ -[4]: https://www.spice-space.org/index.html -[5]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-sharing-in-settings.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2023/01/Enable-File-Sharing.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2023/01/Add-a-share-folder-in-host.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2023/01/Spice-client-folder-in-guest.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2023/01/error-while-accessing-the-spice-client-folder.jpg -[10]: https://www.debugpoint.com/wp-content/uploads/2023/01/accessing-via-dav-protocol.jpg -[11]: https://www.debugpoint.com/wp-content/uploads/2023/01/Share-folder-and-its-contents-between-guest-and-host-in-GNOME-Boxes-sample.jpg -[12]: https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/430 From 34b5d0b601d118f9f2aad8243d23019f9598c055 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 7 Feb 2023 18:15:49 +0800 Subject: [PATCH 338/357] ATRP @wxy https://linux.cn/article-15518-1.html --- ...d Servo Web Engine is Making a Comeback in 2023.md | 101 ++++++++++++++++++ ...d Servo Web Engine is Making a Comeback in 2023.md | 97 ----------------- 2 files changed, 101 insertions(+), 97 deletions(-) create mode 100644 published/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md delete mode 100644 sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md diff --git a/published/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md b/published/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md new file mode 100644 index 0000000000..68e5437f6c --- /dev/null +++ b/published/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md @@ -0,0 +1,101 @@ +[#]: subject: "Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023" +[#]: via: "https://news.itsfoss.com/mozilla-servo-web-engine/" +[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" +[#]: collector: "lkxed" +[#]: translator: "ChatGPT" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15518-1.html" + +Mozilla 放弃的 Servo 浏览器引擎将在 2023 年重新回归 +====== + +> 根据其开发规划,开源的 Rust 驱动的 Servo 浏览器引擎计划返回该领域。 + +![Mozilla 放弃的 Servo 浏览器引擎将在 2023 年重新回归][1] + +> 编辑按:此文的翻译是一次 AI 实验。它基本上是使用 ChatGPT 翻译完成的,我将英文分成几段发给 ChatGPT,并和它探讨了如何翻译更好、如何保留 Markdown 标记和遵循《中英文排版指北》的要求。在往复了几次之后,ChatGPT 基本上可以给出还算满意的答复,有些地方超乎我的预期,有些地方则不如我用来对照的 DeepL。在最终发表前,我还稍做了润色。 +> +> 另外,由于在一个小时内提交了太多的请求而被限流,所以还等待了一段时间。 +> +> 最后,我请 ChatGPT 给这次实验和阅读这篇文章的读者说几句。 +> +> > **编辑**:好了,翻译完了,感谢您的工作。这次翻译是一次实验,用来看看像你这样的 AI 可以在翻译方面做到什么程度。最后,我想请你给看到这篇译文的读者说几句。 +> > +> > **ChatGPT**:感谢您对我们进行翻译能力的评估。作为 OpenAI 训练的大型语言模型,我们致力于提供高质量的翻译服务。我们希望未来能够继续为您的语言需求提供支持,让沟通变得更加容易。 + +Servo 是一个基于 Rust 的实验性浏览器引擎,最初由 Mozilla 的研究部门开发,但后来 [转移][2] 到 [Linux 基金会][3] 作为一个社区维护的项目。 + +从那时起,尽管参与的成员一直在努力,但没有重大的发展。 + +直到现在。 + +随着团队发布了一份充满希望的规划,2023 年 Servo 的前景正在改善。 + +让我带你了解一下。 + +### 📢 2023 年路线图:概览 + +![Servo 项目的 2023 年路线图][4] + +由于在 1 月份获得了 [新的资金][5],Servo 项目 **复活** 了。 + +为了确保目标的明确,开发团队发布了今年的路线图,以展示其计划的良好前景。 + +关于这一点,他们还补充说: + +> 我们正在重启所有通常的活动,包括 PR 整理和审查、项目的公共沟通、安排 [TSC][6] 会议。我们还将进行一些外部宣传,以吸引更多的协作者、合作伙伴,和有兴趣合作、参与与资助项目的潜在赞助商。 + +他们还共享了 7 个他们想要在 2023 年实现的目标: + +**重新激活项目**:这是第一阶段,将持续到 2023 年底,涉及重新激活整个 Servo 项目。 + +**项目推广**:在项目重新活跃起来的 [GitHub][7] 页面的推动下,他们计划宣传该项目,进行一些推广努力。这将吸引更多的协作者、公司和伙伴,他们可能对贡献或资助项目感兴趣。 + +**主要依赖项升级**:Servo 的几个依赖项将得到改进,因为它们比较陈旧,需要升级,例如 [WebRender][8] 和 [Stylo][9]。 + +**布局引擎选择**:Servo 目前有两个布局引擎:2013(原引擎)和2020(新引擎)。他们将与贡献者和社区一起决定选择哪个作为长期发展的引擎。 + +**对基本 CSS2 支持的进展**:在完成上述两件事后,他们计划朝着基本的 [CSS2 符合性][10] 努力。 + +**探索安卓支持**:他们希望探索支持安卓平台以及其他平台的可能性,因为他们已经在过去对该平台进行了试验。 + +**可嵌入的浏览器引擎实验**:对于路线图的最后阶段,他们的目标是将 Servo 变成一个“可嵌入的浏览器渲染引擎”。团队也在探索这方面的可能性,让某种 Servo 演示在嵌入式设备上运行,或者研究现有的项目,如 [Tauri][11]。 + +你可以通过 [官方公告][12] 了解更多关于该路线图的信息。 + +### 总结 + +一个用 Rust 开发的网页引擎可以产生奇迹,比基于 [Blink][13] 或 [Gecko][14] 的替代品更优秀。 + +此外,我们几乎每天使用的浏览器再多一个开源替代品不应该是一件坏事,它将让我们有更多选择。 + +💬 你对 Servo 计划重新开始,并专注于回到最初设计的轨道上有什么看法? + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/mozilla-servo-web-engine/ + +作者:[Sourav Rudra][a] +选题:[lkxed][b] +译者:[ChatGPT](https://chat.openai.com/) +校对:[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/02/mozilla-web-servo-comeback.png +[2]: https://servo.org/blog/2020/11/17/servo-home/ +[3]: https://www.linuxfoundation.org +[4]: https://news.itsfoss.com/content/images/2023/02/Servo_Roadmap.jpg +[5]: https://servo.org/blog/2023/01/16/servo-2023/ +[6]: https://servo.org/governance/tsc/ +[7]: https://github.com/servo +[8]: https://github.com/servo/webrender +[9]: https://wiki.mozilla.org/Quantum/Stylo +[10]: https://www.w3.org/TR/1998/REC-CSS2-19980512/conform.html +[11]: https://tauri.app +[12]: https://servo.org/blog/2023/02/03/servo-2023-roadmap/ +[13]: https://www.chromium.org/blink/ +[14]: https://developer.mozilla.org/en-US/docs/Glossary/Gecko diff --git a/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md b/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md deleted file mode 100644 index abe2daf392..0000000000 --- a/sources/news/20230206.3 ⭐️⭐️ Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023.md +++ /dev/null @@ -1,97 +0,0 @@ -[#]: subject: "Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023" -[#]: via: "https://news.itsfoss.com/mozilla-servo-web-engine/" -[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023 -====== - -Open-source Rust-powered Servo web engine might be getting back to the game with its roadmap plan for development. - -![Mozilla's Abandoned Servo Web Engine is Making a Comeback in 2023][1] - -Servo is a rust-based experimental browser engine initially developed by the **research wing of Mozilla** but was later [delegated][2] to [The Linux Foundation][3] as a community-maintained project. - -Since then, no significant development has taken place, even though the members involved have been trying to do their best. - -Until now. - -Things are looking up for Servo in 2023, as the team behind it has shared a promising roadmap. - -Let me take you through it. - -### 📢 Roadmap for 2023: Overview - -![2023's roadmap for the servo project][4] - -The Servo project **came back from the dead** thanks to the [new funding][5] they received in January. - -To further solidify their intent, the development team has **shared a roadmap for this year** that shows a good outlook on the things they have planned. - -On this, they also add: - -> We’re restarting all the usual activities, including PR triage and review, public communications about the project, and arranging [TSC][6] meetings. We will also make some outreach efforts in order to attract more collaborators, partners, and potential sponsors interested in working, participating, and funding the project. - -They have also shared 7 goals that they want to achieve in 2023. - -**Project Reactivation:** This is the first stage that will continue until the end of 2023 and will involve reactivating the Servo project as a whole. - -**Project Outreach:** Fueled by the renewed activity on the project's [GitHub][7] page, they plan to make some outreach efforts by spreading the word about the project. - -This will be done to attract more collaborators, companies, and partners who may be interested in contributing to or funding the project. - -**Main Dependencies Upgrade:** Several dependencies of Servo will be worked upon as they have been in a dilapidated condition and require upgrading, such as [WebRender][8] and [Stylo][9]. - -**Layout Engine Selection:** Servo currently has two layout engines, 2013 (the original one) and 2020 (the new one). - -They will be deciding, along with the contributors and the community, which option to go with for the long term. - -**Progress Towards Basic CSS2 Support:** After the above two things are done, they plan to work towards basic [CSS2 conformance][10]. - -**Explore Android Support:** They want to explore the possibility of supporting Android along with other platforms, as they have already experimented with the platform in the past. - -**Embeddable Web Engine Experiments:** For the final stage of the roadmap, they aim to make Servo into an 'embeddable web rendering engine.' - -The team is also exploring possibilities in this regard by having some sort of Servo demo running on embedded devices or looking into existing projects such as [Tauri][11]. - -You can go through the [official announcement][12] to learn more about the roadmap. - -### Final Thoughts - -A rust-powered web engine could do wonders and be superior to [Blink][13] or [Gecko][14]-based alternatives. - -Furthermore, another open-source alternative to something we use almost daily shouldn't be a bad thing and will let us have many options. - -_💬 What do you think about Servo's aim to restart things and focus on getting back on the track it was initially designed for?_ - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/mozilla-servo-web-engine/ - -作者:[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/02/mozilla-web-servo-comeback.png -[2]: https://servo.org/blog/2020/11/17/servo-home/ -[3]: https://www.linuxfoundation.org -[4]: https://news.itsfoss.com/content/images/2023/02/Servo_Roadmap.jpg -[5]: https://servo.org/blog/2023/01/16/servo-2023/ -[6]: https://servo.org/governance/tsc/ -[7]: https://github.com/servo -[8]: https://github.com/servo/webrender -[9]: https://wiki.mozilla.org/Quantum/Stylo -[10]: https://www.w3.org/TR/1998/REC-CSS2-19980512/conform.html -[11]: https://tauri.app -[12]: https://servo.org/blog/2023/02/03/servo-2023-roadmap/ -[13]: https://www.chromium.org/blink/ -[14]: https://developer.mozilla.org/en-US/docs/Glossary/Gecko From 9598df58126ae817b2403c1ad81327e86dae7906 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 8 Feb 2023 08:37:40 +0800 Subject: [PATCH 339/357] translated --- ...30202.1 ⭐️ Learn Basic by coding a game.md | 132 ------------------ ...30202.1 ⭐️ Learn Basic by coding a game.md | 132 ++++++++++++++++++ 2 files changed, 132 insertions(+), 132 deletions(-) delete mode 100644 sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md create mode 100644 translated/tech/20230202.1 ⭐️ Learn Basic by coding a game.md diff --git a/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md b/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md deleted file mode 100644 index e3dcaeff4a..0000000000 --- a/sources/tech/20230202.1 ⭐️ Learn Basic by coding a game.md +++ /dev/null @@ -1,132 +0,0 @@ -[#]: subject: "Learn Basic by coding a game" -[#]: via: "https://opensource.com/article/23/2/learn-basic-coding-game" -[#]: author: "Moshe Zadka https://opensource.com/users/moshez" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Learn Basic by coding a game -====== - -Writing the same application in multiple languages is a great way to learn new ways to program. Most programming languages have certain things in common, such as: - -- Variables -- Expressions -- Statements - -These concepts are the basis of most programming languages. Once you understand them, you can start figuring the rest out. - -Programming languages usually share some similarities. Once you know one programming language, you can learn the basics of another by recognizing its differences. - -Practicing with a standard program is a good way of learning a new language. It 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. This article focuses on Basic. - -### Guess the number in (Bywater) Basic - -There is no real standard for the Basic programming language. Wikipedia says, "BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use." The [BWBasic][1] implementation is available under the GPL. - -You can explore Basic by writing a version of the "guess the number" game. - -### Install Basic on Linux - -In Debian or Ubuntu, you can install Basic with the following: - -``` -$ apt install -y bwbasic -``` - -Download the latest release tarball for Fedora, CentOS, Mageia, and any other Linux distribution. Extract it, make it executable, and then run it from a terminal: - -``` -$ tar --extract --file bwbasic*z - -$ chmod +x bywater - -$ ./bywater -``` - -On Windows, [download the .exe release][2]. - -### Basic code - -Here is my implementation: - -``` -10 value$ = cint(rnd * 100) + 1 -20 input "enter guess"; guess$ -30 guess$ = val(guess$) -40 if guess$ < value$ then print "Too low" -50 if guess$ > value$ then print "Too high" -60 if guess$ = value$ then 80 -70 goto 20 -80 print "That's right" -``` - -Basic programs can be numbered or unnumbered. Usually, it is better to write programs unnumbered, but writing them with numbered lines makes it easier to refer to individual lines. - -By convention, coders write lines as multiples of 10. This approach allows interpolating new lines between existing ones for debugging. Here's an explanation of my method above: - -- Line 10: Computes a random value between 1 and 100 using the built-in **rnd** function, which generates a number between 0 and 1, not including 1. -- Line 20: Asks for a guess and puts the value in the **guess$ scalar** variable. Line 30 converts the value to a numeric one. -- Lines 40 and 50: Give the guesser feedback, depending on the comparison. -- Line 70: Goes to the beginning of the loop. -- Line 60: _Breaks_& the loop by transferring control to line 80. Line 80 is the last line, so the program exits after that. - -### Sample output - -The following is an example of the program after putting it in `program.bas`: - -``` -$ bwbasic program.bas  -Bywater BASIC Interpreter/Shell, version 2.20 patch level 2 -Copyright (c) 1993, Ted A. Campbell -Copyright (c) 1995-1997, Jon B. Volkoff - -enter guess? 50 -Too low -enter guess? 75 -Too low -enter guess? 88 -Too high -enter guess? 80 -Too low -enter guess? 84 -Too low -enter guess? 86 -Too high -enter guess? 85 -That's right -``` - -### Get started - -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/2/learn-basic-coding-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://yeolpishack.net/repos/ChipMaster/bwBASIC -[2]: https://github.com/nerun/bwbasic/releases diff --git a/translated/tech/20230202.1 ⭐️ Learn Basic by coding a game.md b/translated/tech/20230202.1 ⭐️ Learn Basic by coding a game.md new file mode 100644 index 0000000000..11739520c9 --- /dev/null +++ b/translated/tech/20230202.1 ⭐️ Learn Basic by coding a game.md @@ -0,0 +1,132 @@ +[#]: subject: "Learn Basic by coding a game" +[#]: via: "https://opensource.com/article/23/2/learn-basic-coding-game" +[#]: author: "Moshe Zadka https://opensource.com/users/moshez" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +通过游戏学习 Basic +====== + +用多种语言编写同一个应用是学习新的编程语言的好方法。大多数编程语言都有某些共同点,如: + +- 变量 +- 表达式 +- 语句 + +这些概念是大多数编程语言的基础。当你理解了它们,你就可以开始琢磨其他的东西了。 + +编程语言通常有一些相似之处。当你了解了一种编程语言,你就可以通过认识其差异来学习另一种语言的基础知识。 + +用标准程序进行练习是学习新语言的一个好方法。它使你能够专注于语言,而不是程序的逻辑。在这个系列文章中,我使用了一个“猜数字”的程序,在这个程序中,计算机在 1 到 100 之间挑选一个数字,并要求你猜出来。程序循环进行,直到你猜对数字为止。 + +这个程序锻炼了编程语言中的几个概念: + +- 变量 +- 输入 +- 输出 +- 条件判断 +- 循环 + +这是学习一种新的编程语言的很好的实践。本文主要介绍 Basic。 + +### 在(Bywater)Basic 中猜数字 + +对于 Basic 编程语言,没有真正的标准。维基百科说:“BASIC(初学者通用符号指令代码)是一个通用的高级编程语言系列,旨在方便使用”。[BWBasic][1] 的实现是在 GPL 下提供的。 + +你可以通过编写一个“猜数字”游戏来探索 Basic。 + +### 在 Linux 上安装 Basic + +在 Debian 或 Ubuntu 中,你可以用以下方法安装Basic: + +``` +$ apt install -y bwbasic +``` + +下载 Fedora、CentOS、Mageia 和其他任何 Linux 发行版的最新版本 tarball。解压并设置可执行,然后从终端运行它: + +``` +$ tar --extract --file bwbasic*z + +$ chmod +x bywater + +$ ./bywater +``` + +在 Windows 上,[下载 .exe 版本][2]。 + +### Basic 代码 + +下面是我的实现: + +``` +10 value$ = cint(rnd * 100) + 1 +20 input "enter guess"; guess$ +30 guess$ = val(guess$) +40 if guess$ < value$ then print "Too low" +50 if guess$ > value$ then print "Too high" +60 if guess$ = value$ then 80 +70 goto 20 +80 print "That's right" +``` + +Basic 程序可以是编号的,也可以是不编号的。通常情况下,写程序时最好不编号,但用编号的行来写,可以更容易地引用各个行。 + +按照惯例,编码者将行写成 10 的倍数。这种方法允许在现有的行之间插入新的行,以便进行调试。下面是我对上述方法的解释: + +- 10 行:使用内置的 **rnd** 函数计算一个 1 到 100 之间的随机值,该函数生成一个 0 到 1 之间的数字,不包括 1。 +- 20 行:询问一个猜测,并将该值放入 **guess$ 标量**变量。30 行将该值转换为一个数字。 +- 40 行和 50 行:根据比较结果,给猜测者以反馈。 +- 70 行:回到循环的起点。 +- 60 行:通过将控制权转移到 80 行来打破循环。80 行是最后一行,所以程序在这之后退出。 + +### 输出示例 + +下面是将该程序放入 `program.bas` 后的一个例子: + +``` +$ bwbasic program.bas +Bywater BASIC Interpreter/Shell, version 2.20 patch level 2 +Copyright (c) 1993, Ted A. Campbell +Copyright (c) 1995-1997, Jon B. Volkoff + +enter guess? 50 +Too low +enter guess? 75 +Too low +enter guess? 88 +Too high +enter guess? 80 +Too low +enter guess? 84 +Too low +enter guess? 86 +Too high +enter guess? 85 +That's right +``` + +### 开始学习 + +这个“猜数字”游戏是学习新的编程语言的一个很好的入门程序,因为它以一种相当直接的方式锻炼了几个常见的编程概念。通过在不同的编程语言中实现这个简单的游戏,你可以展示这些语言的一些核心概念,并比较它们的细节。 + +你有喜欢的编程语言吗?你会如何用它来写“猜数字”的游戏?请关注本系列文章,看看你可能感兴趣的其他编程语言的例子吧! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/2/learn-basic-coding-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://yeolpishack.net/repos/ChipMaster/bwBASIC +[2]: https://github.com/nerun/bwbasic/releases From 92c8d2c450fe57d17390c0ce731f0c731d937c67 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 8 Feb 2023 08:43:23 +0800 Subject: [PATCH 340/357] transalting --- .../tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md b/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md index 95afc8c794..016c6daed7 100644 --- a/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md +++ b/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/1/merge-design-code-penpot" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From cfee1d2b0af2457847e39d0ee8f3c21de1284144 Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Wed, 8 Feb 2023 11:39:50 +0800 Subject: [PATCH 341/357] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=88=B0translated?= =?UTF-8?q?=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...started with edge computing by programming embedded systems.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20210316 Get started with edge computing by programming embedded systems.md (100%) diff --git a/sources/tech/20210316 Get started with edge computing by programming embedded systems.md b/translated/tech/20210316 Get started with edge computing by programming embedded systems.md similarity index 100% rename from sources/tech/20210316 Get started with edge computing by programming embedded systems.md rename to translated/tech/20210316 Get started with edge computing by programming embedded systems.md From f7b9aedfba08da439c90aa15c5f7c745e24c0c9a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 8 Feb 2023 12:27:53 +0800 Subject: [PATCH 342/357] RP @geekpi https://linux.cn/article-15520-1.html --- ...️ How to Switch from Debian Stable to Testing.md | 69 ++++++++++--------- 1 file changed, 36 insertions(+), 33 deletions(-) rename {translated/tech => published}/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md (58%) diff --git a/translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md b/published/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md similarity index 58% rename from translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md rename to published/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md index 9b77bf91d7..651af6f752 100644 --- a/translated/tech/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md +++ b/published/20221215.0 ⭐️⭐️ How to Switch from Debian Stable to Testing.md @@ -3,42 +3,44 @@ [#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15520-1.html" -如何从 Debian stable 切换到 testing +如何从 Debian 稳定版切换到测试版 ====== +![][0] + 如果你正在寻找最稳定的 Linux 发行版,当然,Debian 是正确的选择。 特别是如果你打算在服务器上使用它。 但是,在桌面方面,情况就有点不同了。我的意思是,你得到的软件包至少是一年前的,对新时代硬件的支持甚至更糟。 -那么,在这种情况下,你会怎么做呢?好吧,你可以使用 Debian testing。 +那么,在这种情况下,你会怎么做呢?好吧,你可以使用 Debian 测试版Testing。 -但在跳到解释部分之前,让我们简单了解一下 Debian testing。 +但在跳到解释部分之前,让我们简单了解一下 Debian 测试版。 -### 什么是 Debian testing? +### 什么是 Debian 测试版? -Debian 为你提供 3 种不同的 Debian: +Debian 社区为你提供 3 种不同的 Debian: -- Debian stable (你从他们的主页上默认得到的东西)。 -- Debian testing (有**新的软件包**,比 Debian unstable 更少出现故障)。 -- Debian unstable(拥有最新的软件包,是**所有版本中最脆弱的**)。 +- Debian 稳定版Stable(你从他们的主页上默认得到的东西)。 +- Debian 测试版Testing(有**新的软件包**,比 Debian 不稳定版更少出现故障)。 +- Debian 不稳定版Unstable(拥有最新的软件包,是**所有版本中最脆弱的**)。 -因此,Debian testing 可以被认为是稳定性和新软件包之间的一个甜蜜点。 +因此,Debian 测试版可以被认为是稳定性和新软件包之间的一个折中点。 -我已经玩了一段时间的 Debian testing,没有遇到任何问题。 +我已经玩了一段时间的 Debian 测试版,没有遇到任何问题。 -事实上,许多 Debian 用户喜欢测试版而不是稳定版。尽管名字叫测试,但它是相当可用的。 +事实上,许多 Debian 用户喜欢测试版而不是稳定版。尽管名字叫“测试”,但它是相当可用的。 但是,**我还是建议你在虚拟机上进行实验**,尝试用你的主要工具来使用它,如果事情进展顺利,你可以在主系统中应用这些变化。 -### 从 Debian stable 切换到 Debian testing +### 从 Debian 稳定版切换到 Debian 测试版 -**_警告:你不能从 Debian testing 降级到 Debian stable,因为安装脚本和安装工具只是为了用新版本替换旧版本而设计的。_** +**警告:你不能从 Debian 测试版降级到 Debian 稳定版,因为安装脚本和安装工具只是为了用新版本替换旧版本而设计的。** 另外,我建议在你的主机上应用上述步骤之前,[使用 timeshift 创建一个备份][1] 。 @@ -58,7 +60,7 @@ sudo cp /etc/apt/sources.list sources.list.backup #### 步骤 1:编辑 sources.list 文件 -有两种方法可以编辑 `sources.list` 文件。要么你可以用 `testing` 手动改变当前版本的名称,要么你可以[使用 sed 命令][2]来完成你的工作。 +有两种方法可以编辑 `sources.list` 文件。要么你可以用 `testing` 手动改变当前版本的名称,要么你可以 [使用 sed 命令][2] 来完成。 而我要用第二种方法来使整个过程更简单。你只需要使用给定的命令,它就会为你把 `bullseye` 替换成 `testing`: @@ -76,15 +78,15 @@ sudo nano /etc/apt/sources.list ![comment out security sources][3] -如果你像我一样使用 nano,你可以按 `Alt + /` 跳到该行的最后。然后你要添加以下一行: +如果你像我一样使用 `nano`,你可以按 `Alt + /` 跳到该行的最后。然后你要添加以下一行: ``` deb http://security.debian.org testing-security main ``` -![2. add line to keep track of testing in debian][4] +![add line to keep track of testing in debian][4] -然后[保存修改并退出 nano][5] 文本编辑器。 +然后 [保存修改并退出 nano][5] 文本编辑器。 #### 步骤 2:更新仓库并安装新的软件包 @@ -104,13 +106,13 @@ sudo apt upgrade 坐下来,放松一下,因为这将需要一些时间。 -完成后,它将向你展示从 Debian stable 切换到 testing 时的变化列表: +完成后,它将向你展示从 Debian 稳定版切换到测试版时的变化列表: ![packages that are updated when switched to debian testing][7] -如果你愿意,你可以阅读,或者你可以**直接按 q** 继续。 +如果你愿意,你可以阅读,或者你可以**直接按** `q` 继续。 -现在,它会告诉你,你系统上安装的一些库需要重新启动。按 **TAB** 键,它将选择 **OK**,然后按**回车**:。 +现在,它会告诉你,你系统上安装的一些库需要重新启动。按 `TAB` 键,它将选择 “OK”,然后按**回车**:。 ![libraries needs to be restarted after update][8] @@ -124,13 +126,13 @@ sudo apt upgrade sudo apt full-upgrade ``` -现在,重启你的系统,你就会拥有最新的软件包。比如**我进入系统时正在运行 GNOME 43**: +现在,重启你的系统,你就会拥有最新的软件包。比如**我进入系统时我在运行 GNOME 43**: ![running gnome 43 in debian][10] ### 总结 -在本教程中,我解释了如何从 Debian stable 切换到 Debian testing。我希望这对你会有帮助。 +在本教程中,我解释了如何从 Debian 稳定版切换到 Debian 测试版。我希望这对你会有帮助。 如果你遇到任何问题或有任何疑问,请在评论中告诉我。 @@ -141,7 +143,7 @@ via: https://itsfoss.com/switch-debian-stable-testing/ 作者:[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/) 荣誉推出 @@ -149,11 +151,12 @@ via: https://itsfoss.com/switch-debian-stable-testing/ [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 +[3]: https://itsfoss.com/content/images/wordpress/2022/11/comment-out-security-sources.gif +[4]: https://itsfoss.com/content/images/wordpress/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 +[6]: https://itsfoss.com/content/images/wordpress/2022/11/update-repository-in-linux.png +[7]: https://itsfoss.com/content/images/wordpress/2022/11/packages-that-are-updated-when-switched-to-debian-testing.png +[8]: https://itsfoss.com/content/images/wordpress/2022/11/libraries-needs-to-be-restarted-after-update.png +[9]: https://itsfoss.com/content/images/wordpress/2022/11/restart-services-during-package-upgrades-without-asking.png +[10]: https://itsfoss.com/content/images/wordpress/2022/11/running-gnome-43-in-debian.png +[0]: https://img.linux.net.cn/data/attachment/album/202302/08/122659a4919hso9onkbmun.jpg \ No newline at end of file From 9a24501cfa796dfc4cd9ca9c54f3de4e4f156844 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 8 Feb 2023 17:09:40 +0800 Subject: [PATCH 343/357] ATRP @wxy https://linux.cn/article-15521-1.html --- ...⭐️ 7 Best Gentoo-Based Linux Distributions.md | 134 +++++++++++++++++ ...⭐️ 7 Best Gentoo-Based Linux Distributions.md | 135 ------------------ 2 files changed, 134 insertions(+), 135 deletions(-) create mode 100644 published/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md delete mode 100644 sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md diff --git a/published/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md b/published/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md new file mode 100644 index 0000000000..903fe0b510 --- /dev/null +++ b/published/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md @@ -0,0 +1,134 @@ +[#]: subject: "7 Best Gentoo-Based Linux Distributions" +[#]: via: "https://itsfoss.com/gentoo-based-distros/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15521-1.html" + +7 个最佳的基于 Gentoo Linux 的发行版 +====== + +![][0] + +Gentoo Linux 是 [适合高级用户的最佳 Linux 发行版][1] 之一。如果你想要类似的东西,但又想轻松些,那么基于 Gentoo 的发行版是你的解决方案。 + +Gentoo Linux 以其软件包管理器 [Portage][2] 而闻名,它允许你根据你的要求定制每个软件包,并从头开始构建/配置。这样,你就能以最好的方式来优化你的系统体验。 + +然而,可以理解的是,由于它的学习曲线或设置它所需付出的努力,不是每个人都喜欢使用 Gentoo Linux 😫。 + +所以,在这种情况下,你可以尝试基于 Gentoo Linux 的发行版,可更简单轻松些。 + +让我重点介绍其中一些,它们比裸机版的 Gentoo Linux 要好一些。 + +> 📋 该列表没有特定的排名顺序。 +> +> **另外**,像 Gentoo Linux 一样,基于它的发行版并不是为新用户定制的。所以,你可能应该在尝试它们之前仔细阅读每个项目的文档。 + +### 1、Calculate Linux + +![][3] + +[Calculate Linux][4] 专注于提供**即开即用、用户友好的体验**。 + +它是基于 Gentoo 的,并且仍然向后兼容它。你可以通过 Calculate Linux 得到一个滚动发布的版本,但你也可以根据你的要求选择测试版或稳定版的更新版本。 + +它有桌面、服务器、云和测试等不同版本。选择你需要的那个。 + +### 2、CLIP OS + +![][5] + +[CLIP OS][6] 是一个值得关注的基于 Gentoo 的发行版,旨在提供由法国国家网络安全局(ANSSI)建立的安全体验。 + +该项目有两个版本,其中 v4.0 是一个不再开发的参考版本,你可以研究其源代码,并以你喜欢的方式使用它来构建你的 Gentoo 特有体验。 + +而 v5.0 是一个积极开发的项目,在写这篇文章时正处于测试阶段。它听起来可能与 Qubes OS 相似,但它在各方面都有不同。 + +在你想尝试它之前,你得构建一个 CLIP OS 镜像。 + +### 3、Funtoo + +![Funtoo linux livecd][7] + +[Funtoo][8] 是一个基于 Gentoo 的发行版,由 Gentoo Linux 的创造者(前负责人)开发。 + +支撑 Funtoo 的哲学与 Gentoo 有点不同。因此,社区的方法也不同。 + +你可以下载它的 “next” 版本以获得最新的体验,或者选择它的 1.4 版本以获得长期的稳定性。 + +这两个版本都是滚动发布的发行版,只是一个提供较新的软件包。 + +### 4、LiGurOS + +![ligur os install image building screenshot][9] + +[LiGurOS][10] 是 Gentoo 系列操作系统中的又一个选择。它的目的是提供一个**快速而安全的体验**,同时确保 AMD 和英特尔处理器的最新功能能够很好地工作。 + +你会发现两个不同的版本,一个是稳定版,一个是滚动版。它还可以让你选择你喜欢的服务管理器,其中包括对 openRC 的支持。然而,你得构建安装镜像来使用它。 + +在它的 [GitLab 页面][11] 上了解更多关于这个项目的信息。 + +### 5、Pentoo + +![][12] + +[Pentoo Linux][13] 是 [用于渗透测试的最佳 Linux 发行版][14] 之一。 + +你可以找到 32 位和 64 位系统的可安装镜像。开箱即用,你可以得到定制的工具、定制的内核、XFCE 4 窗口管理器,以及更多。 + +### 6、Redcore Linux + +![record linux screenshot][15] + +[Redcore Linux][16] 是一个**基于 Gentoo Linux 测试分支**的发行版,有一个加固后的配置文件以获得更好的安全性。 + +它是 Kogaion Linux(最初是基于 Sabayon Linux)的继承者,而这两个发行版都不再维护。负责它的原始开发小组的成员之一决定用 Redcore 延续其思想。 + +这个发行版的目的是使 Gentoo Linux 能够很容易地安装在兼容的系统上。 + +### 7、Gentoo Studio + +![gentoo studio screenshot][17] + +[Gentoo Studio][18] 是一个为**实时 Linux 音频制作系统**量身定做的基于 Gentoo Linux 的产品。 + +它打包了各种音频应用程序,并默认允许你有不同的自定义选项。 + +与一些专注于工作室的发行版不同,你也许需要检查它所支持的软件包/实用程序是否符合你的制作要求。 + +💬 名单上你最喜欢的是什么?我们是否错过了你的最爱?请在下面的评论区告诉我们。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/gentoo-based-distros/ + +作者:[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/advanced-linux-distros/ +[2]: https://wiki.gentoo.org/wiki/Portage +[3]: https://itsfoss.com/content/images/2023/02/calculate-linux.jpg +[4]: https://www.calculate-linux.org +[5]: https://itsfoss.com/content/images/2023/02/clip-os-4.jpg +[6]: https://clip-os.org/en/ +[7]: https://itsfoss.com/content/images/2023/02/funtoo-linux.jpg +[8]: https://www.funtoo.org/ +[9]: https://itsfoss.com/content/images/2023/02/gentoo-based-os-liguros.png +[10]: https://liguros.gitlab.io +[11]: https://gitlab.com/liguros +[12]: https://itsfoss.com/content/images/2023/02/pentoo-linux.jpg +[13]: https://www.pentoo.ch +[14]: https://itsfoss.com/linux-hacking-penetration-testing/ +[15]: https://itsfoss.com/content/images/2023/02/redcore.jpg +[16]: https://redcorelinux.org/#hero +[17]: https://itsfoss.com/content/images/2023/02/gentoo-studio.jpg +[18]: https://gentoostudio.org +[0]: https://img.linux.net.cn/data/attachment/album/202302/08/170807alkcjhljv6veev4h.jpg \ No newline at end of file diff --git a/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md b/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md deleted file mode 100644 index 68aae5329a..0000000000 --- a/sources/tech/20230203.0 ⭐️⭐️ 7 Best Gentoo-Based Linux Distributions.md +++ /dev/null @@ -1,135 +0,0 @@ -[#]: subject: "7 Best Gentoo-Based Linux Distributions" -[#]: via: "https://itsfoss.com/gentoo-based-distros/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -7 Best Gentoo-Based Linux Distributions -====== - -Gentoo Linux is one of the [best Linux distributions for advanced users][1]. Want something similar but maybe easier? Gentoo-based distros are your solution. - -Gentoo Linux is famous for its package manager, [Portage][2], which allows you to customize every package per your requirements and build/configure things from the ground up. This way, you get to optimize your system experience in the best possible way. - -However, it is understandable that not everyone prefers using Gentoo Linux because of its learning curve or the effort required to set it up😫 - -So, in that case, you can try Gentoo-based Linux distributions that make things easier. - -Let me highlight some options that do a few things better than having Gentoo Linux barebones. - -📋 - -The list is in no particular order of ranking. - -**Also** - -, like Gentoo Linux, the distros based on it are not tailored for new users. So, you might want to read the documentation of each project thoroughly before trying them out. - -### 1. Calculate Linux - -![calculate linux screenshot with an abstract painting background of a scenary][3] - -[Calculate Linux][4] focuses on providing **a user-friendly experience out-of-the-box**. - -It is based on Gentoo and still backward compatible with it. You get a rolling-release distribution with Calculate Linux, but you can also choose between testing or stable updates per your requirements. - -There are different editions of desktop, server, cloud, and testing. Pick the one you need. - -### 2. CLIP OS - -![][5] - -[CLIP OS][6] is an interesting Gentoo-based distribution that aims to provide a secure experience built by the **National Cybersecurity Agency of France (ANSSI)**. - -There are two versions of the project where v4.0 is a non-working reference where you can explore the source code and use it however you like for building your Gentoo-powered experience. - -And v5.0 is an actively developed project in the beta phase when writing this. It may sound similar to Qubes OS, but it differs in various ways. - -You will have to build an image CLIP OS before you want to try it. - -### 3. Funtoo - -![funtoo linux livecd][7] - -[Funtoo][8] is a Gentoo-based distro by the **creator (former lead) of Gentoo Linux**. - -The philosophy that powers Funtoo is a bit different than Gentoo. Hence, the community approach differs. - -You can download its "next" edition release to get the latest experience or opt for its **1.4-release** for long-term stability. - -Both the editions are rolling-release distros, one offering newer packages. - -### 4. LiGurOS - -![ligur os install image building screenshot][9] - -[LiGurOS][10] is yet another option in the Gentoo family of operating systems. It aims to provide a **fast and secure experience** while ensuring the latest features of AMD and Intel processors work well. - -You will find two different releases, one stable and a rolling. It also gives you the choice of your favorite services manager, supporting openRC as one of them. However, you will have to build the install image to use it. - -Explore more about the project on its [GitLab page][11]. - -### 5. Pentoo - -![][12] - -[Pentoo Linux][13] is one of the [best Linux distributions for penetration testing][14]. - -You can find installable images for both 32-bit and 64-bit systems. Out of the box, you get customized tools, a customized kernel, XFCE 4 window manager, and more. - -### 6. Redcore Linux - -![record linux screenshot][15] - -[Redcore Linux][16] is a distribution **based on the Gentoo Linux testing branch**, with a hardened profile for better security. - -It is a successor of Kogaion Linux (which was initially based on Sabayon Linux), none of which is maintained anymore. One of the members of the original development group responsible for it decided to continue the idea with Redcore. - -This distribution aims to make it easy to install Gentoo Linux on a compatible system easily. - -### 7. Gentoo Studio - -![gentoo studio screenshot][17] - -[Gentoo Studio][18] is a tailored offering for **real-time Linux audio production systems** based on Gentoo Linux. - -It packs in various audio applications and allows you different customization options by default. - -Unlike some studio-focused distributions, you may want to check the packages/utilities it supports out of the box for your production requirements. - -💬_What is your favorite on the list? Did we miss any of your favorites? Let us know in the comments section below._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/gentoo-based-distros/ - -作者:[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/advanced-linux-distros/ -[2]: https://wiki.gentoo.org/wiki/Portage -[3]: https://itsfoss.com/content/images/2023/02/calculate-linux.jpg -[4]: https://www.calculate-linux.org -[5]: https://itsfoss.com/content/images/2023/02/clip-os-4.jpg -[6]: https://clip-os.org/en/ -[7]: https://itsfoss.com/content/images/2023/02/funtoo-linux.jpg -[8]: https://www.funtoo.org/ -[9]: https://itsfoss.com/content/images/2023/02/gentoo-based-os-liguros.png -[10]: https://liguros.gitlab.io -[11]: https://gitlab.com/liguros -[12]: https://itsfoss.com/content/images/2023/02/pentoo-linux.jpg -[13]: https://www.pentoo.ch -[14]: https://itsfoss.com/linux-hacking-penetration-testing/ -[15]: https://itsfoss.com/content/images/2023/02/redcore.jpg -[16]: https://redcorelinux.org/#hero -[17]: https://itsfoss.com/content/images/2023/02/gentoo-studio.jpg -[18]: https://gentoostudio.org From e735d12a30c784ebb31273cfeb3aa413699f195c Mon Sep 17 00:00:00 2001 From: insidentally Date: Wed, 8 Feb 2023 18:35:22 +0800 Subject: [PATCH 344/357] =?UTF-8?q?Update=2020230117.0=20=E2=AD=90?= =?UTF-8?q?=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn=20zip=20Command=20in=20Linu?= =?UTF-8?q?x=20Using=20Examples.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit translating by Chao-zhi --- ...230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md b/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md index e87ffac5c2..048a4bf484 100644 --- a/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md +++ b/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/zip-command-linux-examples/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Chao-zhi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -168,7 +168,7 @@ via: https://www.debugpoint.com/zip-command-linux-examples/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Chao-zhi](https://github.com/Chao-zhi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 87f68549cf527ba3b19f984554c63a2858eb2850 Mon Sep 17 00:00:00 2001 From: insidentally Date: Wed, 8 Feb 2023 19:59:21 +0800 Subject: [PATCH 345/357] =?UTF-8?q?Update=20and=20rename=20sources/tech/20?= =?UTF-8?q?230117.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn=20zip?= =?UTF-8?q?=20Command=20in=20Linux=20Using=20Examples.md=20to=20translated?= =?UTF-8?q?/tech/20230117.0=20=E2=AD=90=EF=B8=8F=E2=AD=90=EF=B8=8F=20Learn?= =?UTF-8?q?=20zip=20Command=20in=20Linux=20Using=20Examples.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit translated --- ...️ Learn zip Command in Linux Using Examples.md | 181 ----------------- ...️ Learn zip Command in Linux Using Examples.md | 183 ++++++++++++++++++ 2 files changed, 183 insertions(+), 181 deletions(-) delete mode 100644 sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md create mode 100644 translated/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md diff --git a/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md b/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md deleted file mode 100644 index 048a4bf484..0000000000 --- a/sources/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md +++ /dev/null @@ -1,181 +0,0 @@ -[#]: subject: "Learn zip Command in Linux Using Examples" -[#]: via: "https://www.debugpoint.com/zip-command-linux-examples/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "Chao-zhi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Learn zip Command in Linux Using Examples -====== - -**Here’s a beginner’s guide on understanding the zip command in Linux with a few examples.** - -![][1] - -A zip file is a compressed archive containing one or more files. It is widely used as a lossless data compression technique. Thanks to compression, it takes less disk space and requires fewer data to transfer over computer networks. - -These compressed files can be extracted easily in Linux, Windows and macOS. Various software is available that supports zip file compression and also offers to extract them. - -Since it is popular, almost all operating systems have this built-in. - -In this tutorial, we will talk about several terminal-based methods to zip a file in Linux. - -### Zip Command in Linux: Examples - -#### Syntax - -The program name you need to use in Linux to zip a file is `zip`. Here’s the basic syntax. - -``` -zip [compress file name] file1 file2 file3 -``` - -And here’s the official syntax. - -``` -zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] -``` - -Ideally, it should be installed in all the major Linux distributions. If not, use the following commands to install it. - -#### Install zip on Debian, Ubuntu and related distributions - -``` -sudo apt install zip -``` - -#### Install in Fedora, RHEL-based systems - -``` -sudo dnf install zip -``` - -#### Arch Linux - -``` -pacman -S zip -``` - -Let’s take a look at some examples. - -#### How to zip files and folders - -I have the following three files in my test directory. They are file1.txt, file2.txt and file3.txt. If I want to compress three files using zip and create a zip myfiles.zip, the following command is sufficient. - -``` -zip myfiles.zip file1.txt file2.txt file3.mp3 -``` - -Output: - -``` -adding: file1.txt (stored 0%)adding: file2.txt (stored 0%)adding: file3.mp3 (deflated 13%) -``` - -![Output of Basic zip command in Linux][2] - -A few points you should remember here. - -- When creating a zip file, you should have the modify access to the current directory. -- The zip file format doesn’t contain the permissions, i.e. read(4), write(2), and execute(1). So, the user who creates it becomes the owner of the file. -- If you want to use zip with permission, try the tar command (to be explained in a later tutorial). -- In the above output, the zip command shows the file names being added to the archive and the compression method. -- Specifying the .zip file name extension in the target file name is not mandatory. If you omit .zip, zip will add the .zip at the end. - -When you have hundreds or thousands of files in operation, it’s a good idea to suppress the output in the terminal. You can use -q command to suppress the output in the zip command. - -``` -zip -q myfiles.zip file1.txt file2.txt file3.txt -``` - -#### Recursive compression of subfolders - -The `-r` option of zip command enables you to include subdirectories and their contents. This option recursively traverses until the last child of a directory structure and adds all of them to the zip file. - -The following command creates a compressed file with all the contents and subdirectories inside my_folder. - -``` -zip -r myfolder.zip my_folder -``` - -You can also use the wild card characters (*) to include specific types of files in your zip file. - -``` -zip -0 my_movies.zip *.mp4 -``` - -#### Adding a mix of files and directories - -With all the above options, the zip command allows you to specify files and directories together as arguments. - -``` -zip -r myfiles.zip file1.txt file2.txt file3.txt my_folder1 my_folder2 -``` - -### Compression algorithms - -The default output of the zip file contains two distinct words, i.e. deflate and store. The default compression method used by zip is deflate. If it successfully compresses the file, then the output shows deflate. And when it can’t compress a file, it simply stores them inside the .zip file as is. Those file outputs show stored. - -There any many compression algorithm present. One of them is the bzip2 compression method which is supported by zip command in Linux. You can specify the compression algo as a command option to use. Use the option -Z followed by the algorithm name, as shown below. - -``` -zip -r -Z bzip2 myfolder.zip my_folder -``` - -#### Compress levels - -The zip command also allows you to specify the compression level. The compression level is how much you want the zip optimized to reduce the package size. It’s a numeric value range from 0 to 9. A value of 9 compression level is the highest compression. The default value is 6. - -Remember, if you are using zip to compress thousands of files of varying sizes, it might use higher system resources and take time. So, if you use it in programs, or shell scripts for many files, follow proper programming standards. - -``` -zip -9 -r myfolder.zip my_folder -``` - -#### Password protect a zip file - -You can also password protect a zip file using `-e` option like the one below. - -``` -zip -e -r myfolder.zip my_folder -``` - -It will ask for the password after you run the command. - -Caution: Don’t use the zip command to password-protect a zip file. The encryption algorithm of the zip is PKZIP using a stream cipher. And it can be cracked easily. If you want to protect your file, use 7-Zip or other advanced tools. - -#### Split size zip files - -Many applications, servers, and file shares may contain restrictions of a fixed-size file upload. For example, you have a 10GB file, but the service allows only 1GB per file. Using the -s option of the zip, you can compress and split them into chunks for upload. - -``` -zip -s 1g -r myfolder.zip my_folder -``` - -### Wrapping Up - -You learned some basics of the zip command. It is useful for most local cases where you need to take quick backups by compressing them on the fly. However, for more advanced options, you should use 7-Zip or other commands, which I will share in the next few articles. - -In the meantime, you can learn more in the [zip manual][3]. - -_This article is part of the [Linux command][4] learning series._ - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/zip-command-linux-examples/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[Chao-zhi](https://github.com/Chao-zhi) -校对:[校对者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/zip-file-head.jpg -[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/Output-of-Basic-zip-command-in-Linux.jpg -[3]: https://linux.die.net/man/1/zip -[4]: https://www.debugpoint.com/category/linux-commands diff --git a/translated/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md b/translated/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md new file mode 100644 index 0000000000..20ac21e44f --- /dev/null +++ b/translated/tech/20230117.0 ⭐️⭐️ Learn zip Command in Linux Using Examples.md @@ -0,0 +1,183 @@ +[#]: subject: "Learn zip Command in Linux Using Examples" +[#]: via: "https://www.debugpoint.com/zip-command-linux-examples/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "Chao-zhi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +通过实例学习Linux中的zip命令 +====== + +**这里是关于理解 Linux 中的 zip 命令的初学者指南,并附有一些例子。** + +![][1] + +zip 文件是一个包含一个或多个文件的压缩档案。它作为一种无损数据压缩技术被广泛使用。由于压缩,它占用的磁盘空间更少,在计算机网络上传输时需要的数据也更少。 + +这些压缩文件可以在 Linux、Windows 和 macOS 中轻松提取。有各种支持压缩文件的软件,也提供提取它们的功能。 + +由于它很流行,几乎所有的操作系统都内置了这个功能。 + +在本教程中,我们将谈论几种基于终端的方法来压缩 Linux 中的文件。 + +### Linux 中的 Zip 命令,例子: + +#### 语法 + +在 Linux 中,你需要使用的压缩文件的程序名称是`zip`。下面是基本的语法。 + +``` sh +zip [压缩文件名] file1 file2 file3 +``` + +这里是官方的语法。 + +``` sh +zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] +``` + +理想情况下,zip 命令应该被安装在所有主要的 Linux 发行版中。如果没有,使用下面的命令来安装它。 + +#### 在 Debian, Ubuntu and 相关发行版上安装 + +``` +sudo apt install zip +``` + +#### 在 Fedora, 基于 RHEL 的系统上安装 + +``` +sudo dnf install zip +``` + +#### 在 Arch Linux 上安装 + +``` +pacman -S zip +``` + +让我们继续看一些例子 + +#### 如何压缩文件和文件夹 + +我的测试目录中有以下三个文件。它们是 file1.txt、file2.txt 和 file3.txt。如果我想用 zip 压缩三个文件,并创建一个 myfiles.zip 的压缩包,用下面的命令就可以了。 + +``` +zip myfiles.zip file1.txt file2.txt file3.mp3 +``` + +输出。 + +``` +adding: file1.txt (stored 0%) +adding: file2.txt (stored 0%) +adding: file3.mp3 (deflated 13%) +``` + +![Linux 中基本压缩命令的输出][2] + +这里你应该记住几个要点。 + +- 当创建一个 zip 文件时,你应该有对当前目录的修改权限。 +- zip 文件格式不包含权限,即读(4),写(2),和执行(1)。所以,创建该文件的用户成为该文件的所有者。 +- 如果你想使用有权限的 zip,可以尝试使用 `tar` 命令(将在后面的教程中解释)。 +- 在上面的输出中,`zip` 命令显示了被添加到存档中的文件名和压缩方法。 +- 在目标文件名中指定 .zip 文件名的扩展名并不是必须的。如果你省略了 .zip,`zip` 会在最后加上 .zip。 + +当你有成百上千的文件在运行时,可以在终端中减少输出。你可以使用 `-q` 参数来抑制 `zip` 命令中的输出。 + +``` +zip -q myfiles.zip file1.txt file2.txt file3.txt +``` + +#### 递归压缩子文件夹 + +`zip` 命令的 `-r` 选项使你能够囊括所有子目录。这个选项会递归地遍历到一个目录结构的最后一个子目录,并将它们全部加入到压缩文件中。 + +下面的命令创建了一个包含 my_folder 内所有内容和子目录的压缩文件。 + +``` +zip -r myfolder.zip my_folder +``` + +你也可以使用通配符(*)在你的压缩文件中包含特定类型的文件。 + +``` +zip -0 my_movies.zip *.mp4 +``` + +#### 混合添加文件和目录到压缩文件 + +有了以上所有的选项,`zip` 命令允许你把文件和目录一起作为参数指定。 + +``` +zip -r myfiles.zip file1.txt file2.txt file3.txt my_folder1 my_folder2 +``` + +### 压缩算法 + +zip 压缩的默认输出包含两个不同的词,即 deflate 和 store。zip 默认使用的压缩方法是 deflate。如果它成功地压缩了文件,那么输出显示 deflate。而当它不能压缩一个文件时,它只是将它们原封不动地存储在 .zip 文件中。这些文件的输出显示为 store。 + +目前有许多压缩算法。其中一种是 bzip2 压缩法,它在 Linux 中被 `zip` 命令所支持。你可以指定压缩算法作为一个命令选项来使用。使用选项 `-Z`,后面跟上算法名称,如下所示。 + +``` +zip -r -Z bzip2 myfolder.zip my_folder +``` + +#### 压缩级别 + +`zip` 命令还允许你指定压缩级别。压缩级别是指你想让 zip 优化多少来减少包的大小。它是一个从 0 到 9 的数值范围。压缩级别为 9 的值是最高的压缩。默认值是 6。 + +记住,如果你用 zip 压缩成千上万个大小不一的文件,它可能会占用较多的系统资源,并花费大量的时间。所以,如果你在程序中使用它,或者用 shell 脚本处理大量的文件,请遵循正确的编程标准。 + +``` +zip -9 -r myfolder.zip my_folder +``` + +#### 用密码保护一个压缩文件 + +你也可以用下面的 `-e` 选项对压缩文件进行密码保护。 + +``` +zip -e -r myfolder.zip my_folder +``` + +运行该命令后,它将要求输入密码。 + +> 注意。尽量不要使用 zip 命令来对压缩文件进行密码保护。zip 的加密算法是使用流密码的 PKZIP。而它很容易被破解。如果你想保护你的文件,请使用 7-Zip 或其他高级工具。 + +#### 分割较大的压缩文件 + +许多应用程序、服务器和文件共享可能包含固定大小的文件上传限制。例如,你有一个 10GB 的文件,但服务只允许每个文件 1GB。使用 `zip` 的 `-s` 选项,你可以将其压缩并分割成几块进行上传。 + +``` +zip -s 1g -r myfolder.zip my_folder +``` + +### 总结 + +你学到了一些 `zip` 命令的基本知识。它对大多数本地情况很有用,在这些情况下,你需要通过即时压缩来进行快速备份。然而,对于更高级的选项,你应该使用 7-Zip 或其他命令,我将在接下来的几篇文章中分享。 + +同时,你可以在 [zip 手册][3]中了解更多。 + +_这篇文章是 [Linux 命令][4]学习系列的一部分。_ + +-------------------------------------------------------------------------------- + +via: https://www.debugpoint.com/zip-command-linux-examples/ + +作者:[Arindam][a] +选题:[lkxed][b] +译者:[Chao-zhi](https://github.com/Chao-zhi) +校对:[校对者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/zip-file-head.jpg +[2]: https://www.debugpoint.com/wp-content/uploads/2023/01/Output-of-Basic-zip-command-in-Linux.jpg +[3]: https://linux.die.net/man/1/zip +[4]: https://www.debugpoint.com/category/linux-commands From 6385aec5d88f5adf9a3c43cc128494fe266e46ae Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 8 Feb 2023 23:38:55 +0800 Subject: [PATCH 346/357] ATRP @wxy https://linux.cn/article-15523-1.html --- ... 5 Linux Distros for Visually Impaired People.md | 143 ++++++++++++++++++ ... 5 Linux Distros for Visually Impaired People.md | 140 ----------------- 2 files changed, 143 insertions(+), 140 deletions(-) create mode 100644 published/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md delete mode 100644 sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md diff --git a/published/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md b/published/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md new file mode 100644 index 0000000000..2c63bda89d --- /dev/null +++ b/published/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md @@ -0,0 +1,143 @@ +[#]: subject: "5 Linux Distros for Visually Impaired People" +[#]: via: "https://itsfoss.com/visual-impaired-linux/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "wxy" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15523-1.html" + +5 个适合视力障碍者的 Linux 发行版 +====== + +![][0] + +> 有哪些最适合视障用户的 Linux 发行版?让我们一起来看看。 + +如果有人视力障碍或失明,他们可能会依赖声音提示或其他交互方式(如盲文)来阅读和交流。 + +他们怎样才能使用 Linux 发行版? + +嗯,一般来说,无障碍软件有助于使之成为可能。 + +**但是,有哪些 Linux 发行版是注重无障碍性的?哪些是为视障用户量身定做的最佳发行版呢?** + +我在这里重点列出一些最好的选择。在此之前,在为视障用户尝试/推荐 Linux 之前,有一些必要的要点需要注意。 + +### Linux 是视障用户的理想选择吗? + +**不幸的是,并不太是**。 + +与 Windows 和 macOS 相比,Linux 上可用的无障碍软件/选择比较有限。 + +即使 [红帽公司去年聘请了一位盲人软件工程师][1] 来帮助改进,但这是一项正在进行的工作,可能体验还不够顺滑。 + +我看到一个一年前的 [Reddit 讨论][2],一个盲人用户分享了他在 Linux 上的无障碍状态的体验,听起来可能并不太顺利。 + +它**仍然是可用的,这取决于你想做什么**和你选择的发行版。 + +一些值得注意的地方包括: + +- 不是每个桌面环境都提供良好的无障碍功能。你可以探索和实验,但 GNOME 和 KDE 是可以接受的选择。 +- Linux 发行版中关于无障碍的文档可能并不全面。所以,你可能想在开始之前进行探索和研究。这里有 [GNOME][3] 和 [KDE][4] 文档的链接。 +- 你可以随时安装 [流行的 Linux 发行版][5],如 Ubuntu,并通过屏幕阅读器工具进行设置,以开始使用。 + +然而,有些发行版会给你带来开箱即用的良好体验,可能值得尝试。 + +下面是你的最佳选择: + +> 📋 该列表没有特定的排名顺序。 + +### 1、Accessible-Coconut(AC) + +![Accessible-Coconut 的主屏幕截图,带有蓝色壁纸和椰子图标][6] + +[Accessible-Coconut][7] 是一个基于 Ubuntu MATE 的、由社区开发的 Linux 操作系统。 + +安装后,你会发现使视力障碍者能够获得 Linux 体验的所有必要的工具或软件。 + +其中包括一个支持语音合成和盲文的屏幕阅读器、屏幕放大镜、控制台屏幕阅读器、电子书扬声器、一个支持 Daisy 格式的播放器等等。 + +其内置的软件以更好的无障碍性而闻名。所以,你可能不需要在安装操作系统后寻找替代品。 + +> **[Accessible Coconut][7]** + +### 2、Vojtux + +Vojtux 是一个基于 Fedora 的非官方发行版,由一位盲人软件工程师创建。 + +对于大多数用户来说,这是一个令人兴奋的选择,因为创建者知道视障用户需要什么。默认情况下,你在登录时就开始使用 Orca 屏幕阅读器,并启用 Qt 无障碍功能,这是一个为额外的语音合成和其他软件定制的库。 + +另外,有趣的是,你会发现一个可以快速打开和关闭显示器的脚本。 + +然而,你必须在安装前构建 立付Live 介质 ISO。因此,如果你没有这方面的技术知识,你可以问问周围的朋友,他们会愿意为你构建它。 + +你可以在它的 [GitHub 页面][8] 或其创造者的 [相关博文][9] 上了解更多信息。 + +> **[Vojtux GitHub][8]** + +### 3、Trisquel + +![Trisquel 的屏幕截图,其墙纸显示为绿色的山和太空][10] + +Trisquel 是一个基于 Ubuntu 的 Linux 发行版,采用 Linux-libre 内核。它是为家庭、办公室和教育机构定制的。 + +与其他一些选择不同,Trisquel 在默认情况下注重无障碍功能,比如启用了 Orca 屏幕阅读器。你可以在他们的网站上找到音频指南和支持屏幕阅读器的手册。 + +前往其 [官方网站][11],探索更多关于它的信息,并下载 ISO。 + +> **[Trisquel][11]** + +### 4、Ubuntu MATE + +![Ubuntu MATE 截图,欢迎屏幕提供了各种选项,以获得良好的开机体验][12] + +如果你想使用主流发行版,[Ubuntu MATE][13] 将很适合喜欢传统桌面用户体验的用户。 + +你可以找到预装的 Orca 屏幕阅读器和其他工具,给你一个良好的无障碍体验。 + +> **[Ubuntu MATE][13]** + +### 5、Fedora Workstation + +![Fedora 37 屏幕截图,带有绿草、岩石冒充的建筑的油漆风格的壁纸,中间有一条河][14] + +[Fedora Workstation][15] 是想要体验 GNOME 桌面环境的用户的最佳选择。 + +你会发现它安装了最新的 GNOME 桌面。因此,你很可能最终在 Fedora 上获得无障碍体验。 + +不要忘记,众所周知,Fedora 用户社区热衷于将无障碍性放在首位,并尽快修复任何报告的问题。 + +> **[Fedora Workstation][15]** + +💬 你的选择是什么?我们是否错过了任何其他选择?请在下面的评论中分享你的想法。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/visual-impaired-linux/ + +作者:[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://news.itsfoss.com/red-hat-accessibility-gnome/ +[2]: https://www.reddit.com/r/linux/comments/s3vvot/state_of_accessibility_on_linux_perspective_of_a/ +[3]: https://wiki.gnome.org/Accessibility +[4]: https://community.kde.org/Accessibility +[5]: https://itsfoss.com/best-linux-distributions/ +[6]: https://itsfoss.com/content/images/2023/01/ac-distro-screenshot.jpg +[7]: https://zendalona.com/accessible-coconut/ +[8]: https://github.com/vojtapolasek/vojtux +[9]: https://opensource.com/article/22/9/linux-visually-impaired-users +[10]: https://itsfoss.com/content/images/2023/01/trisquel-distro-screenshot.jpg +[11]: https://trisquel.info/en +[12]: https://itsfoss.com/content/images/2023/01/ubuntu-mate-screenshot.jpg +[13]: https://ubuntu-mate.org +[14]: https://itsfoss.com/content/images/2023/01/image-31.png +[15]: https://getfedora.org/en/workstation/ +[0]: https://img.linux.net.cn/data/attachment/album/202302/08/233736xssinjunsujjcacs.jpg \ No newline at end of file diff --git a/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md b/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md deleted file mode 100644 index 92c1b6245c..0000000000 --- a/sources/tech/20230131.3 ⭐️⭐️ 5 Linux Distros for Visually Impaired People.md +++ /dev/null @@ -1,140 +0,0 @@ -[#]: subject: "5 Linux Distros for Visually Impaired People" -[#]: via: "https://itsfoss.com/visual-impaired-linux/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: " " -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -5 Linux Distros for Visually Impaired People -====== - -If a user is visually impaired or blind, they may rely on sound prompts or other interactions (like Braille) to read and communicate. - -How can they use a Linux distribution? - -Well, in general, accessibility software help make it possible. - -**But****what are the Linux distributions that focus on accessibility? What are the best distros tailored for visually impaired users?** - -I focus on listing some of the best options here. Before that, there are some essential pointers to note before you try/recommend Linux for visually challenged users. - -### Is Linux Ideal for Visually Challenged Users? - -**Unfortunately, not entirely.** - -Compared to Windows and macOS, the accessibility software/options available are limited on Linux. - -Even though [Red Hat hired a blind software engineer][1] last year to help improve things, it is a work in progress and may not be a seamless experience. - -I came across a year-old [Reddit thread][2] where a blind user shares his experience on the state of accessibility on Linux, and it may not sound good. - -It is **still usable depending on what you want to do** and which distro you choose. - -Some of the points worth noting include: - -- Not every desktop environment offers good accessibility options. You can explore and experiment, but GNOME and KDE are acceptable options. -- The documentation for accessibility in Linux distributions may not be comprehensive. So, you might want to explore and research before getting started. Here are the links to [GNOME][3] and [KDE][4] documentation. -- You can always install [popular Linux distributions][5] like Ubuntu and set it up with screen reader tools to get started. - -However, some distributions might give you a good experience out of the box and may be worth trying. - -Here are your best picks: - -📋 - -The list is in no particular order of ranking. - -### 1. Accessible-Coconut (AC) - -![accessible coconut homescreen screenshot with a blue wallpaper and coconut icon][6] - -[Accessible-Coconut][7] is a community-driven Linux operating system based on Ubuntu MATE. - -Out of the box, you will find all the essential tools or software needed to make the Linux experience accessible for people with visual impairment. - -Some of those include a **screen reader** that supports speech synthesis and Braille, **screen magnification**, a screen reader for the console, an **ebook speaker**, a daisy player, and more. - -The software that comes baked in is known for better accessibility. So, you may not need to search for alternatives after installing the operating system. - -[Accessible Coconut][7] - -### 2. Vojtux - -Vojtux is an unofficial Fedora-based distribution created by a blind software engineer. - -It is an exciting option for most users because the creator knows what visually impaired users need. By default, you will have the Orca screen reader starting at login, with Qt accessibility enabled, a custom repository for extra voice synthesis and other software. - -Also, interestingly, you will find a script that can turn your monitor on and off quickly. - -However, you must build the live media ISO before installing it. So, if you do not have technical knowledge for that, you may ask around your friends who would be willing to set it up for you. - -You can learn more about it on its [GitHub page][8] or a [blog post about it][9] by its creator. - -[Vojtux GitHub][8] - -### 3. Trisquel - -![trisquel homescreen screenshot with a wallpaper displaying green mountain and a space sky][10] - -Trisquel is a Ubuntu-based Linux distribution with a Linux-libre kernel. It is tailored for home, office, and education institutions. - -Unlike some other options, Trisquel focuses on accessibility features by default, like having the Orca screen reader enabled. You can find audio guides on their website and screen-reader-friendly manuals. - -Head to its [official website][11] to explore more about it and download the ISO. - -[Trisquel][11] - -### 4. Ubuntu MATE - -![ubuntu mate screenshot with the welcome screen providing various options for a good onboarding experience][12] - -If you want to go with mainstream distributions, [Ubuntu MATE][13] will be a good fit for users who like a traditional desktop approach to user experience. - -You can find the Orca screen reader pre-installed and other tools that give you a good accessibility experience. - -[Ubuntu MATE][13] - -### 5. Fedora Workstation - -![fedora 37 screenshot with paint-style wallpaper with green grass, rocks posing as buildings, with a river in the middle][14] - -[Fedora Workstation][15] is the best bet for users who want to experience the best of the GNOME desktop environment. - -You will find the latest GNOME desktop installed. So, it is likely that you will end up having an accessible experience on Fedora. - -Not to forget, the community of Fedora users is known to be passionate about keeping accessibility at the forefront and fixing any issues reported as soon as possible. - -[Fedora Workstation][15] - -💬_What would be your pick? Did we miss any other options? Do share your thoughts in the comments below._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/visual-impaired-linux/ - -作者:[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://news.itsfoss.com/red-hat-accessibility-gnome/ -[2]: https://www.reddit.com/r/linux/comments/s3vvot/state_of_accessibility_on_linux_perspective_of_a/ -[3]: https://wiki.gnome.org/Accessibility -[4]: https://community.kde.org/Accessibility -[5]: https://itsfoss.com/best-linux-distributions/ -[6]: https://itsfoss.com/content/images/2023/01/ac-distro-screenshot.jpg -[7]: https://zendalona.com/accessible-coconut/ -[8]: https://github.com/vojtapolasek/vojtux -[9]: https://opensource.com/article/22/9/linux-visually-impaired-users -[10]: https://itsfoss.com/content/images/2023/01/trisquel-distro-screenshot.jpg -[11]: https://trisquel.info/en -[12]: https://itsfoss.com/content/images/2023/01/ubuntu-mate-screenshot.jpg -[13]: https://ubuntu-mate.org -[14]: https://itsfoss.com/content/images/2023/01/image-31.png -[15]: https://getfedora.org/en/workstation/ From 5f9ece23c2e5d01a62a6cb1d33e12d9d98a37f0e Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 9 Feb 2023 08:41:11 +0800 Subject: [PATCH 347/357] translating --- ...Source Drawing App for Notes and Annotation.md | 108 ------------------ ...Source Drawing App for Notes and Annotation.md | 105 +++++++++++++++++ 2 files changed, 105 insertions(+), 108 deletions(-) delete mode 100644 sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md create mode 100644 translated/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md diff --git a/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md b/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md deleted file mode 100644 index 894faa507e..0000000000 --- a/sources/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md +++ /dev/null @@ -1,108 +0,0 @@ -[#]: subject: "Rnote: An Open-Source Drawing App for Notes and Annotation" -[#]: via: "https://itsfoss.com/rnote/" -[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Rnote: An Open-Source Drawing App for Notes and Annotation -====== - -**_Brief:_**_Rnote allows you to take notes, draw, and annotate documents. Sounds like you need it? Let us explore more._ - -We have featured numerous note-taking applications, but options that support handwritten notes are a handful. - -Rnote is one such helpful application that lets you take handwritten notes and annotate documents/pictures. - -Of course, you need a drawing tablet or a setup with a stylus to use Rnote. - -### Rnote: Vector-based Drawing App for Sketching and Handwritten Notes - -![rnote screenshot][1] - -Rnote is an impressive open-source app written in Rust and GTK 4. - -It provides an adaptive UI focused on stylus input. It looks pretty minimal and yet offers some of the essential features that one would need for handwritten notes. - -Let me highlight some of the things it can do. - -**Recommended Read**: [**Best Note-Taking Apps for Linux Users**][2] - -### Features of Rnote - -![rnote settings][3] - -[Rnote][4] is a simple yet capable sketching/note-taking app. Some features include: - -- Supports pressure-sensitive stylus input with various stroke styles -- Add different shapes with the shape tool -- A selection tool to move, rotate, resize, and modify the content you add/draw. -- Document expand layouts -- Customizable page format -- Customizable background colors, patterns, and sizes -- Pen sound support for feedback -- Reconfigurable stylus button shortcuts -- Integrated workspace browser for quick media file access -- Drag and drop support -- Clipboard support -- Common page formats supported (A6, A5, US letter, etc) -- Import from PDF, bitmap, and SVG files. -- Native .rnote file to save/load documents. -- Export to SVG and PDF supported -- Autosave functionality -- Dark/Light mode - -The developers note that the native file format used by Rnote may not be stable enough for compatibility between newer versions of the application. - -So, it is best to export your work when you are done before upgrading Rnote to its latest version. - -In addition to its features, you get a good user experience with the available options. It does not feel overwhelming, and you can access all the tools quickly. - -Some customization is available to hide the scrollbars, change the cursor, and tweak the drawing cursor. - -You can also adjust the time interval for autosave to kick in, which should come in handy for various use cases. - -![rnote screenshot 1][5] - -### Installing Rnote on Linux - -Rnote is available as a Flatpak on [Flathub][6]. So, as long as you have [Flatpak enabled on your system][7], you can install it on any Linux distribution. - -You can find it in your software center (if Flatpak integration has been enabled) or type in the following command to get it installed: - -``` -flatpak install flathub com.github.flxzt.rnote -``` - -To explore more about Rnote, head to its [GitHub page][8]. - -### Wrapping Up - -Rnote is actively developed and making good progress with its feature set. If you like Rnote, you might want to look at [Xournal++][9], another app that enables you to take handwritten notes. - -_Do you know of any other exciting apps like Rnote? What do you think of Rnote? Share your thoughts in the comments down below._ - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/rnote/ - -作者:[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/rnote-screenshot.png -[2]: https://itsfoss.com/note-taking-apps-linux/ -[3]: https://itsfoss.com/wp-content/uploads/2022/11/rnote-settings.png -[4]: https://rnote.flxzt.net -[5]: https://itsfoss.com/wp-content/uploads/2022/11/rnote-screenshot-1.png -[6]: https://flathub.org/apps/details/com.github.flxzt.rnote -[7]: https://itsfoss.com/flatpak-guide/ -[8]: https://github.com/flxzt/rnote -[9]: https://xournalpp.github.io diff --git a/translated/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md b/translated/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md new file mode 100644 index 0000000000..45e1e9f8c0 --- /dev/null +++ b/translated/tech/20221125.2 ⭐️ Rnote An Open-Source Drawing App for Notes and Annotation.md @@ -0,0 +1,105 @@ +[#]: subject: "Rnote: An Open-Source Drawing App for Notes and Annotation" +[#]: via: "https://itsfoss.com/rnote/" +[#]: author: "Ankush Das https://itsfoss.com/author/ankush/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +Rnote:一个用于笔记和注释的开源绘图应用 +====== + +**_简介:_**_Rnote 允许你做笔记、绘图和注释文件。听起来你需要它?让我们来探讨一下。_ + +我们已经介绍了许多记笔记的应用,但支持手写笔记的选项却屈指可数。 + +Rnote 就是这样一个有用的应用,它可以让你做手写笔记并对文件/图片进行注释。 + +当然,你需要一个绘图板或一个带有手写笔的设置来使用 Rnote。 + +### Rnote: 基于矢量的绘图应用,用于绘制草图和手写笔记 + +![rnote screenshot][1] + +Rnote 是一个用 Rust 和 GTK 4 编写的令人印象深刻的开源应用。 + +它提供了一个专注于手写笔输入的自适应用户界面。它看起来很简约,但却提供了手写笔记所需的一些基本功能。 + +让我强调一下它能做的一些事情。 + +### Rnote的特点 + +![rnote settings][3] + +[Rnote][4] 是一个简单但有很多功能的绘图/记事应用程。一些功能包括: + +- 支持具有各种笔画风格的压敏笔输入 +- 用形状工具添加不同的形状 +- 一个选择工具,可以移动、旋转、调整大小和修改你添加/绘制的内容 +- 文档扩展布局 +- 可定制的页面格式 +- 可定制的背景颜色、图案和尺寸 +- 支持笔的反馈声音 +- 可重新配置的手写笔按钮快捷键 +- 集成的工作区浏览器可快速访问媒体文件 +- 支持拖放 +- 支持剪贴板 +- 支持常见的页面格式(A6、A5、US letter 等)。 +- 从 PDF、位图和 SVG 文件导入。 +- 原生的 .rnote 文件来保存/加载文件。 +- 支持导出到 SVG 和 PDF +- 自动保存功能 +- 深色/浅色模式 + +开发者指出,Rnote 使用的原生文件格式可能不够稳定,无法在较新版本的应用之间兼容。 + +因此,在将 Rnote 升级到最新版本之前,最好在完成工作后将其导出。 + +除了它的功能外,你还能通过可用的选项获得良好的用户体验。它不会让人感到压抑,你可以快速访问所有的工具。 + +一些自定义功能可以隐藏滚动条,改变光标,并调整绘图光标。 + +你还可以调整自动保存启动的时间间隔,这在各种使用情况下应该很方便。 + +![rnote screenshot 1][5] + +### 在 Linux 上安装 Rnote + +Rnote 在 [Flathub][6] 上以 Flatpak 的形式提供。因此,只要你的系统启用了 [Flatpak][7],你就可以在任何 Linux 发行版上安装它。 + +你可以在你的软件中心找到它(如果 Flatpak 集成已被启用),或者输入以下命令来安装它: + +``` +flatpak install flathub com.github.flxzt.rnote +``` + +要探索更多关于 Rnote 的信息,请前往其 [GitHub 页面][8]。 + +### 总结 + +Rnote 正在积极开发,并在其功能设置方面取得了良好的进展。如果你喜欢 Rnote,你可能想看看 [Xournal++][9],它是另一个能让你做手写笔记的应用。 + +_你还知道其他像 Rnote 这样令人兴奋的应用吗?你觉得 Rnote 怎么样?请在下面的评论中分享你的想法。_ + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/rnote/ + +作者:[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/wp-content/uploads/2022/11/rnote-screenshot.png +[3]: https://itsfoss.com/wp-content/uploads/2022/11/rnote-settings.png +[4]: https://rnote.flxzt.net +[5]: https://itsfoss.com/wp-content/uploads/2022/11/rnote-screenshot-1.png +[6]: https://flathub.org/apps/details/com.github.flxzt.rnote +[7]: https://itsfoss.com/flatpak-guide/ +[8]: https://github.com/flxzt/rnote +[9]: https://xournalpp.github.io From ef5002d50937d5a194fe683cf6ea8cd9861dfd88 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 9 Feb 2023 08:48:28 +0800 Subject: [PATCH 348/357] translating --- .../tech/20230204.0 ⭐️ Open source video captioning on Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md b/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md index 1ad750d7ba..d049c09034 100644 --- a/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md +++ b/sources/tech/20230204.0 ⭐️ Open source video captioning on Linux.md @@ -2,7 +2,7 @@ [#]: via: "https://opensource.com/article/23/2/live-captions-linux" [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " From 459e304214ac12af824e153923f13d3c6c247efc Mon Sep 17 00:00:00 2001 From: insidentally Date: Thu, 9 Feb 2023 10:21:10 +0800 Subject: [PATCH 349/357] translating translating by Chao-zhi --- ...️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md index 221dd39e19..8eaba0e0d3 100644 --- a/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md +++ b/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/gnome-arch-linux-install/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Chao-zhi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -264,7 +264,7 @@ via: https://www.debugpoint.com/gnome-arch-linux-install/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Chao-zhi](https://github.com/Chao-zhi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 1ebc308d1529f79bf7c5fe5ad3a0e2382d5a6024 Mon Sep 17 00:00:00 2001 From: insidentally Date: Thu, 9 Feb 2023 12:47:22 +0800 Subject: [PATCH 350/357] Chao-zhi has translated translated --- ...ll GNOME Desktop in Arch Linux [Complete Guide].md | 290 ----------------- ...ll GNOME Desktop in Arch Linux [Complete Guide].md | 303 ++++++++++++++++++ 2 files changed, 303 insertions(+), 290 deletions(-) delete mode 100644 sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md create mode 100644 translated/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md diff --git a/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md deleted file mode 100644 index 8eaba0e0d3..0000000000 --- a/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md +++ /dev/null @@ -1,290 +0,0 @@ -[#]: subject: "How to Install GNOME Desktop in Arch Linux [Complete Guide]" -[#]: via: "https://www.debugpoint.com/gnome-arch-linux-install/" -[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" -[#]: collector: "lkxed" -[#]: translator: "Chao-zhi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -How to Install GNOME Desktop in Arch Linux [Complete Guide] -====== - -**This guide explains the steps you need to install GNOME Desktop in Arch Linux.** - -This guide has two parts. The first part deals with installing the base Arch system. The second part is installing the complete GNOME desktop environment on top of Arch Linux. - -### What is the GNOME Desktop? - -GNOME is a popular desktop environment that is a default desktop choice for many top-tier desktops-based Linux distributions such as Ubuntu and Fedora. Almost all flavors provide a GNOME desktop option. - -The GNOME desktop is one of the stable and user-friendly desktops, hence it is preferred by many average, advanced users. If you want a desktop that remains invisible while you carry out your work, GNOME is the one. It never gets into your way while working. Hence it is still popular and default option for many despite many controversies about being GNOME3 (current iteration) being slow, resource-heavy, etc, - -With all that said, let’s take a look at how you can install a GNOME desktop in bare metal Arch installations. - -### Install GNOME Desktop in Arch Linux - -#### Part 1: Install Arch Linux - -If you have already Arch Linux installed, you can skip this step and directly go to the install GNOME Desktop section below. - -For a quick Arch Linux base installation, follow the below steps. You can also visit [this guide][1] for a complete tutorial on how to install Arch Linux as Dual Boot or in a virtual machine. - -The following steps are a straightforward legacy way of installing Arch. Follow the guide below for a more modern way of using the archinstall script. Once you are done, come back to resume GNOME installation via [step 2][2]. - -Modern method: Install using archinstall script (recommended) - -##### Legacy method: Download Arch Linux - -Download Arch Linux .iso from the below link. There are magnet and torrent links available. Once you download, write the ISO to a USB drive. And then boot from the drive. - -[Download Arch Linux][3] - -If you are planning to install it as a virtual machine image via GNOME Boxes, virt-manager – then you do not need to write it to a USB drive. - -##### Boot and Configure Partitions - -After you boot from the Arch Linux iso, you have to run a series of commands to install the base system. - -First, run the below command to find out the device identifier. - -``` -fdisk -l -``` - -![fdisk -l before][4] - -Then with the device identifier, run the below command to start partitioning your disk. Make sure to change `/dev/sda` as per your system. - -``` -cfdisk /dev/sda -``` - -Select `label type = dos` in the next prompt. - -Select the free space and choose option NEW from the bottom. In this example, I will create three partitions as per below. - -``` -/dev/sda1 - 1G - for /boot/dev/sda2 - 5G - for root/dev/sda3 - 1G - for swap -``` - -![cfdisk][5] - -In the next screen provide partition size for the boot partition (for this example, I gave 1 GB). Select it as the primary partition. - -Repeat the same step for the main root partition of size 5GB. - -![Swap partition type change][6] - -Create a swap partition using the same steps with size 1G (you may change it as per your need). After you create the swap partition, make sure to choose Type at the bottom and mark it as a swap with the option “Linux Swap/Solaris”. - -![final partition list in cfdisk][7] - -Once done, write the changes to the disk using the Write option at the bottom. Make sure you take a backup before you write as this is a permanent change in your system. - -Run the below command to check before you proceed. You can see in this example, three partitions are listed. - -``` -fdisk -l -``` - -![final partition list in fdisk][8] - -Run the following commands in sequence to format and create an ext4 file system in the newly created partition above. Make sure you change the /dev/sda1 and /dev/sda2 as per your need. - -``` -mkfs.ext4 /dev/sda1mkfs.ext4 /dev/sda2mkswap /dev/sda3swapon /dev/sda3 -``` - -After completion, mount the system and create necessary directories. - -``` -mount /dev/sda2 /mntmkdir /mnt/boot /mnt/var /mnt/homemount /dev/sda1 /mnt/boot -``` - -Again, make sure you change /dev/sda1, /dev/sda2 and /dev/sda3 as per your system. - -![prepare file system][9] - -##### Install the base system - -I hope you are already connected to the internet. If not, try using a USB dongle or wired internet connection which Arch installer automatically configure and detect. If you do not have a wired connection available, follow [this guide][10] to configure a wireless or wifi network using Arch Linux installer. - -Run the below commands in sequence to install the base system in the mounted partition. The download size is approx 400 MB. - -``` -pacman -Syypacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub -``` - -![Install base system][11] - -Once complete, generate file system table without which you can’t boot the system. - -``` -genfstab -U /mnt >> /mnt/etc/fstab -``` - -##### Configure the base system - -Follow the below commands in sequence to configure the base system. This involves setting up your locale, language, add a login user, and setting up the internet. - -``` -arch-chroot /mntnano /etc/locale.gen -``` - -Uncomment the locale of your choice by removing # at the beginning. For this guide, I have chosen en_US.UTF-8 UTF-8. Press CTRL+O, Enter, and CTRL+X to exit from nano. - -![change locale][12] - -Generate the locale using: - -``` -locale-gen -``` - -Setup the language using the below command. - -``` -echo LANG=en_US.UTF-8 > /etc/locale.confexport LANG=en_US.UTF-8 -``` - -Setup the local time zone. - -``` -ln -s /usr/share/zoneinfo/America/New_York /etc/localtime -``` - -Again, you can choose them as per your need. You can list the local timezones via the below commands. - -``` -ls /usr/share/zoneinfo -ls /usr/share/zoneinfo/America -``` - -Setup the hardware clock, create a hostname, and enable the DHCP for the internet using the below commands in sequence. You can change `"arindam-pc"` to any hostname as per your desire. - -``` -hwclock --systohc --utcecho arindam-pc > /etc/hostnamesystemctl enable dhcpcd -``` - -The next step is to set up the root user password, create an admin user, and add the user in the sudoers file. - -Follow the below commands in sequence. Make sure to change the user name from `debugpoint` to something else as per your need. - -``` -passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint -``` - -![create user][13] - -Open the sudoers file and add the below lines. - -``` -nano /etc/sudoers -``` - -Add below lines. As you already created the root user, the entry should be there. - -``` -root ALL=(ALL) ALLdebugpoint ALL=(ALL) ALL -``` - -![update sudoers file][14] - -Install grub, setup the initial ramdisk environment, unmount the system using the below commands in sequence. - -``` -grub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfgmkinitcpio -p linuxexit -``` - -![configure grub][15] - -Then reboot your system. If you are isntalling in a physical system, unplug the USB media at this step. - -``` -umount /mnt/boot -umount /mnt -reboot -``` - -You have now successfully installed the Arch Linux base system. It’s time to install the complete GNOME desktop. - -![Arch is installed][16] - -#### Part 2: Install GNOME in Arch Linux - -After reboot, choose Arch Linux from grub. In the Arch Linux prompt start running the following commands in sequence. These commands install Xorg server, display manager, GNOME desktop components, controller packages, and additional applications. - -For all the commands use default, i.e. press enter when asked. - -- **Install Xorg server. Approx install size is 80 MB.** - -``` -sudo pacman -S --needed xorg -``` - -- **Install display manager, GNOME desktop. Approx install size is 300 MB.** - -``` -sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme seahosrse gdm -``` - -The above installation would ask for several options for packages. Choose any of the ones you want. If you are unsure, choose jack, noto-sans and xdg-portal-desktop-gnome when asked. - -- **Install applications** - -This is just a reference. You can also install the ones you require. - -``` -sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper -``` - -Now it’s time to enable the display manager and network manager as service. So that next time you log on, they can run automatically by systemd. - -``` -systemctl enable gdm -systemctl enable NetworkManager -``` - -Reboot the system using the reboot command. - -``` -reboot -``` - -![Arch Linux Running GNOME 43 Desktop][17] - -If all goes well, you should see a nice login prompt on the GNOME desktop. Login using the credential you just created. You should be greeted with a nice and clean GNOME 43 desktop in Arch Linux. - -I hope this guide helps you to install GNOME desktop in a bare metal Arch instalation. - --------------------------------------------------------------------------------- - -via: https://www.debugpoint.com/gnome-arch-linux-install/ - -作者:[Arindam][a] -选题:[lkxed][b] -译者:[Chao-zhi](https://github.com/Chao-zhi) -校对:[校对者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/2020/11/install-arch-linux/ -[2]: https://www.debugpoint.com/archinstall-guide/ -[3]: https://www.archlinux.org/download/ -[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/fdisk-l-before.jpg -[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/cfdisk-1024x159.jpg -[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/Swap-parition-type-change.jpg -[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-cfdisk-1024x178.jpg -[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-fdisk.jpg -[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/prepare-file-system.jpg -[10]: https://www.debugpoint.com/2020/11/connect-wifi-terminal-linux/ -[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/Install-base-system-1024x205.jpg -[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/change-locale.jpg -[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/create-user.jpg -[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/update-sudoers-file.jpg -[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub-1024x639.jpg -[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg -[17]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-Linux-Running-GNOME-43-Desktop-1024x636.jpg diff --git a/translated/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md b/translated/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md new file mode 100644 index 0000000000..a37dcc275e --- /dev/null +++ b/translated/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md @@ -0,0 +1,303 @@ +[#]: subject: "How to Install GNOME Desktop in Arch Linux [Complete Guide]" +[#]: via: "https://www.debugpoint.com/gnome-arch-linux-install/" +[#]: author: "Arindam https://www.debugpoint.com/author/admin1/" +[#]: collector: "lkxed" +[#]: translator: "Chao-zhi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +如何在 Arch Linux 中安装 GNOME 桌面 [完整指南] +====== + +**本指南解释了在 Arch Linux 中安装 GNOME 桌面所需的步骤。** + +本指南有两部分。第一部分是关于安装基本的 Arch 系统。第二部分是在 Arch Linux 基础上安装完整的 GNOME 桌面环境。 + +### 什么是 GNOME 桌面? + +GNOME 是一个流行的桌面环境,是许多基于桌面的顶级 Linux 发行版的默认桌面选择,如 Ubuntu 和 Fedora。几乎所有的口味都提供了一个 GNOME 桌面选项。 + +GNOME 桌面是稳定和用户友好的桌面之一,因此它被许多普通、高级用户所青睐。如果你想要一个在你进行工作时保持隐形的桌面,GNOME 就是这样的。它在工作时不会妨碍到你。因此,尽管有许多关于 GNOME3(目前的迭代)速度慢、资源重等的争议,它仍然是许多人的流行和默认选项。 + +说了这么多,让我们来看看如何在裸机 Arch 中安装 GNOME 桌面。 + +### 在 Arch Linux 中安装 GNOME 桌面 + +#### 第一部分:安装 Arch Linux + +如果你已经安装了 Arch Linux,你可以跳过这一步,直接进入下面安装 GNOME 桌面部分。 + +要快速安装 Arch Linux 基础版,请遵循以下步骤。你也可以访问[该指南][1],了解如何将 Arch Linux 安装为双启动或在虚拟机中的完整教程。 + +本文下面介绍的步骤是安装 Arch 的传统方式。新手请按照下面的指南链接,以更现代的方式使用 archinstall 脚本。完成后,回来通过[步骤 2](#第二部分在-arch-linux-中安装-gnome) 继续 GNOME 安装。 + +[现代方法。使用 archinstall 脚本安装(推荐)][2]。 + +##### 传统的方法。下载 Arch Linux + +从下面的链接下载 Arch Linux .iso。这里也提供磁力和种子链接。下载后,将 ISO 写入 USB 驱动器。然后从该驱动器启动。 + +[下载 Arch Linux][3] + +如果你打算通过 GNOME Boxes、virt-manager 把它安装成一个虚拟机镜像--那么你就不需要把它写入 U 盘。 + +##### 启动和配置分区 + +从 Arch Linux iso 启动后,你必须运行一系列的命令来安装基本系统。 + +首先,运行下面的命令,找出设备标识符。 + +``` +fdisk -l +``` + +![先 fdisk -l][4] + +然后用设备标识符,运行下面的命令,开始对你的磁盘进行分区。请确保根据你的系统改变 `/dev/sda`。 + +``` +cfdisk /dev/sda +``` + +在下一个提示中选择 `label type = dos`。 + +选择自由空间,并从底部选择新的选项。在这个例子中,我将创建三个分区,如下图所示。 + +``` +/dev/sda1 - 1G - for /boot +/dev/sda2 - 5G - for root +/dev/sda3 - 1G - for swap +``` + +![cfdisk][5] + +在下一个屏幕中,提供引导分区的分区大小(在这个例子中,我给出了 1GB)。选择它作为主分区。 + +对大小为 5GB 的主根分区重复同样的步骤。 + +![交换分区类型改变][6] + +用同样的步骤创建一个大小为 1G 的交换分区(你可以根据你的需要改变它)。创建交换分区后,确保在底部选择类型,并将其标记为 "Linux Swap/Solaris "选项的交换分区。 + +![cfdisk 中的最终分区列表][7] + +一旦完成,使用底部的写入选项将变化写入磁盘。确保你在写入前做了备份,因为这是你系统中的一个永久性变化。 + +在你继续之前,运行下面的命令来检查。你可以看到在这个例子中,有三个分区被列出。 + +``` +fdisk -l +``` + +![fdisk 中的最终分区列表][8] 。 + +依次运行下面的命令,在上面新创建的分区中格式化并创建一个 ext4 文件系统。请确保你根据你的需要改变 `/dev/sda1` 和 `/dev/sda2`。 + +``` +mkfs.ext4 /dev/sda1 +mkfs.ext4 /dev/sda2 +mkswap /dev/sda3 +swapon /dev/sda3 +``` + +完成后,装载系统并创建必要的目录。 + +``` +mount /dev/sda2 /mnt +mkdir /mnt/boot /mnt/var /mnt/home +mount /dev/sda1 /mnt/boot +``` + +同样,确保你根据你的系统改变 `/dev/sda1`、`/dev/sda2` 和 `/dev/sda3`。 + +![准备文件系统][9] + +##### 安装基础系统 + +我希望你已经连接到互联网了。如果没有,请尝试使用 USB 加密狗或 Arch 安装程序自动配置和检测的有线网络连接。如果你没有可用的有线连接,请按照[该指南][10] 使用 Arch Linux 安装程序配置一个无线或 wifi 网络。 + +依次运行下面的命令,将基本系统安装到已安装的分区中。下载的大小约为 400MB。 + +``` +pacman -Syy +pacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub +``` + +![安装基本系统][11] + +一旦完成,就会生成文件系统表,没有它你就无法启动系统。 + +``` +genfstab -U /mnt >> /mnt/etc/fstab +``` + +##### 配置基础系统 + +依次按照下面的命令来配置基本系统。这涉及到设置你的地域、语言、添加一个登录用户,以及设置互联网。 + +``` +arch-chroot /mnt +nano /etc/locale.gen +``` + +去掉开头的 #,取消对你所选择的 locale 的注释。在本指南中,我选择了 en_US.UTF-8 UTF-8. 按 CTRL+O、Enter 和 CTRL+X 退出 nano。 + +![本地化][12] + +使用以下方法生成 locale。 + +``` +locale-gen +``` + +如果你不想手动去 `/etc/locale.gen` 设置语言,也可以使用以下命令设置语言。 + +``` +echo LANG=en_US.UTF-8 > /etc/locale.conf +export LANG=en_US.UTF-8 +``` + +设置当地的时区。 + +``` +ln -s /usr/share/zoneinfo/America/New_York /etc/localtime +``` + +同样,你可以根据你的需要来选择它们。你可以通过以下命令列出当地的时区。 + +``` +ls /usr/share/zoneinfo +ls /usr/share/zoneinfo/America +``` + +设置硬件时钟,创建一个主机名,并使用以下命令依次启用互联网的 DHCP。你可以根据你的愿望,将 `"arindam-pc"` 改为任何主机名。 + +``` +hwclock --systohc --utc +echo arindam-pc > /etc/hostname +systemctl enable dhcpcd +``` + +下一步是设置根用户的密码,创建一个管理员用户,并在 sudoers 文件中添加该用户。 + +依次按照下面的命令进行操作。请确保根据你的需要将用户名从 `debugpoint` 改为其他名称。 + +``` +passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint +``` + +![创建用户][13] + +打开 sudoers 文件,添加以下几行。 + +``` +nano /etc/sudoers +``` + +添加以下几行。由于你已经创建了根用户,该条目应该在那里。 + +``` +root ALL=(ALL) ALL +debugpoint ALL=(ALL) ALL +``` + +![更改 sudoer 文件][14] + +安装 grub,设置初始 ramdisk 环境,依次使用下面的命令安装引导。 + +``` +grub-install /dev/sda +grub-mkconfig -o /boot/grub/grub.cfg +mkinitcpio -p linux +exit +``` + +![配置 grub][15] 。 + +然后重新启动你的系统。如果你是在一个物理系统中安装的,在这一步要拔掉 USB 介质。 + +``` +umount /mnt/boot +umount /mnt +reboot +``` + +你现在已经成功地安装了 Arch Linux 基本系统。现在是安装完整的 GNOME 桌面的时候了。 + +![Arch 安装好了][16] + +#### 第二部分:在 Arch Linux 中安装 GNOME + +重启后,从 grub 中选择 Arch Linux。在 Arch Linux 的提示符下,开始依次运行以下命令。这些命令安装 Xorg 服务器、显示管理器、GNOME 桌面组件、控制器包和其他应用程序。 + +所有的命令都使用默认值,即在要求时按回车。 + +- **安装 Xorg 服务器。安装大小约为 80MB。** + +``` +sudo pacman -S --needed xorg +``` + +- **安装显示管理器,GNOME 桌面。安装大小约为 300MB。** + +``` +sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme seahosrse gdm +``` + +上面的安装会要求提供几个软件包的选项。选择你想要的任何一个。如果你不确定,在询问时选择 jack、noto-sans 和 xdg-portal-desktop-gnome。 + +- **安装应用程序** + +这只是一个参考。你也可以安装你所需要的。 + +``` +sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper +``` + +现在是时候把显示管理器和网络管理器作为服务启用了。这样,下次登录时,它们就可以由 systemd 自动运行。 + +``` +systemctl enable gdm +systemctl enable NetworkManager +``` + +使用 reboot 命令重新启动系统。 + +``` +reboot +``` + +![Arch Linux 运行 GNOME 43 桌面][17] 。 + +如果一切顺利,你应该在 GNOME 桌面上看到一个漂亮的登录提示。使用你刚刚创建的凭证登录。迎接你的应该是 Arch Linux 中漂亮而干净的 GNOME 43 桌面。 + +我希望这个指南能帮助你在裸机 Arch 安装 GNOME 桌面。 + +-------------------------------------------------------------------------------- + +通过。https://www.debugpoint.com/gnome-arch-linux-install/ + +作者:[Arindam][a] 选题:[lkxed][b] 翻译者:[Chao-zhi](https://github.com/Chao-zhi)校对:[校对者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/2020/11/install-arch-linux/ +[2]: https://www.debugpoint.com/archinstall-guide/ +[3]: https://www.archlinux.org/download/ +[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/fdisk-l-before.jpg +[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/cfdisk-1024x159.jpg +[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/Swap-parition-type-change.jpg +[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-cfdisk-1024x178.jpg +[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-fdisk.jpg +[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/prepare-file-system.jpg +[10]: https://www.debugpoint.com/2020/11/connect-wifi-terminal-linux/ +[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/Install-base-system-1024x205.jpg +[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/change-locale.jpg +[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/create-user.jpg +[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/update-sudoers-file.jpg +[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub-1024x639.jpg +[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg +[17]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-Linux-Running-GNOME-43-Desktop-1024x636.jpg From 1d17ceba2752a8a484af2f9ced69087d156852e8 Mon Sep 17 00:00:00 2001 From: insidentally Date: Thu, 9 Feb 2023 12:59:24 +0800 Subject: [PATCH 351/357] translating by Chao-zhi translating by Chao-zhi --- ...⭐️ A Guide to systemd journal Maintenance [With Examples].md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md index 1623dec544..31a3c1e20a 100644 --- a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md +++ b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md @@ -2,7 +2,7 @@ [#]: via: "https://www.debugpoint.com/systemd-journald-clean/" [#]: author: "Arindam https://www.debugpoint.com/author/admin1/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "Chao-zhi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " " @@ -168,7 +168,7 @@ via: https://www.debugpoint.com/systemd-journald-clean/ 作者:[Arindam][a] 选题:[lkxed][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Chao-zhi](https://github.com/Chao-zhi) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 773421e2302dddb758223d1eaed634869b244e42 Mon Sep 17 00:00:00 2001 From: insidentally Date: Thu, 9 Feb 2023 13:18:02 +0800 Subject: [PATCH 352/357] translated translated --- ... to systemd journal Maintenance [With Examples].md | 121 ++++++++++-------- 1 file changed, 66 insertions(+), 55 deletions(-) diff --git a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md index 31a3c1e20a..97196eb778 100644 --- a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md +++ b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md @@ -7,84 +7,89 @@ [#]: publisher: " " [#]: url: " " -A Guide to systemd journal Maintenance [With Examples] +systemd 日志维护指南 [附实例] ====== -**Systemd comes with many built-in features to manage the system logs. In this guide, we explain how you can manage system journals, logs and take action on them such as rotating, archiving, and clear logs.****We also explain the manual systems journal clean method and using config file changes.** +**Systemd 内置了很多管理系统日志的功能。在本指南中,我们将介绍如何管理系统日志,并对其采取轮换(rotate)、归档和清除日志等操作。** -If your Linux distribution supports [systemd][1], then it collects logs from all processes, applications of the system every second which starts from the boot. All these logging events are managed by `journald` daemon of systemd. The journald collects all the logs (info, warnings, errors, etc) and stores them as binary data in the disk files.  +**我们还解释了手动系统日志清理方法和使用配置文件的变化。** -As the logs remain in the disk and every second it is collected, it takes up huge disk space; especially for older systems, servers. For example, in one of my test systems which are running for around one year, the log file size is in GBs. +如果你的 Linux 发行版支持 [systemd][1],那么它每秒钟都会从系统的所有进程和应用程序中收集日志,并从启动时开始。所有这些日志事件都由 systemd 的 `journald` 守护程序管理。journald 收集所有的日志(信息、警告、错误等),并将其作为二进制数据存储在磁盘文件中。 -If you manage multiple systems, servers, it is always recommended to properly manage journald logs for efficient operation. Let’s take a look at how you can manage the log files. +由于日志保留在磁盘中,而且每秒钟都在收集,所以它占用了巨大的磁盘空间;特别是对于旧的系统、服务器。例如,在我的一个运行了一年左右的测试系统中,日志文件的大小是 GB 级的。 -### The systemd journal Maintenance +如果你管理多个系统、服务器,建议一定要正确管理 journald 日志,以便高效运行。让我们来看看如何管理日志文件。 -Using the journalctl utility of systemd, you can query these logs, perform various operations on them. For example, viewing the log files from different boots, check for last warnings, errors from a specific process or applications. If you are unaware of these, I would suggest you quickly go through this tutorial – [“use journalctl to View and Analyze Systemd Logs [With Examples]][2]” before you follow this guide.  +### systemd 日志维护 -#### Where are the physical journal log files? +使用 systemd 的 journalctl 工具,你可以查询这些日志,对其进行各种操作。例如,查看不同启动时的日志文件,检查特定进程或应用程序的最后警告和错误。如果你对这些不了解,我建议你在学习本指南之前先快速浏览一下此教程--[《使用 journalctl 查看和分析 systemd 日志[With Examples]][2] 》。 -The systemd’s journald daemon collects logs from every boot. That means, it classifies the log files as per the boot.  +#### 物理日记的日志文件在哪里? -The logs are stored as binary in the path `/var/log/journal` with a folder as machine id. +systemd 的 journald 守护进程在每次启动时都会收集日志。这意味着,它根据启动情况对日志文件进行分类。 -**For example:** +日志以二进制形式存储在路径 `/var/log/journal`,文件夹为机器 ID。 -![Screenshot of physical journal file -1][3] +**比如说。** -![Screenshot of physical journal files -2][4] +![日记文件的截图-1][3] -Also, remember that based on system configuration, runtime journal files are stored at `/run/log/journal/`. And these are removed in each boot.  +![日记文件的截图-2][4] -#### Can I manually delete the log files? +另外,请记住,根据系统配置,运行时日志文件被存储在 `/run/log/journal/`。而这些在每次启动时都会被删除。 -You can, but don’t do it. Instead, follow the below instructions to clear the log files to free up disk space using journalctl utilities. +#### 我可以手动删除日志文件吗? -#### How much disk space is used by systemd log files? +你可以,但不要这样做。相反,请按照下面的说明,使用 journalctl 工具清除日志文件以释放磁盘空间。 + +#### systemd 的日志文件占用了多少磁盘空间? + +打开一个终端,运行以下命令。 -Open up a terminal and run the below command. ``` journalctl --disk-usage ``` -This should provide you with how much is actually used by the log files in your system. +这应该为你提供系统中的日志文件实际使用的数量。 -![journalctl disk usage command][5] +![journalctl 磁盘使用命令][5]。 -If you have a graphical desktop environment, you can open the file manager and browse the path `/var/log/journal` and check the properties. +如果你有一个图形化的桌面环境,你可以打开文件管理器,浏览路径 `/var/log/journal`,并检查属性。 #### systemd journal clean process -The effective way of clearing the log files should be done by `journald.conf` a configuration files. Ideally, you should not manually delete the log files even if the journalctl provides the utility to do that. +清理日志文件的有效方法应该是通过 `journald.conf` 一个配置文件来完成。理想情况下,即使 journalctl 提供了删除日志文件的工具,你也不应该手动删除这些文件。 -Let’s take a look at how you can delete it [manually][6], then I will explain the configuration changes in `journald.conf` so that you do not need to manually delete the files from time to time; Instead, the systemd takes care of it automatically based on your configuration.  +让我们来看看如何[手动][6]删除它,然后我将解释 `journald.conf` 中的配置变化,这样你就不需要时不时地手动删除文件;相反,systemd 会根据你的配置自动处理它。 -##### Manual delete +##### 手动删除 -First, you have to `flush` and `rotate` the log files. Rotating is a way of marking the current active log files as an archive and creating a fresh logfile from this moment. The flush switch asks the journal daemon to flush any log data stored in `/run/log/journal/` into `/var/log/journal/`, if persistent storage is enabled. +首先,你必须 `flush` 和 `rotate` 日志文件。轮换(rotate)是将当前活动的日志文件归档,并立即开始创建一个新的日志文件继续记录日志。flush 开关要求日志守护进程将存储在 `/run/log/journal/` 中的所有日志数据冲入 `/var/log/journal/`,如果持久性存储被启用的话。 -Then, after flushing and rotating, you need to run journalctl with`vacuum-size`, `vacuum-time`, and `vacuum-files` switches to force systemd to clear the logs.  +然后,在 `flush` 和 `rotate` 之后,你需要用 `vacuum-size`, `vacuum-time`, 和 `vacuum-files` 选项运行 journalctl 来强制 systemd 清除日志。 + +**例 1:** -**Example 1:** ``` sudo journalctl --flush --rotate ``` + ``` sudo journalctl --vacuum-time=1s ``` -The above set of commands removes all archived journal log files until the last second. This effectively clears everything. So, be careful while running the command.  +上面这组命令会删除所有存档的日志文件,直到最后一秒。这有效地清除了一切。因此,在运行该命令时要小心。 -![journal clean up - example][7] +![日记清理-例子][7] -After clean up: +清理完毕后。 -![After clean up - journal space usage][8] +![清理后--日志的占用空间][8] -You can also provide the following suffixes as per your need following the number. +你也可以根据你的需要在 `--vacuum-time` 的数字后面提供以下后缀。 - s: seconds - m: minutes @@ -94,73 +99,79 @@ You can also provide the following suffixes as per your need following the numbe - weeks - years -**Example 2:** +**例 2:** + ``` sudo journalctl --flush --rotate ``` + ``` sudo journalctl --vacuum-size=400M ``` -This clears all archived journal log files and retains the last 400MB files. Remember this switch applies to only archived log files only, not on active journal files. You can also use suffixes as below. +这将清除所有存档的日志文件,并保留最后 400MB 的文件。记住这个开关只适用于存档的日志文件,不适用于活动的日志文件。你也可以使用后缀,如下所示。 - K: KB - M: MB - G: GB -**Example 3:** +**例 3:** + ``` sudo journalctl --flush --rotate ``` + ``` sudo journalctl --vacuum-files=2 ``` -The vacuum-files switch clears all the journal files below the number specified. So, in the above example, only the last 2 journal files are kept and everything else is removed. Again, this only works on the archived files. +vacuum-files 选项会清除所有低于指定数量的日志文件。因此,在上面的例子中,只有最后两个日志文件被保留,其他的都被删除。同样,这只对存档的文件有效。 -You can combine the switches if you want, but I would recommend not to. However, make sure to run with `--rotate` switch first. +如果你愿意,你可以把两种选项结合起来,但我建议不要这样做。然而,如果同时使用两个选项,请确保先用 `--rotate` 选项运行。 -### Automatic delete using config files +### 使用配置文件自动删除 -While the above methods are good and easy to use, it is recommended that you control the journal log file cleanup process using the journald configuration files which present at `/etc/systemd/journald.conf`.  +虽然上述方法很好,也很容易使用,但建议你使用 journald 配置文件来控制日志文件的清理过程,该文件存在于 `/etc/systemd/journald.conf`。 -The systemd provides many parameters for you to effectively manage the log files. By combining these parameters you can effectively limit the disk space used by the journal files. Let’s take a look. +systemd 为你提供了许多参数来有效管理日志文件。通过组合这些参数,你可以有效地限制日志文件所占用的磁盘空间。让我们来看看。 -| **journald.conf parameter** | **Description** | **Example** | +|**journald.conf参数**| **Description** | **Example** | | :- | :- | :- | -| SystemMaxUse | Specifies the maximum disk space that can be used by the journal in persistent storage | SystemMaxUse=500M | -| SystemKeepFree | Specifies the amount of space that the journal should leave free when adding journal entries to persistent storage. | SystemKeepFree=100M | -| SystemMaxFileSize | Controls how large individual journal files can grow to in persistent storage before being rotated. | SystemMaxFileSize=100M | -| RuntimeMaxUse | Specifies the maximum disk space that can be used in volatile storage (within the /run filesystem). | RuntimeMaxUse=100M | -| RuntimeKeepFree | Specifies the amount of space to be set aside for other uses when writing data to volatile storage (within the /run filesystem). | RuntimeMaxUse=100M | -| RuntimeMaxFileSize | Specifies the amount of space that an individual journal file can take up in volatile storage (within the /run filesystem) before being rotated. | RuntimeMaxFileSize=200M | +| SystemMaxUse |指定日志在持久性存储中可使用的最大磁盘空间| SystemMaxUse=500M | +| SystemKeepFree |指定在将日志条目添加到持久性存储时,日志应留出的空间量。| SystemKeepFree=100M | +| SystemMaxFileSize |控制单个日志文件在被轮换之前在持久性存储中可以增长到多大。| SystemMaxFileSize=100M | +| RuntimeMaxUse |指定在易失性存储中可以使用的最大磁盘空间(在/run 文件系统内)。| RuntimeMaxUse=100M | +| RuntimeKeepFree |指定将数据写入易失性存储(在/run 文件系统内)时为其他用途预留的空间数量。| RuntimeMaxUse=100M | +| RuntimeMaxFileSize |指定单个日志文件在被轮换之前在易失性存储(在/run 文件系统内)所能占用的空间量。| RuntimeMaxFileSize=200M | + +如果你在运行中的系统的 `/etc/systemd/journald.conf` 文件中添加这些值,那么在更新文件后,你必须重新启动 journald。要重新启动,请使用以下命令。 -If you add these values in a running system in `/etc/systemd/journald.conf` file, then you have to restart the journald after updating the file. To restart use the following command.  ``` sudo systemctl restart systemd-journald ``` -### Verification of log files +### 核实日志文件 + +在你清理完文件后,检查日志文件的完整性是比较明智的。要做到这一点,请运行下面的命令。该命令显示了对日志文件的 PASS、FAIL。 -It is wiser to check the integrity of the log files after you clean up the files. To do that run the below command. The command shows the PASS, FAIL against the journal file. ``` journalctl --verify ``` -![verify log files][9] +![验证日志文件][9] -### Closing Notes +### 结案说明 -I hope this guide helps you to understand the basics of the systemd journal management process. With these, you can manage the disk space used by the log files in your system or servers by limiting the space, clearing old log files. These are just the guideline commands, you can combine these in multiple ways to achieve your system demands.  +希望本指南能帮助你了解 systemd 日志管理流程的基本情况。通过这些,你可以通过限制空间、清除旧的日志文件来管理系统或服务器中的日志文件所使用的磁盘空间。这些只是指导性的命令,你可以通过多种方式组合这些命令来实现你的系统需求。 -- [journalctl manual][10] -- [journald.conf manual][11] +- [journalctl 手册][10] +- [journald.conf 手册][11] -------------------------------------------------------------------------------- From 97c1f0cd60314f18fa39be29af28707ac9f298ac Mon Sep 17 00:00:00 2001 From: insidentally Date: Thu, 9 Feb 2023 13:19:12 +0800 Subject: [PATCH 353/357] translated translated --- ...⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md (100%) diff --git a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md b/translated/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md similarity index 100% rename from sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md rename to translated/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md From c27edc8bd2938d1f1662bed8d7312f929b96a24f Mon Sep 17 00:00:00 2001 From: cool-summer-021 Date: Thu, 9 Feb 2023 17:05:21 +0800 Subject: [PATCH 354/357] =?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 --- ... computing with this open source software development kit.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210619 Try quantum computing with this open source software development kit.md b/sources/tech/20210619 Try quantum computing with this open source software development kit.md index a36b70ca20..fa697ee98d 100644 --- a/sources/tech/20210619 Try quantum computing with this open source software development kit.md +++ b/sources/tech/20210619 Try quantum computing with this open source software development kit.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/6/qiskit) [#]: author: (Gordon Haff https://opensource.com/users/ghaff) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (cool-summer-021) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 5ae145d899de7d64e0205ce683f39579311037db Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 10 Feb 2023 06:59:07 +0800 Subject: [PATCH 355/357] RP @cool-summer-021 https://linux.cn/article-15525-1.html --- ...mputing by programming embedded systems.md | 74 +++++++++---------- 1 file changed, 37 insertions(+), 37 deletions(-) rename {translated/tech => published}/20210316 Get started with edge computing by programming embedded systems.md (56%) diff --git a/translated/tech/20210316 Get started with edge computing by programming embedded systems.md b/published/20210316 Get started with edge computing by programming embedded systems.md similarity index 56% rename from translated/tech/20210316 Get started with edge computing by programming embedded systems.md rename to published/20210316 Get started with edge computing by programming embedded systems.md index 8d0d17e00a..baf0025a1d 100644 --- a/translated/tech/20210316 Get started with edge computing by programming embedded systems.md +++ b/published/20210316 Get started with edge computing by programming embedded systems.md @@ -3,56 +3,55 @@ [#]: author: "Alan Smithee https://opensource.com/users/alansmithee" [#]: collector: "lkxed" [#]: translator: "cool-summer-021" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15525-1.html" -通过编写嵌入式系统入手边缘计算 +通过编写嵌入式系统入门边缘计算 ====== -用于操控无线调制解调器的AT设备包是RTOS最流行的扩展功能之一。 -![Looking at a map][1] +> 用于操控无线调制解调器的 AT 设备包是 RTOS 最流行的扩展功能之一。 -Image by: opensource.com +![][0] -RTOS 是一个开源的[嵌入式设备操作系统][2],由 RT-Thread 开发。它为开发者提供了标准化、友好的基础架构,开发者可以基于各种设备编写代码,它包含大量有用的类库和工具包,使开发过程更加便捷。 +RTOS 是一个开源的 [嵌入式设备操作系统][2],由 RT-Thread 开发。它为开发者提供了标准化的、友好的基础架构,开发者可以基于各种设备编写代码,它包含大量有用的类库和工具包,使开发过程更加便捷。 -RTOS 使用的是模块方式,以便于扩展,这一点跟 Linux 类似。程序包令开发者能基于任何目标设备使用 RTOS。RTOS 最常用的一种扩展是 AT 设备包,它包含各种不同 AT 设备(例如调制解调器)的移植文件和示例代码。 +RTOS 使用的是模块方式,以便于扩展,这一点跟 Linux 类似。各种软件包可以让开发者将 RTOS 用于任何想要的目标设备。RTOS 最常用的一种扩展是 AT 设备包,它包含各种不同 AT 设备(例如调制解调器)的移植文件和示例代码。 -在超过62,000次下载中(至少在撰写本文时),最流行的RTOS扩展之一是At设备包,其中包括用于不同At设备的移植文件和示例代码。 +在超过 62,000 次下载中(截止至撰写本文时),最流行的 RTOS 扩展之一是 AT 设备包,其中包括用于不同 AT 设备的移植文件和示例代码。 ### 关于 AT 命令 -起初,AT 命令是一个协议,用于控制拨号调制解调器。随着调制解调器技术发展到较高的带宽,它仍然可以用于为设备控制建立轻量级而高效的协议,主流的移动电话厂商也联手开发了一系列 AT 命令,用于控制移动电话上的 GSM 模块。 +起初,AT 命令是一个协议,用于控制拨号调制解调器。随着调制解调器技术发展到较高的带宽,它仍然可以用作轻量级而高效的设备控制协议,主流的移动电话厂商也联手开发了一系列 AT 命令,用于控制移动电话上的 GSM 模块。 -如今,AT 命令仍然在网络通信领域具有通用性,很多设备,例如WiFi、蓝牙、4G,都支持 AT 命令。 +如今,AT 命令仍然在网络通信领域具有通用性,很多设备,例如 WiFi、蓝牙、4G,都支持 AT 命令。 -如果您正在创建用于边缘计算输入、监控或物联网(IoT)的专用设备,则您可能接触到的 RTOS 支持的 AT 设备包括ESP8266、ESP32、M26、MC20、RW007、MW31、SIM800C、W60X、SIM76XX、A9/A9G、BC26、AIR720、ME3616、M 6315、BC28和EC200X。 +如果你正在创建用于边缘计算输入、监控或物联网(IoT)的专用设备,则你可能接触到一些 RTOS 支持的 AT 设备,包括 ESP8266、ESP32、M26、MC20、RW007、MW31、SIM800C、W60X、SIM76XX、A9/A9G、BC26、AIR720、ME3616、M 6315、BC28 和 EC200X。 -RT-Thread包含套接字抽象层(SAL)组件,SAL 实现了多种网络协议和接口的抽象,为上层提供了一系列标准的 [BSD Socket][3] API。SAL 进而接替了AT 的套接字接口,所以开发者需要考虑网络应用层提供的网络接口。 +RT-Thread 包含套接字抽象层(SAL)组件,SAL 实现了多种网络协议和接口的抽象,为上层提供了一系列标准的 [BSD 套接字][3] API。SAL 进而接管了 AT 的套接字接口,所以开发者只需要考虑网络应用层提供的网络接口。 -这个包实现了设备(包括上述设备)上的 AT 套接字功能,也支持通过标准套接字接口以 AT 命令的形式通信。[RT-Thread 编程指南][4]中就有关于这些功能的详细介绍。 +这个软件包实现了设备(包括上述设备)上的 AT 套接字功能,支持通过标准套接字接口以 AT 命令的形式通信。[RT-Thread 编程指南][4] 中就有关于这些功能的详细介绍。 -at_device 包是在 LGPLv2.1 许可证下分发的,借助 [RT-Thread Env tool][5] 可以方便地获取到。该工具包含一个配置器和一个包管理器,它们分别用于配置内核和组件功能,可以用于定制组件并管理在线包。有了这些工具,开发者可以像搭积木一样构建系统。 +at_device 软件包是在 LGPLv2.1 许可证下分发的,借助 [RT-Thread Env 工具][5] 可以方便地获取到。该工具包含一个配置器和一个包管理器,它们分别用于配置内核和组件功能,可以用于定制组件并管理在线包。有了这些工具,开发者可以像搭积木一样构建系统。 ### 获取 AT 设备包 -欲使用配置了 RTOS 的 AT 设备,你必须启用 AT 组件库和 AT 套接字功能,需要: +为了使用配置了 RTOS 的 AT 设备,你必须启用 AT 组件库和 AT 套接字功能,需要: * RT_Thread 4.0.2+ -* RT_Thread AT component 1.3.0+ -* RT_Thread SAL component -* RT-Thread netdev component +* RT_Thread AT 组件 1.3.0+ +* RT_Thread SAL 组件 +* RT-Thread netdev 组件 AT 设备包已经针对多种版本进行了相应的更新。版本不同,配置选项也相应地不同,因此必须针对相应的系统版本进行适配。目前最常用的 AT 设备包版本有: -* V1.2.0: 针对低于V3.1.3的RT-Thread,V1.0.0 的AT组件 -* V1.3.0: 针对低于V3.1.3的RT-Thread,V1.1.0 的AT组件 -* V1.4.0: 针对低于V3.1.3或等于V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 -* V1.5.0: 针对低于V3.1.3或等于V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 -* V1.6.0: 针对低于V3.1.3 或等于V4.0.1 的 RT-Thread,V1.2.0 的 AT 组件 -* V2.0.0/V2.0.1: 针对高于V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 -* 最新版: 针对高于V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 +* V1.2.0: 针对低于 V3.1.3 的 RT-Thread,V1.0.0 的 AT 组件 +* V1.3.0: 针对低于 V3.1.3 的 RT-Thread,V1.1.0 的 AT 组件 +* V1.4.0: 针对低于 V3.1.3 或等于 V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 +* V1.5.0: 针对低于 V3.1.3 或等于 V4.0.0 的 RT-Thread,V1.2.0 的 AT 组件 +* V1.6.0: 针对低于 V3.1.3 或等于 V4.0.1 的 RT-Thread,V1.2.0 的 AT 组件 +* V2.0.0/V2.0.1: 针对高于 V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 +* 最新版: 针对高于 V3.1.3 的 RT-Thread,V1.3.0 的 AT 组件 获取正确的版本的过程主要是在生成菜单时自动完成的。它基于现有的系统环境提供最合适的 AT 设备包。 @@ -67,9 +66,9 @@ RT-Thread online packages  --->               Version (V1.6.0)  ---> ``` -启用AT设备init by thread的选项决定了配置是否创建一个单独的线程来初始化设备网络。 +按线程启用 AT 设备初始化的选项决定了配置是否创建一个单独的线程来初始化设备网络。 -2.x版本支持同时启用多个 AT 设备: +2.x 版本支持同时启用多个 AT 设备: ``` RT-Thread online packages  ---> @@ -108,14 +107,14 @@ RT-Thread online packages  ---> 这个版本包含了很多其他选项,其中也有启用示例代码的选项,这对初学者或使用不熟悉的设备的开发者很有帮助。 -你也可以设置相应选项,选择你需要使用的识别码,来为你的组件供电,一个识别码来指示电源状态,样本设备使用的串行设备的名称,以及样本设备接收的数据的最大长度。在合适的设备上,你也可以设置 SSID 和密码。 +你也可以设置相应选项,选择你想用来给你的组件供电的针脚、指示电源状态的针脚、样本设备使用的串行设备的名称,以及样本设备接收数据的最大长度。在合适的设备上,你也可以设置 SSID 和密码。 简而言之,控制选项是够用的。 -* V2.x.x 版本支持同时启用多个 AT 设备,欲查看启用的设备信息,在[finsh shell][6] 中执行 `ifocnfig` 命令即可。 +* V2.x.x 版本支持同时启用多个 AT 设备,欲查看启用的设备信息,在 [finsh shell][6] 中执行 `ifocnfig` 命令即可。 * V2.X.X 版本需要设备在使用前先注册;注册可以在样例目录中进行,或在应用层以自定义方式进行。 -* 识别码选项,例如电源选项和电源状态选项,是按照设备的硬件连接来配置的。如果硬件的开启功能不可用,它们就会被设置为 `-1`。 -* 一台AT 设备应当对应一个序列名称,每台设备的 AT客户端名称应当是不同的。 +* 针脚选项,例如电源针脚和电源状态针脚是按照设备的硬件连接来配置的。如果硬件的开启功能不可用,它们就会被设置为 `-1`。 +* 一台AT 设备应当对应一个序列名称,每台设备的 AT 客户端名称应当是不同的。 ### AT 组件配置选项 @@ -135,15 +134,15 @@ RT-Thread Components  --->     (128)   The maximum length of AT Commonds buffer ``` -与AT 设备包有关的配置选项有: +与 AT 设备包有关的配置选项有: * 支持的客户端最大个数:选择 AT 设备包中的多台设备时,需要将该选项配置为对应的设备台数; -* 通过 AT 命令启用 BSD Socket API 功能:当选择 AT 设备包时默认选择该选项。 +* 通过 AT 命令启用 BSD 套接字 API 功能:当选择 AT 设备包时默认选择该选项。 * AT 命令的最大长度:AT 命令可发送的数据的最大长度 ### 一切皆有可能 -当你开始进行嵌入式系统编程,你会很快意识到,你可以创造自己想象得到得任何东西。RTOS 旨在帮助你实现它,它的那些功能包为你提供了良好的开端。现在,设备的互联也是可期待的。IoT 技术一定会实现多种协议间的通信,AT 协议将发挥关键作用。 +当你开始进行嵌入式系统编程,你会很快意识到,你可以创造自己想象得到得任何东西。RTOS 旨在帮助你实现它,它的那些功能包为你提供了良好的开端。现在,设备的互联也是可期待的。边缘的物联网技术必须能够通过各种协议进行通信,而 AT 协议是关键。 -------------------------------------------------------------------------------- @@ -152,7 +151,7 @@ via: https://opensource.com/article/21/3/rtos-embedded-development 作者:[Alan Smithee][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/) 荣誉推出 @@ -165,3 +164,4 @@ via: https://opensource.com/article/21/3/rtos-embedded-development [5]: https://www.rt-thread.io/download.html?download=Env [6]: https://www.rt-thread.org/download/rttdoc_1_0_0/group__finsh.html [7]: https://www.redhat.com/en/topics/edge-computing +[0]: https://img.linux.net.cn/data/attachment/album/202302/10/065738jhzvfgfgyvfznfhz.jpg \ No newline at end of file From d3723ade3172313657ba286b531789ce980b5620 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 10 Feb 2023 08:46:13 +0800 Subject: [PATCH 356/357] translating --- ... ⭐️⭐️ Merge design and code with Penpot.md | 57 ------------------ ... ⭐️⭐️ Merge design and code with Penpot.md | 58 +++++++++++++++++++ 2 files changed, 58 insertions(+), 57 deletions(-) delete mode 100644 sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md create mode 100644 translated/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md diff --git a/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md b/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md deleted file mode 100644 index 016c6daed7..0000000000 --- a/sources/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md +++ /dev/null @@ -1,57 +0,0 @@ -[#]: subject: "Merge design and code with Penpot" -[#]: via: "https://opensource.com/article/23/1/merge-design-code-penpot" -[#]: author: "Seth Kenlon https://opensource.com/users/seth" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Merge design and code with Penpot -====== - -For most of the history of computer programming, there's been a gap between the programmers creating an application's code and the designers creating an application's user experience (UX). The two disciplines receive vastly different training, and they use a different set of tools. Programmers use a text editor or an IDE to write code, while designers often draw concepts of widget layout and potential interactions. While some IDEs, like [Eclipse][1] and [Netbeans][2], have interface design components, they're usually focused on widget position and not on widget design. The open source design app [Penpot][3] is a collaborative design and prototyping platform. It has a suite of new features that make it easy for designers and developers to work together with familiar workflows. Penpot's design interface lets developers write code in harmony with the design process like no other tool does. And it's come a long way since Opensource.com [last looked at it][4]. Its latest features don't just improve your experience with Penpot, they propel the open source Penpot app past similar and proprietary tools. - -### Prototyping with Penpot - -One of the common problems with trying to design how an application might work best is that, at the time of designing, the application doesn't exist yet. A designer can visualize and storyboard to help both the design team and the programmer understand what to aim for. But it's a process that requires iteration and feedback as developers start to implement UX concepts, and designs change to react to the reality of code. - -With Penpot, you can create a "working" prototype of your web or mobile application. You can connect buttons with specific actions, triggering changes in layout based on user input. And this can all be done before any code for the project exists. - -The most important aspect of this isn't the ability to do a mock-up, though. Everything done in Penpot for an app's design has usable layout data that developers can use in the final project. Penpot isn't just a great drawing and layout tool. It informs the coding process. - -Rather than providing just a visual list of designer-specific elements, like properties, colors, and typography, Penpot now integrates code output directly into the design workspace (like developer tools in a web browser). Designers and developers share the same space for design and front-end development, getting specifications in whatever format they need. - -![Image of the current Penpot interface][5] - -### Memory unlock - -Many online design tools use proprietary technology to provide some fancy features, but at the price of essentially becoming an application, you don't run so much as access through a browser. Penpot uses open web standards, though, and is rendered by your web browser. That means Penpot has access to the web browser's maximum available memory, which makes Penpot the first online prototype and layout application with design scalability. You can provide more options, more mock-ups, and more pitches. Plus, you can open your design space to more concurrent collaborators with no fear of running out of application memory. - -### Self-hosting and SaaS - -Penpot is open source, so you don't have to use it on the cloud if that doesn't fit your workflow. You can self-host Penpot easily in a container, using it as a local application on your own workstation or hosting it for your organization on your own server. - -### Open source design - -I've written an [introductory article to Penpot][6] previously, and since then the application has only gotten better. If you're looking to bring coders and stakeholders into your design process, then give Penpot a try. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/23/1/merge-design-code-penpot - -作者:[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/12/eclipse -[2]: https://opensource.com/article/20/12/netbeans -[3]: http://penpot.app -[4]: https://opensource.com/article/21/9/open-source-design -[5]: https://opensource.com/sites/default/files/2022-07/Current%20Penpot%20interface.png -[6]: https://opensource.com/article/21/12/open-source-design-penpot diff --git a/translated/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md b/translated/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md new file mode 100644 index 0000000000..2e455b0e97 --- /dev/null +++ b/translated/tech/20230131.2 ⭐️⭐️ Merge design and code with Penpot.md @@ -0,0 +1,58 @@ +[#]: subject: "Merge design and code with Penpot" +[#]: via: "https://opensource.com/article/23/1/merge-design-code-penpot" +[#]: author: "Seth Kenlon https://opensource.com/users/seth" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +用 Penpot 合并设计和代码 +====== + +在计算机编程的大部分历史中,在创建应用的代码的程序员和创建应用的用户体验(UX)的设计师之间一直存在着差距。这两个学科接受的培训大不相同,他们使用的工具也不同。程序员使用文本编辑器或集成开发环境来编写代码,而设计师则经常绘制小部件布局和潜在交互的概念。虽然一些 IDE,像 [Eclipse][1] 和 [Netbeans][2],有界面设计组件,但它们通常专注于小部件的位置而不是小部件的设计。开源设计应用 [Penpot][3] 是一个协作式设计和原型设计平台。它有一套新的功能,使设计师和开发者可以很容易地用熟悉的工作流程一起工作。Penpot 的设计界面可以让开发者在设计过程中和谐地编写代码,这是其他工具所无法做到的。自从 Opensource.com [最后一次关注它][4]以来,它已经有了长足的进步。它的最新功能不仅改善了你使用 Penpot 的体验,还推动了开源的 Penpot 应用超越类似的专有工具。 + +### 用 Penpot 做原型 + +试图设计一个应用如何最好地工作的常见问题之一是,在设计的时候,这个应用还不存在。设计师可以通过视觉化和故事板来帮助设计团队和程序员了解目标是什么。但这是一个需要迭代和反馈的过程,因为开发人员开始实施 UX 概念,并且设计会发生变化以对代码的现实做出反应。 + +使用 Penpot,你可以为你的网络或移动应用创建一个“可用”原型。你可以将按钮与特定的行动联系起来,根据用户的输入触发布局的变化。而这一切都可以在项目的代码存在之前完成。 + +这方面最重要的不是做一个模拟的能力,但是。在 Penpot 中为应用的设计所做的一切都有可用的布局数据,开发人员可以在最终的项目中使用。Penpot 不仅仅是一个伟大的绘图和布局工具。它为编码过程提供信息。 + +Penpot 不是仅仅提供一个设计师特定元素的视觉列表,如属性、颜色和排版,而是现在将代码输出直接整合到设计工作区(就像 Web 浏览器中的开发者工具)。设计师和开发人员共享设计和前端开发的相同空间,以他们需要的任何格式获得规范。 + +![Image of the current Penpot interface][5] + +### 内存解锁 + +许多在线设计工具使用专有技术来提供一些花哨的功能,但代价是基本上成为一个应用,你不能运行,而只能通过浏览器访问。虽然 Penpot 使用开放的网络标准,并由你的 Web + 浏览器渲染。这意味着 Penpot 可以访问 Web 浏览器的最大可用内存,这使得 Penpot 成为第一个具有设计扩展性的在线原型和布局应用。你可以提供更多的选项,更多的模型,和更多的投稿。此外,你可以向更多的并发合作者开放你的设计空间,而不必担心应用的内存耗尽。 + +### 自我托管和 SaaS + +Penpot 是开源的,所以你不必在云上使用它,如果这不适合你的工作流程。你可以在一个容器中轻松地自我托管 Penpot,在你自己的工作站上作为一个本地应用使用,或者在你自己的服务器上为你的组织托管它。 + +### 开源设计 + +我以前写过一篇 [Penpot 的介绍性文章][6],自那以后,这个应用变得更好了。如果你想把程序员和相关人员带入你的设计过程中,那么请试试 Penpot。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/23/1/merge-design-code-penpot + +作者:[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/eclipse +[2]: https://opensource.com/article/20/12/netbeans +[3]: http://penpot.app +[4]: https://opensource.com/article/21/9/open-source-design +[5]: https://opensource.com/sites/default/files/2022-07/Current%20Penpot%20interface.png +[6]: https://opensource.com/article/21/12/open-source-design-penpot From 7e45726ef78be1e054353ab46c2c7000455cd58c Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 10 Feb 2023 08:48:26 +0800 Subject: [PATCH 357/357] translating --- ....0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md b/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md index be82e4ad91..6757bebe6f 100644 --- a/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md +++ b/sources/tech/20230206.0 ⭐️ Elementary OS 7 Installation Guide with Screenshots.md @@ -2,7 +2,7 @@ [#]: via: "https://www.linuxtechi.com/elementary-os-7-installation-guide/" [#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/" [#]: collector: "lkxed" -[#]: translator: " " +[#]: translator: "geekpi" [#]: reviewer: " " [#]: publisher: " " [#]: url: " "