Merge remote-tracking branch 'LCTT/master'

This commit is contained in:
Xingyu Wang 2020-02-19 10:13:13 +08:00
commit c1cf2ebe4e
13 changed files with 1360 additions and 206 deletions

View File

@ -1,110 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Screenshot your Linux system configuration with Bash tools)
[#]: via: (https://opensource.com/article/20/1/screenfetch-neofetch)
[#]: author: (Don Watkins https://opensource.com/users/don-watkins)
Screenshot your Linux system configuration with Bash tools
======
ScreenFetch and Neofetch make it easy to share your Linux environment
with others.
![metrics and data shown on a computer screen][1]
There are many reasons you might want to share your Linux configuration with other people. You might be looking for help troubleshooting a problem on your system, or maybe you're so proud of the environment you've created that you want to showcase it to fellow open source enthusiasts.
You could get some of that information with a **cat /proc/cpuinfo** or **lscpu** command at the Bash prompt. But if you want to share more details, such as your operating system, kernel, uptime, shell environment, screen resolution, etc., you have two great tools to choose: screenFetch and Neofetch.
### ScreenFetch
[ScreenFetch][2] is a Bash command-line utility that can produce a very nice screenshot of your system configuration and uptime. It is an easy way to share your system's configuration with others in a colorful way.
It's simple to install screenFetch for many Linux distributions. 
On Fedora, enter:
```
`$ sudo dnf install screenfetch`
```
On Ubuntu, enter:
```
`$ sudo apt install screenfetch`
```
For other operating systems, including FreeBSD, MacOS, and more, consult the screenFetch wiki's [installation page][3]. Once screenFetch is installed, it can produce a detailed and colorful screenshot like this:
![screenFetch][4]
ScreenFetch also provides various command-line options to fine-tune your results. For example, **screenfetch -v** returns verbose output that presents each option line-by-line along with the display shown above.
And **screenfetch -n** eliminates the operating system icon when it displays your system information.
![screenfetch -n option][5]
Other options include **screenfetch -N**, which strips all color from the output; **screenfetch -t**, which truncates the output depending on the size of the terminal; and **screenFetch -E**, which suppresses errors.
Be sure to check the man page on your system for other options. ScreenFetch is open source under the GPLv3, and you can learn more about the project in its [GitHub repository][6].
### Neofetch
[Neofetch][7] is another tool to create a screenshot with your system information. It is written in Bash 3.2 and is open source under the [MIT License][8].
According to the project's website, "Neofetch supports almost 150 different operating systems. From Linux to Windows, all the way to more obscure operating systems like Minix, AIX, and Haiku."
![Neofetch][9]
The project maintains a wiki with excellent [installation documentation][10] for a variety of distributions and operating systems.
If you are on Fedora, RHEL, or CentOS, you can install Neofetch at the Bash prompt with:
```
`$ sudo dnf install neofetch`
```
On Ubuntu 17.10 and greater, you can use:
```
`$ sudo apt install neofetch`
```
On its first run, Neofetch writes a **~/.config/neofetch/config.conf** file to your home directory (**.config/config.conf**), which enables you to [customize and control][11] every aspect of Neofetch's output. For example, you can configure Neofetch to use the image, ASCII file, or wallpaper of your choice—or nothing at all. The config.conf file also makes it easy to share your customization with others.
If Neofetch doesn't support your operating system or provide all the options you are looking for, be sure to open up an issue in the project's [GitHub repo][12].
### Conclusion
No matter why you want to share your system configuration, screenFetch or Neofetch should enable you to do so. Do you know of another open source tool that provides this functionality on Linux? Please share your favorite in the comments.
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/1/screenfetch-neofetch
作者:[Don Watkins][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/don-watkins
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/metrics_data_dashboard_system_computer_analytics.png?itok=oxAeIEI- (metrics and data shown on a computer screen)
[2]: https://github.com/KittyKatt/screenFetch
[3]: https://github.com/KittyKatt/screenFetch/wiki/Installation
[4]: https://opensource.com/sites/default/files/uploads/screenfetch.png (screenFetch)
[5]: https://opensource.com/sites/default/files/uploads/screenfetch-n.png (screenfetch -n option)
[6]: http://github.com/KittyKatt/screenFetch
[7]: https://github.com/dylanaraps/neofetch
[8]: https://github.com/dylanaraps/neofetch/blob/master/LICENSE.md
[9]: https://opensource.com/sites/default/files/uploads/neofetch.png (Neofetch)
[10]: https://github.com/dylanaraps/neofetch/wiki/Installation
[11]: https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
[12]: https://github.com/dylanaraps/neofetch/issues

View File

@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )

View File

@ -1,95 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: (Morisun029)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Why developers like to code at night)
[#]: via: (https://opensource.com/article/20/2/why-developers-code-night)
[#]: author: (Matt Shealy https://opensource.com/users/mshealy)
Why developers like to code at night
======
A nocturnal work schedule is the key to creativity and productivity for
many open source programmers.
![Person programming on a laptop on a building][1]
If you ask most developers when they prefer to work, many will say their most productive hours are at night. This may be especially true for open source contributors who are contributing to projects outside of their day job (though hopefully within healthy limits to [avoid burnout][2]).
Some like to start in the evening and work till the early hours while others get up super early—say, 4 a.m.—to get most of the programming work done before the daily grind kicks in.
This work habit may make many developers seem like oddballs and misfits. However, there are quite a few reasons why so many programmers prefer to work during the odd hours:
### The maker's schedule
According to [Paul Graham][3], people who "produce stuff" tend to adhere to the maker's schedule—they prefer to use time in units of a half-day or longer. In fact, most [developers have the same preference][4].
For one thing, developers work on large abstract systems and need the mental space to process a model in its entirety. Having their schedules sliced into 15- or 30-minute chunks for emails, meetings, phone calls, and interruptions from co-workers is simply counterproductive.
For another, it's often not possible to program effectively in units of an hour; that's barely enough time to wrap your head around the task at hand and get started.
Programming is also adversely affected by context-switching. By working at night, developers can avoid as many distractions as possible. Without the constant barrage of interruptions, they can spend a few solid hours focusing on the task at hand and be as productive as possible.
### The peaceful quiet
With the background noise of various activities (e.g., office chatter, traffic on the street) mostly absent at night or in the early hours, many programmers experience a sense of relaxation. This allows them to be more creative and productive—especially when tackling mentally stimulating tasks such as coding.
The solitude and peacefulness, plus knowing that they'll have a few uninterrupted hours, often take the stress and time pressure associated with a daytime work schedule off their shoulders, allowing them to produce higher quality work.
Not to mention, there's nothing like indulging in your favorite midnight snacks when you have solved a thorny problem!
### Communication
Developers working on open source projects can have a different communication cadence than a programmer working in-house at a company. Most open source communication is done asynchronously through channels like mailing lists or GitHub comments. A lot of times, other programmers are in different countries and time zones, so communicating in real-time often requires developers to be night owls.
### The sleepy brain
This may sound counterintuitive, but as the day wears on, the brain gets tired enough so it can only focus on a single task. This essentially eliminates multitasking, which is a major hurdle to staying focused and productive. But with a sleepy brain, you can't afford not to stay focused!
Also, many developers often make the most significant progress when they go to sleep thinking about the problem they're trying to solve. The subconscious mind goes to work, and the answers often come to them in the early hours when they're still half asleep.
This is not surprising since [sleep boosts brain functions][5], helping us make sense of new information and think more creatively. When the solutions present themselves in the wee hours, these developers just get up and hit the ground running without missing a beat.
### Flexible and creative thinking
Many programmers experience an upswing in creativity at night. The prefrontal cortex, the part of the brain associated with the ability to concentrate, gets tired at the end of the day. This seems to clear the way for more flexible and creative thinking for some people.
According to [Brant Hasler][6], assistant professor of psychiatry at the University of Pittsburgh School of Medicine, "with less of that top-down control and 'cognitive inhibition,' the brain might be freed up for more divergent thinking, allowing one to make new associations between different concepts more easily." Combined with the positive mood made possible by a more relaxed environment, developers can come up with innovative ideas more easily.
Also, without distractions and having the space to concentrate for several hours, you can "get in the zone." This helps you better focus on a project and get in the flow without worrying about things happening around you.
### Bright computer screens
The sleep cycle of many programmers is delayed because they look at bright screens all day. The blue light from computer screens [disrupts our circadian rhythm][7] by delaying the release of sleep-inducing melatonin, increasing alertness, and resetting the body's internal clock to a later schedule. As a result, developers tend to go to bed later and later.
### Influence from the past
In the past, most developers worked at night out of necessity because shared servers didn't have the computing power to support programming work while everyone else in the company is using the servers during the day. Developers needed to wait until late at night to perform tasks that weren't feasible during the day, such as testing projects, running extensive code-compile-run-debug cycles, and deploying new codes. Even though servers are more powerful now and most can support the demand, the trend to work at night continues as part of the culture.
### Final thoughts
While there are many reasons why developers prefer to work at night, keep in mind that being a night owl doesn't mean you should skimp on sleep. Lack of sleep leads to stress and anxiety and, ultimately, burnout.
Getting enough quality sleep is the key to maintaining good physical health and brain functions. For example, it helps you integrate new information, cement memories, think creatively, remove accumulated toxins, regulate your appetite, and prevent premature aging.
No matter what your schedule is, make sure to give your brain the rest it needs so you can be on your game and as productive as possible—all day, every day!
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/2/why-developers-code-night
作者:[Matt Shealy][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/mshealy
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_code_programming_laptop.jpg?itok=ormv35tV (Person programming on a laptop on a building)
[2]: https://opensource.com/article/19/11/burnout-open-source-communities
[3]: http://www.paulgraham.com/makersschedule.html
[4]: https://www.chamberofcommerce.com/business-advice/software-development-trends-overtaking-the-market
[5]: https://amerisleep.com/blog/sleep-impacts-brain-health/
[6]: https://www.vice.com/en_us/article/mb58a8/late-night-creativity-spike
[7]: https://www.sleepfoundation.org/articles/how-blue-light-affects-kids-sleep

View File

@ -0,0 +1,132 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How to get MongoDB Server on Fedora)
[#]: via: (https://fedoramagazine.org/how-to-get-mongodb-server-on-fedora/)
[#]: author: (Honza Horak https://fedoramagazine.org/author/hhorak/)
How to get MongoDB Server on Fedora
======
![][1]
Mongo (from “humongous”) is a high-performance, open source, schema-free document-oriented database, which is one of the most favorite so-called [NoSQL][2] databases. It uses JSON as a document format, and it is designed to be scalable and replicable across multiple server nodes.
### Story about license change
Its been more than a year when the upstream MongoDB decided to change the license of the Server code. The previous license was GNU Affero General Public License v3 (AGPLv3). However, upstream wrote a new license designed to make companies running MongoDB as a service contribute back to the community. The new license is called Server Side Public License (SSPLv1) and more about this step and its rationale can be found at [MongoDB SSPL FAQ][3].
Fedora has always included only free (as in “freedom”) software. When SSPL was released, Fedora [determined][4] that it is not a free software license in this meaning. All versions of MongoDB released before the license change date (October 2018) could be potentially kept in Fedora, but never updating the packages in the future would bring security issues. Hence the Fedora community decided to [remove the MongoDB server][5] entirely, starting Fedora 30.
### What options are left to developers?
Well, alternatives exist, for example PostgreSQL also supports JSON in the recent versions, and it can be used in cases when MongoDB cannot be used any more. With JSONB type, indexing works very well in PostgreSQL with performance comparable with MongoDB, and even without any compromises from ACID.
The technical reasons that a developer may have chosen MongoDB did not change with the license, so many still want to use it. What is important to realize is that the SSPL license was only changed to the MongoDB server. There are other projects that MongoDB upstream develops, like MongoDB tools, C and C++ client libraries and connectors for various dynamic languages, that are used on the client side (in applications that want to communicate with the server over the network). Since the license is kept free (Apache License mostly) for those packages, they are staying in Fedora repositories, so users can use them for the application development.
The only change is really the server package itself, which was removed entirely from Fedora repos. Lets see what a Fedora user can do to get the non-free packages.
### How to install MongoDB server from the upstream
When Fedora users want to install a MongoDB server, they need to approach MongoDB upstream directly. However, the upstream does not ship RPM packages for Fedora itself. Instead, the MongoDB server is either available as the source tarball, that users need to compile themselves (which requires some developer knowledge), or Fedora user can use some compatible packages. From the compatible options, the best choice is the RHEL-8 RPMs at this point. The following steps describe, how to install them and how to start the daemon.
#### 1\. Create a repository with upstream RPMs (RHEL-8 builds)
```
```
$ sudo cat > /etc/yum.repos.d/mongodb.repo <<EOF
[mongodb-upstream]
name=MongoDB Upstream Repository
baseurl=<https://repo.mongodb.org/yum/redhat/8Server/mongodb-org/4.2/x86\_64/>
gpgcheck=1
enabled=1
gpgkey=<https://www.mongodb.org/static/pgp/server-4.2.asc>
EOF
```
```
#### 2\. Install the meta-package, that pulls the server and tools packages
```
```
$ sudo dnf install mongodb-org
&amp;lt;snipped&gt;
Installed:
  mongodb-org-4.2.3-1.el8.x86_64           mongodb-org-mongos-4.2.3-1.el8.x86_64  
  mongodb-org-server-4.2.3-1.el8.x86_64    mongodb-org-shell-4.2.3-1.el8.x86_64
  mongodb-org-tools-4.2.3-1.el8.x86_64          
Complete!
```
```
#### 3\. Start the MongoDB daemon
```
```
$ sudo systemctl status mongod
● mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-02-08 12:33:45 EST; 2s ago
     Docs: <https://docs.mongodb.org/manual>
  Process: 15768 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 15769 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 15770 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 15771 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 15773 (mongod)
   Memory: 70.4M
      CPU: 611ms
   CGroup: /system.slice/mongod.service
           └─15773 /usr/bin/mongod -f /etc/mongod.conf
```
```
#### 4\. Verify that the server runs by connecting to it from the mongo shell
```
```
$ mongo
MongoDB shell version v4.2.3
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&amp;amp;gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("20b6e61f-c7cc-4e9b-a25e-5e306d60482f") }
MongoDB server version: 4.2.3
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    <http://docs.mongodb.org/>
\---
&gt; _
```
```
Thats all. As you see, the RHEL-8 packages are pretty compatible and it should stay that way for as long as the Fedora packages remain compatible with whats in RHEL-8. Just be careful that you comply with the SSPLv1 license in your use.
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/how-to-get-mongodb-server-on-fedora/
作者:[Honza Horak][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/hhorak/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2020/02/mongodb-816x348.png
[2]: https://en.wikipedia.org/wiki/NoSQL
[3]: https://www.mongodb.com/licensing/server-side-public-license/faq
[4]: https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/thread/IQIOBOGWJ247JGKX2WD6N27TZNZZNM6C/
[5]: https://fedoraproject.org/wiki/Changes/MongoDB_Removal

View File

@ -0,0 +1,69 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (10 Grafana features you need to know for effective monitoring)
[#]: via: (https://opensource.com/article/20/2/grafana-features)
[#]: author: (Daniel Lee https://opensource.com/users/daniellee)
10 Grafana features you need to know for effective monitoring
======
Learn how to make the most of this open source dashboard tool.
![metrics and data shown on a computer screen][1]
The [Grafana][2] project [started in 2013][3] when [Torkel Ödegaard][4] decided to fork Kibana and turn it into a time-series and graph-focused dashboarding tool. His guiding vision: to make everything look more clean and elegant, with fewer things distracting you from the data.
More than 500,000 active installations later, Grafana dashboards are ubiquitous and instantly recognizable. (Even during a [SpaceX launch][5]!)
Whether you're a recent adopter or an experienced power user, you may not be familiar with all of the features that [Grafana Labs][6]—the company formed to accelerate the adoption of the Grafana project and to build a sustainable business around it—and the Grafana community at large have developed over the past 6+ years.
Here's a look at some of the most impactful:
1. **Dashboard templating**: One of the key features in Grafana, templating allows you to create dashboards that can be reused for lots of different use cases. Values aren't hard-coded with these templates, so for instance, if you have a production server and a test server, you can use the same dashboard for both. Templating allows you to drill down into your data, say, from all data to North America data, down to Texas data, and beyond. You can also share these dashboards across teams within your organization—or if you create a great dashboard template for a popular data source, you can contribute it to the whole community to customize and use.
2. **Provisioning**: While it's easy to click, drag, and drop to create a single dashboard, power users in need of many dashboards will want to automate the setup with a script. You can script anything in Grafana. For example, if you're spinning up a new Kubernetes cluster, you can also spin up a Grafana automatically with a script that would have the right server, IP address, and data sources preset and locked. It's also a way of getting control over a lot of dashboards.
3. **Annotations:** This feature, which shows up as a graph marker in Grafana, is useful for correlating data in case something goes wrong. You can create the annotations manually—just control-click on a graph and input some text—or you can fetch data from any data source. (Check out how Wikimedia uses annotations on its [public Grafana dashboard][7], and here is [another example][8] from the OpenHAB community.) A good example is if you automatically create annotations around releases, and a few hours after a new release, you start seeing a lot of errors, then you can go back to your annotation and correlate whether the errors started at the same time as the release. This automation can be achieved using the Grafana HTTP API (see examples [here][9] and [here][10]). Many of Grafana's largest customers use the HTTP API for a variety of tasks, particularly setting up databases and adding users. It's an alternative to provisioning for automation, and you can do more with it. For instance, the team at DigitalOcean used the API to integrate a [snapshot feature for reviewing dashboards][11].
4. **Kiosk mode and playlists:** If you want to display your Grafana dashboards on a TV monitor, you can use the playlist feature to pick the dashboards that you or your team need to look at through the course of the day and have them cycle through on the screen. The [kiosk mode][12] hides all the user interface elements that you don't need in view-only mode. Helpful hint: The [Grafana Kiosk][13] utility handles logging in, switching to kiosk mode, and opening a playlist—eliminating the pain of logging in on a TV that has no keyboard.
5. **Custom plugins:** Plugins allow you to extend Grafana with integrations with other tools, different visualizations, and more. Some of the most popular in the community are [Worldmap Panel][14] (for visualizing data on top of a map), [Zabbix][15] (an integration with Zabbix metrics), and [Influx Admin Panel][16] (which offers other functionality like creating databases or adding users). But they're only the tip of the iceberg. Just by writing a bit of code, you can get anything that produces a timestamp and a value visualized in Grafana. Plus, Grafana Enterprise customers have access to more plugins for integrations with Splunk, Datadog, New Relic, and others.
6. **Alerting and alert hooks:** If you're using Grafana alerting, you can have alerts sent through a number of different notifiers, including PagerDuty, SMS, email, or Slack. Alert hooks allow you to create different notifiers with a bit of code if you prefer some other channels of communication.
7. **Permissions and teams**: When organizations have one Grafana and multiple teams, they often want the ability to both keep things separate and share dashboards. Early on, the default in Grafana was that everybody could see everyone else's dashboards, and that was it. Later, Grafana introduced multi-tenant mode, in which you can switch organizations but can't share dashboards. Some people were using huge hacks to enable both, so Grafana decided to officially create an easier way to do this. Now you can create a team of users and then set permissions on folders, dashboards, and down to the data source level if you're using Grafana Enterprise.
8. **SQL data sources:** Grafana's native support for SQL helps you turn anything—not just metrics—in an SQL database into metric data that you can graph. Power users are using SQL data sources to do a whole bunch of interesting things, like creating business dashboards that "make sense for your boss's boss," as the team at Percona put it. Check out their [presentation at GrafanaCon][17].
9. **Monitoring your monitoring**: If you're serious about monitoring and you want to monitor your own monitoring, Grafana has its own Prometheus HTTP endpoint that Prometheus can scrape. It's quite simple to get dashboards and statics. There's also an enterprise version in development that will offer Google Analytics-style easy access to data, such as how much CPU your Grafana is using or how long alerting is taking.
10. **Authentication**: Grafana supports different authentication styles, such as LDAP and OAuth, and allows you to map users to organizations. In Grafana Enterprise, you can also map users to teams: If your company has its own authentication system, Grafana allows you to map the teams in your internal systems to teams in Grafana. That way, you can automatically give people access to the dashboards designated for their teams.
Want to take a deeper dive? Join the [Grafana community][18], check out the [how-to section][19], and share what you think.
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/2/grafana-features
作者:[Daniel Lee][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/daniellee
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/metrics_data_dashboard_system_computer_analytics.png?itok=oxAeIEI- (metrics and data shown on a computer screen)
[2]: https://github.com/grafana/grafana
[3]: https://grafana.com/blog/2019/09/03/the-mostly-complete-history-of-grafana-ux/
[4]: https://grafana.com/author/torkel
[5]: https://youtu.be/ANv5UfZsvZQ?t=29
[6]: https://grafana.com/
[7]: https://grafana.wikimedia.org/d/000000143/navigation-timing?orgId=1&refresh=5m
[8]: https://community.openhab.org/t/howto-create-annotations-in-grafana-via-rules/48929
[9]: https://docs.microsoft.com/en-us/azure/devops/service-hooks/services/grafana?view=azure-devops
[10]: https://medium.com/contentsquare-engineering-blog/from-events-to-grafana-annotation-f35aafe8bd3d
[11]: https://youtu.be/kV3Ua6guynI
[12]: https://play.grafana.org/d/vmie2cmWz/bar-gauge?orgId=1&refresh=10s&kiosk
[13]: https://github.com/grafana/grafana-kiosk
[14]: https://grafana.com/grafana/plugins/grafana-worldmap-panel
[15]: https://grafana.com/grafana/plugins/alexanderzobnin-zabbix-app
[16]: https://grafana.com/grafana/plugins/natel-influx-admin-panel
[17]: https://www.youtube.com/watch?v=-xlchgoqkqY
[18]: https://community.grafana.com/
[19]: https://community.grafana.com/c/howto/6

View File

@ -0,0 +1,124 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Getting started with OpenTaxSolver)
[#]: via: (https://opensource.com/article/20/2/do-your-taxes-open-source-way)
[#]: author: (Jessica Cherry https://opensource.com/users/jrepka)
Getting started with OpenTaxSolver
======
If you're a United States citizen, learn how to do your own state tax
returns with OpenTaxSolver.
![A document flying away][1]
OpenTaxSolver is an open source application for US taxpayers to calculate their state and federal income tax returns. Before I get into the software, I want to share some of the information I learned when researching this article. I spent about five hours a day for a week looking into open source options for doing your taxes, and I learned about a lot more than just tax software.
The Internal Revenue Service's (IRS's) [Use of federal tax information (FTI) in open source software][2] webpage offers a large amount of information, and it's especially relevant to anyone who may want to start their own open source tax software project. To hit the finer points:
* Federal tax information (FTI) can be used in any open source software
* Software creators mush follow all security laws and compliance requirements
* Any such software must be supported either by a vendor or a community
* The software must be approved by the federal government
One other reason researching this topic was rather difficult (but ultimately rewarding) is that, by federal law, the major tax software companies are required to provide their services for free to any person earning under $69,000 per year. About 70% of Americans fit into this category, and if you are one of them, you can check the IRS's [Free File][3] webpage for links to free filing software from well-known companies. (The IRS reminds you that "you are responsible for determining your eligibility for one of the Free File Online offers.")
Please share this information broadly—knowledge is power, and not everyone can (or wants to) use open source software to do their taxes for reasons including:
* Lack of computer or software access
* Low computer competence
* Age or disability
* Discomfort with doing taxes
If you don't fall into any of these categories and want to do your taxes the open source way, continue reading to learn about OpenTaxSolver.
### About OpenTaxSolver
[OpenTaxSolver][4] is meant to be used with the IRS's [tax booklet][5], which is published yearly. This booklet provides detailed information for doing your taxes, such as rules around tax credits and write-offs.
OpenTaxSolver cuts down on tax calculations when you fill out your tax forms and simplifies the hardest part of doing your taxes: the math. You still have to fill in your data and turn the paperwork in, but using the software means you can do it in about half of the time. Since OpenTaxSolver is running in beta, you have to double-check all of your number entries and information against the official IRS tax booklet after you use the software.
### Download and install OpenTaxSolver
First, [download the software][6]. There are versions for Linux, Windows, and macOS. If you're using one of the latter two, refer to the download page for installation instructions. I'm using my go-to operating system, Ubuntu Linux, which I installed by:
1. Downloading the TGZ file from the website
2. Extracting it to my desktop (but you can choose any location on your computer)
3. Clicking on **Run_taxsolve_GUI**
![OpenTaxSolver installation][7]
### Enter your tax data
I'll walk through this example using random numbers (for obvious reasons). This walkthrough will explain how do federal taxes with OpenTaxSolver, but if you have to pay state taxes, do that before you begin your federal return.
To do the common Federal 1040 tax return, select **US 1040**, click **Start New Return**, and start answering some basic questions about your tax situation. For this example, I selected the following itemized deductions: mortgage interest, donations, and some random itemizable write-offs. If you don't know what these are or what may apply to you, head over to the IRS website or google "itemizable write-offs."
Next, begin entering the data from your tax documents.
![OpenTaxSolver][8]
![OpenTaxSolver][9]
After you finish entering all your data and filling out the entire form, save it by clicking the **Save** button, and then click **Compute Tax** on the bottom of the screen.
![OpenTaxSolver][10]
### Check your return and file your taxes
If you made any mistakes (such as mistyping something or putting an incorrect value in any field), it will show an error on the bottom of the preview after the computation finishes.
![OpenTaxSolver preview][11]
The preview also reports your marginal tax rate and what percentage of your income you are paying in taxes.
![OpenTaxSolver preview][12]
After you review the information in the preview, make any corrections, and finish your return, click **Fill-out PDF Forms**, and it will provide printable tax forms with all of your information filled in.
![Tax return][13]
If you entered your name, address, and social security number when entering your data, all of that information will also appear in the right places on the form. Double-check everything, print it, and mail your tax return to the IRS.
### Final notes
OpenTaxSolver gives you the opportunity to file your own federal and state taxes. As always, with any federal related tax information (or federal anything, for that matter), always double-check and use due diligence. I found this software very useful for expanding my knowledge about my taxes.
The OpenTaxSolver website includes a request for contributors, so if you want to start contributing to an open source project that helps everyone, this is one I'd definitely suggest.
And if you're someone who likes to wait until the last minute to pay your taxes, this [clock][14] tells you how much time you have until your taxes are due.
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/2/do-your-taxes-open-source-way
作者:[Jessica Cherry][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/jrepka
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/osdc_odf_1109ay.png?itok=4CqrPAjt (A document flying away)
[2]: https://www.irs.gov/privacy-disclosure/use-of-federal-tax-information-fti-in-open-source-software
[3]: https://apps.irs.gov/app/freeFile/
[4]: http://opentaxsolver.sourceforge.net/index.html
[5]: https://www.irs.gov/pub/irs-pdf/i1040gi.pdf
[6]: http://opentaxsolver.sourceforge.net/download2019.html?button=+Download+OTS+
[7]: https://opensource.com/sites/default/files/uploads/tax2.png (OpenTaxSolver installation)
[8]: https://opensource.com/sites/default/files/uploads/tax1.png (OpenTaxSolver)
[9]: https://opensource.com/sites/default/files/uploads/tax7.png (OpenTaxSolver)
[10]: https://opensource.com/sites/default/files/uploads/tax6.png (OpenTaxSolver)
[11]: https://opensource.com/sites/default/files/uploads/tax3.png (OpenTaxSolver preview)
[12]: https://opensource.com/sites/default/files/uploads/tax4.png (OpenTaxSolver preview)
[13]: https://opensource.com/sites/default/files/uploads/tax5.png (Tax return)
[14]: https://countdown.onlineclock.net/countdowns/taxes/

View File

@ -0,0 +1,229 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How to embed Twine stories in WordPress)
[#]: via: (https://opensource.com/article/20/2/embed-twine-wordpress)
[#]: author: (Roman Lukš https://opensource.com/users/romanluks)
How to embed Twine stories in WordPress
======
Share your Twine 2 interactive stories on your WordPress site with the
Embed Twine plugin.
![Person drinking a hat drink at the computer][1]
From the very beginning, I wanted the "About me" page on my WordPress website [romanluks.eu][2] to be interactive.
At first, I experimented with Dart, a programming language developed by Google that transcompiles into JavaScript. I killed the project when I realized I was making a game instead of an "About me" page.
A bit later, I discovered [Twine][3], an open source tool for creating interactive stories. It reminded me of the gamebooks I loved as a kid. It's so easy to create interconnected pieces of text in Twine, and it's ideal for the interview-like format I was aiming for. Because Twine publishes directly to HTML, you can do a lot of interesting things with it—including creating [interactive fiction][4] and [adventure games][5] or publishing stories on a blog or website.
### Early struggles
I created my "About me" page in Twine and tried to paste it into my WordPress page.
"No, can do," said WordPress and Twine.
You see, a Twine story exported from Twine is just a webpage (i.e., a file in HTML format). However, it not only includes HTML but JavaScript code, as well. And somehow it doesn't work when you simply try to copy-paste the contents. I tried copy-pasting just the body of the Twine story page without success.
I thought, "I guess I need to add that JavaScript code separately," and I tried custom fields.
Nope.
I took a break from my investigation. I just uploaded my "About me" Twine story via FTP and linked to it from my website's menu. People could visit it and interact with the story, however, there was no menu, and it didn't feel like a part of my website. I had made a trap for myself. It made me realize I really _really_ wanted my "About me" included directly on my website.
### DIY embed
I took a stab at the problem and came up with [this solution][6].
It worked. It wasn't perfect, but it worked.
But it wasn't _perfect_. Is there a better way? There is bound to be a better way…
It cost me a couple of pulled hairs, but I managed to get a [responsive iframe and autoscroll][7].
It was way better. I was proud of myself and shared it on [Reddit][8].
### The road to Embed Twine
Suddenly, an idea! What if, instead of following my tutorial, people could use a WordPress plugin?
They would only have to give the plugin a Twine story, and it would take care of the rest. Hassle-free. No need to copy-paste any JavaScript code.
Wouldn't that be glorious?!?
I had no idea how WordPress plugins work. I only knew they are written in PHP. A while back, I had part-time work as a PHP developer, and I remembered the basics.
### Containers and WordPress
I mentioned my idea to a friend, and he suggested I could use containers as my WordPress development environment.
In the past, I'd always used [XAMPP][9], but I wanted to try containers for a while.
No problem, I thought! I'll learn containers while I learn how to make a WordPress plugin and revive my PHP skills. That should be sufficiently stimulating.
And it was.
I can't recall how many times I stopped, removed, and rebuilt my containers. I had to use the command line. And the file permissions are painful.
Oh boy! It was like playing a game that you enjoy playing even though it makes you fairly angry. It was challenging but rewarding.
I found out that it's very easy to create a simple WordPress plugin:
* Write the source code
* Save it in the WP plugin directory
* Test it
* Repeat
Containers make it easy to use a specific environment and are easy to clean up when you screw up and need to start over.
Using Git saved me from accidentally wiping out my entire codebase. I used [Sourcetree][10] as my Git user interface. Initially, I wrote my code in [Notepad++][11], but when I divided my code into multiple files, I switched to [Atom][12]. It's such a cool editor for geeks. Using it feels like the code writes itself.
### Intermission
So what do we know so far?
* I wanted an interactive "About me" page
* I created an "About me" story in Twine
* Twine exports webpages (as HTML files with JavaScript included)
* WP plugins are easy to make
* Containers are awesome
### Embed Twine is born
I wanted an easy way to embed Twine stories into WordPress. So, I used the power of software development, fooled around with containers, wrote a bit of PHP code, and published the result as a WordPress plugin called [Embed Twine][13].
### Install the plugin
1. Upload the plugin [files][14] to the **/wp-content/plugins/plugin-name** directory, or install the plugin through the WordPress Plugins screen.
2. Activate the plugin through the Plugins screen in WordPress.
### Use the plugin
After you've installed the Embed Twine plugin and created a Twine 2 story, embed it in your WordPress site:
1. Export your Twine 2 story into an HTML file.
2. Upload it via the plugin's interface.
3. Insert the shortcode into the page or post.
4. Enjoy your embedded story.
The plugin also provides autoscroll functionality to make it easy for users to navigate through your stories.
### Configure the plugin
The plugin is configurable via shortcode parameters. To use the shortcode, simply put **[embed_twine]** into your post.
You can use additional parameters in the format **[embed_twine story="Story" aheight=112 autoscroll=true ascroll=100]** as follows:
* **story:** Specify the story name (the filename without an extension).
* If the story parameter is omitted, it defaults to "Story." This means there is no need to use this parameter if your Twine filename is Story.html.
* If you upload a Twine story called MyFooBar.html, use the shortcode: **[embed_twine story="MyFooBar"]**.
* **aheight:** Use this parameter to adjust the iframe's height. You might need to tweak **aheight** to get rid of an iframe scrollbar. The default value is 112; this value is added to the iframe height and used to set the iframe's **style.height**.
* **autoscroll:** Autoscroll is enabled by default. You can turn it off with shortcode parameter **[embed_twine autoscroll=false]**.
* **ascroll:** Use this to adjust the default position for autoscroll. The default value is 100; this value is subtracted from the iframe's top position and fed into JavaScript method **window.scrollTo()**.
### Known bugs
Currently, Twine passages that include images might report their height incorrectly, and the scrollbar might show up for these passages. Tweak the shortcode parameter **aheight** to get rid of them.
### The script
```
1       &lt;?php
2      
3       /**
4       * Plugin Name: Embed Twine
5       * Description: Insert Twine stories into WordPress
6       * Version: 0.0.6
7       * Author: Roman Luks
8       * Author URI: <https://romanluks.eu/>
9       * License: GPLv2 or later
10      */
11     
12      require_once('include/embed-twine-load-file.php');
13      require_once('include/embed-twine-parent-page.php');
14      require_once('include/embed-twine-process-story.php');
15     
16      // Add plugin to WP menu
17      function embed_twine_customplugin_menu() {
18     
19          add_menu_page("Embed Twine", "Embed Twine","manage_options", __FILE__, "embed_twine_uploadfile");
20      }
21     
22      add_action("admin_menu", "embed_twine_customplugin_menu");
23     
24      function embed_twine_uploadfile(){
25          include "include/embed-twine-upload-file.php";
26      }
27     
28      // Add shortcode
29      function embed_twine_shortcodes_init()
30      {
31          function embed_twine_shortcode($atts = [], $content = null)
32          {
33              // Attributes
34              $atts = shortcode_atts(
35                  [array][15](
36                      'story' =&gt; 'Story',
37                      'aheight' =&gt; 112,       //adjust for style.height (30) and margins of tw-story (2x41)
38                      'autoscroll' =&gt; true,   //autoscroll enabled by default
39                      'ascroll' =&gt; 100,       //adjust for autoscroll
40                  ),
41                  $atts,
42                  'embed_twine'
43              );
44     
45              $content = embed_twine_buildParentPage($atts['story'], $atts['aheight'], $atts['autoscroll'], $atts['ascroll']);
46     
47              return $content;
48          }
49          add_shortcode('embed_twine', 'embed_twine_shortcode');
50      }
51      add_action('init', 'embed_twine_shortcodes_init');
```
* * *
_This article is adapted from [Roman Luks' blog][16] and [Embed Twine][13] page on WordPress plugins._
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/2/embed-twine-wordpress
作者:[Roman Lukš][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/romanluks
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/coffee_tea_laptop_computer_work_desk.png?itok=D5yMx_Dr (Person drinking a hat drink at the computer)
[2]: https://romanluks.eu/
[3]: https://twinery.org/
[4]: https://opensource.com/article/18/7/twine-vs-renpy-interactive-fiction
[5]: https://opensource.com/article/18/2/twine-gaming
[6]: https://romanluks.eu/blog/how-to-embed-twine-on-your-wordpress-website/
[7]: https://romanluks.eu/blog/how-to-embed-twine-on-your-wordpress-website-with-responsive-iframe-and-autoscroll/
[8]: https://www.reddit.com/r/twinegames/comments/dtln4z/how_to_embed_twine_on_your_wordpress_website_with/
[9]: https://en.wikipedia.org/wiki/XAMPP
[10]: https://www.sourcetreeapp.com/
[11]: https://notepad-plus-plus.org/
[12]: https://atom.io/
[13]: https://wordpress.org/plugins/embed-twine/
[14]: https://plugins.trac.wordpress.org/browser/embed-twine/
[15]: http://www.php.net/array
[16]: https://romanluks.eu/blog/embed-twine-wordpress-plugin/

View File

@ -0,0 +1,168 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Basic Vim Commands You Need to Know to Work in Vim Editor)
[#]: via: (https://www.2daygeek.com/basic-vim-commands-cheat-sheet-quick-start-guide/)
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
Basic Vim Commands You Need to Know to Work in Vim Editor
======
If you are a system administrator or developer, you may need to edit a file while working on the Linux terminal.
There are several file editors on Linux, and how to choose the right one for your needs.
I would like to recommend Vim editor.
### You may ask, why?
You may spend more time in the editor to modify an existing file than writing new text.
In this case, Vim Keyboard shortcuts allow you to efficiently meet your needs.
The following articles may help you learn about file and directory manipulation.
* [**L**][1]**[inux Basic Linux and Unix Commands for File and Directory Manipulation][1]**
* **[10 Methods to View Different File Formats in Linux][2]**
### Whats vim?
Vim is one of the most popular and powerful text editor that widely used by Linux administrators and developers.
Its highly configurable text editor which enables efficient text editing. This is an updated version of the vi editor, which is already installed on most Unix systems.
Vim is often called a “programmers editor,” but it is not limited to it, and is suitable for all types of text editing.
It comes with many features like multi level undo, multi windows and buffers, syntax highlighting, command line editing, file name completion, visual selection.
You can easily obtain online help with the “:help” command.
### Understanding Vim Modes
Vim has two modes, the details are below:
**Command Mode:** When you launch Vim Editor, you will default to Command Mode. You can move around the file, and modify some parts of the text, cut, copy, and paste parts of the text and issue commands to do more (press ESC for Command Mode).
**Insert Mode:** The nsert mode is used to type text in a given given document (Press i for insert mode).
### How do I know which Vim mode I am on?
If you are in insert mode, you will see **“INSERT”** at the bottom of the editor. If nothing is shown, or if it shows the file name at the bottom of the editor, you are in “Command Mode”.
### Cursor Movement in Normal Mode
These Vim keyboard shortcuts allow you to move your cursor around a file in different ways.
* `G` Go to the last line of the file
* `gg` Go to the first line of the file
* `$` Go to the end of line.
* `0` (zero) Go to the beginning of line.
* `w` Jump by start of words
* `W` Jump by words (spaces separate words)
* `b` Jump backward by words
* `B` Jump backward by words (spaces separate words)
* `PgDn` Key Move down page-wise
* `PgUp` Key Move up page-wise
* `Ctrl+d` Move half-page down
* `Ctrl+u` Move half-page up
### Insert mode insert a text
These vim keyboard shortcuts allows you to insert a cursor in varies position based on your needs.
* `i` Insert before the cursor
* `a` Insert after the cursor
* `I` Insert at the beginning of the line, this is useful when you are in the middle of the line.
* `A` Insert at the end of the line
* `o` Open a new line below the current line
* `O` Append a new line above the current line
* `ea` Insert at the end of the word
### Copy, Paste and Delete a Line
* `yy` yank (copy) a line
* `p/P` Paste after cursor/ put before cursor
* `dd` delete a line
* `dw` delete the word
### Search and Replace Pattern in Vim
* `/pattern` To search a given pattern
* `?pattern` To search backward a given pattern
* `n` To repeat search
* `N` To repeat backward search
* `:%s/old-pattern/new-pattern/g` Replace all old formats with the new format across the file.
* `:s/old-pattern/new-pattern/g` Replace all old formats with the new format in the current line.
* `:%s/old-pattern/new-pattern/gc` Replace all old formats with the new format across the file with confirmations.
### How do I go to a particular line in Vim Editor
You can do this in two ways, depending on your need. If you dont know the line number I suggest you go with the first method.
Add line number by opening a file and running the command below.
```
:set number
```
Once you have set the line number, press **“: n”** to go to the corresponding line number. For example, if you want to go to **line 15**, enter.
```
:15
```
If you already know the line number, use the following method to go directly to the corresponding line. For example, if you want to move to line 20, enter the command below.
```
$ vim +20 [File_Name]
```
### Undo/Redo/Repeat Operation
* `u` Undo the changes
* `Ctrl+r` Redo the changes
* `.` Repeat last command
### Saving and Exiting Vim
* `:w` Save the changes but dont exit
* `:wq` Write and quit
* `:q!` Force quit
--------------------------------------------------------------------------------
via: https://www.2daygeek.com/basic-vim-commands-cheat-sheet-quick-start-guide/
作者:[Magesh Maruthamuthu][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.2daygeek.com/author/magesh/
[b]: https://github.com/lujun9972
[1]: https://www.2daygeek.com/linux-basic-commands-file-directory-manipulation/
[2]: https://www.2daygeek.com/unix-linux-command-to-view-file/

View File

@ -0,0 +1,182 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Here Are The Most Beautiful Linux Distributions in 2020)
[#]: via: (https://itsfoss.com/beautiful-linux-distributions/)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
Here Are The Most Beautiful Linux Distributions in 2020
======
Its a no-brainer that theres a Linux distribution for every user no matter what they prefer or what they want to do.
Starting out with Linux? You can go with the [Linux distributions for beginners][1]. Switching from Windows? You have [Windows-like Linux distributions][2]. Have an old computer? You can [use lightweight Linux distros][3].
In this list, Im going to focus only on the most beautiful Linux distros out there.
### Top 7 Most Beautiful Linux Distributions
![][4]
Wait! Is there a thing called a beautiful Linux distribution? Is it not redundant considering the fact that you can customize the looks of any distribution and make it look better with [themes][5] and [icons][6]?
You are right about that. But here, I am talking about the distributions that look great without any tweaks and customization effort from the users end. These distros provide a seamless, pleasant desktop experience right out of the box.
**Note:** _The list is in no particular order of ranking._
#### 1\. elementary OS
![][7]
elementary OS is one of the most beautiful Linux distros out there. It leans on a macOS-ish look while providing a great user experience for Linux users. If youre already comfortable macOS you will have no problem using the elementary OS.
Also, elementary OS is based on Ubuntu so you can easily find plenty of applications to get things done.
Not just limited to the look and feel but the elementary OS is always hard at work to introduce meaningful changes. So, you can expect the user experience to improve with every update you get.
[elementary OS][8]
#### 2\. Deepin
![][9]
Deepin is yet another beautiful Linux distro originally based on Debians stable branch. The animations (look and feel) could be too overwhelming for some but it looks pretty.
It features its own Deepin Desktop Environment that involves a mix of essential features for the best user experience possible. It may not exactly resemble the UI of any other distribution but its quite easy to get used to.
My personal attention would go to the control center and the color scheme featured in Deepin OS. You can give it a try its worth taking a look.
[Deepin][10]
#### 3\. Pop!_OS
![][11]
Pop!_OS manages to offer a great UI on top of Ubuntu while offering a pure [GNOME][12] experience.
It also happens to be my personal favorite which I utilize as my primary desktop OS. Pop!_OS isnt flashy nor involves any fancy animations. However, theyve managed to get things right by having a perfect combo of icon/themes while polishing the user experience from a technical point of view.
I dont want to initiate a [Ubuntu vs Pop OS][13] debate but if youre used to Ubuntu, Pop!_OS can be a great alternative for potentially better user experience.
[Pop!_OS][14]
#### 4\. Manjaro Linux
![][15]
Manjaro Linux is an [Arch][16]-based Linux distribution. While [installing Arch Linux][17] is a slightly complicated job, Manjaro provides an easier and smoother Arch experience.
It offers a variety of [desktop environment editions][18] to choose from while downloading. No matter what you choose, you still get enough options to customize the look and feel or the layout.
To me, it looks quite fantastic for an Arch-based distribution that works out of the box you can give it a try!
[Manjaro Linux][19]
#### 5\. KDE Neon
![][20]
[KDE Neon][21] is for the users who want a simplified approach to the design language but still get a great user experience.
It is a lightweight Linux distro which is based on Ubuntu. As the name suggests, it features the KDE Plasma desktop and looks absolutely beautiful.
KDE Neon gives you the latest and greatest KDE Plasma desktop and KDE applications. Unlike [Kubuntu][22] or other KDE-based distributions, you dont have to wait for months to get the new [KDE software][23].
You get a lot of customization options built-in with the KDE desktop so feel free to try it out!
[KDE Neon][24]
#### 6\. Zorin OS
![][25]
Without a doubt, Zorin OS is an impressive Linux distro that manages to provide a good user experience even with its lite edition.
You can try either the full version or the lite edition (with [Xfce desktop][26]). The UI is tailored for Windows and macOS users to get used to. While based on Ubuntu, it provides a great user experience with what it has to offer.
If you start like its user interface you can also try [Zorin Grid][27] to manage multiple computers running Zorin OS at your workplace/home. With the ultimate edition, you can also control the layout of your desktop (as shown in the image above).
[Zorin OS][28]
#### 7\. Nitrux OS
![][29]
[Nitrux OS][30] is a unique take on a Linux distribution which is somewhat based on Ubuntu but not completely.
It focuses on providing a good user experience to the users who are looking for a unique design language with a fresh take on a Linux distro. It uses Nomad desktop which is based on KDE.
Nitrux encourages to use of [AppImage][31] for applications. But you can also use Arch Linuxs pacman package manager in Nitrux which is based on Ubuntu. Awesome, isnt it?
Even if its not the perfect OS to have installed (yet), it sure looks pretty and good enough for most of the basic tasks. You can also know more about it when you read our [interview with Nitruxs founder][32].
Heres a slightly old video of Nitrux but it still looks good:
[Nitrux OS][33]
#### Bonus: eXtern OS (in stagnated development)
![][34]
If you want to try an experimental Linux distro, extern OS is going to be beautiful.
It isnt actively maintained and should not be used for production systems. Yet, it provides unique user experience (thought not polished enough).
Just for the sake of trying a good-looking Linux distro, you can give it a try to experience it.
[eXtern OS][35]
**Wrapping Up**
Now, as the saying goes, beauty lies in the eyes of the beholder. So this list of beautiful Linux distributions is from my point of view. Feel free to disagree (politely of course) and mention your favorites.
--------------------------------------------------------------------------------
via: https://itsfoss.com/beautiful-linux-distributions/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/best-linux-beginners/
[2]: https://itsfoss.com/windows-like-linux-distributions/
[3]: https://itsfoss.com/lightweight-linux-beginners/
[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/02/beautiful-linux-distros.png?ssl=1
[5]: https://itsfoss.com/best-gtk-themes/
[6]: https://itsfoss.com/best-icon-themes-ubuntu-16-04/
[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/01/elementary-os-hera.png?ssl=1
[8]: https://elementary.io/
[9]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/02/deepin-screenshot.jpg?ssl=1
[10]: https://www.deepin.org/en/
[11]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/02/pop-os-stock.jpg?ssl=1
[12]: https://www.gnome.org/
[13]: https://itsfoss.com/pop-os-vs-ubuntu/
[14]: https://system76.com/pop
[15]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/02/manjaro_kde.jpg?ssl=1
[16]: https://en.wikipedia.org/wiki/Arch
[17]: https://itsfoss.com/install-arch-linux/
[18]: https://itsfoss.com/best-linux-desktop-environments/
[19]: https://manjaro.org/download/
[20]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/02/kde-neon-screenshot.jpg?ssl=1
[21]: https://itsfoss.com/kde-neon-unveiled/
[22]: https://kubuntu.org/
[23]: https://kde.org/
[24]: https://neon.kde.org/
[25]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2019/11/zorin-lite-ultimate-appearance.jpg?ssl=1
[26]: https://www.xfce.org/
[27]: https://itsfoss.com/zorin-grid/
[28]: https://zorinos.com/
[29]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/02/nitrux-screenshot.jpg?ssl=1
[30]: https://itsfoss.com/nitrux-linux-overview/
[31]: https://itsfoss.com/use-appimage-linux/
[32]: https://itsfoss.com/nitrux-linux/
[33]: https://nxos.org/
[34]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/02/extern-os.png?ssl=1
[35]: https://externos.io/

View File

@ -0,0 +1,135 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (How to Install Latest Git Version on Ubuntu)
[#]: via: (https://itsfoss.com/install-git-ubuntu/)
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
How to Install Latest Git Version on Ubuntu
======
Installing Git on Ubuntu is very easy. It is available in the [main repository of Ubuntu][1] and you can install it [using the apt command][2] like this:
```
sudo apt install git
```
Easy? Isnt it?
There is only a slight little problem (which might not be a problem at all) and that is the version of [Git][3] it installs.
On an LTS system, the software stability is of upmost importance this is why Ubuntu 18.04 and other distributions often provide older but stable version of a software that is well tested with the distribution release.
This is why when you check the Git version, youll see that it installs a version which is older than the [current Git version available on Git projects website][4]:
```
[email protected]:~$ git --version
git version 2.17.1
```
At the time of writing this tutorial, the version available on its website is 2.25. So how do you install the latest Git on Ubuntu then?
### Install latest Git on Ubuntu-based Linux distributions
![][5]
One way would be to [install from source code][6]. That cool, old school method is not everyones cup of tea. Thankfully, there is a [PPA available from Ubuntu Git Maintainers team][7] that you can use to easily install the latest stable Git version.
```
sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git
```
Even if you had installed Git using apt previously, it will get updated to the latest stable version.
```
[email protected]:~$ git --version
git version 2.25.0
```
The beauty of [using PPA][8] is that if there is a new stable version of Git released, youll get it with the system updates. [Just update Ubuntu][9] to get the latest Git stable version.
Trivia
Did you know that Git version control system was created by none other than [Linux creator Linus Torvalds][10]?
### Configure Git [Recommended for developers]
If you have installed Git for development purposes, youll soon start cloning repos, make your changes and commit your change.
If you try to commit your code, you may see a Please tell me who you are error like this:
```
[email protected]:~/compress-pdf$ git commit -m "update readme"
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got '[email protected](none)')
```
This is because you havent configured Git with your personal information which is mandatory.
As the error already hints, you can set up global Git configuration like this:
```
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
```
You can check the Git configuration with this command:
```
git config --list
```
It should show an output like this:
```
[email protected]
user.name=abhishek
```
This configuration is stored in ~/.gitconfig file. You may also change it manually to change the configuration.
* * *
**In the end…**
I hope this quick little tutorial helped you to install Git on Ubuntu. With the PPA, you easily get the latest Git version.
If you have any questions or suggestions, please feel free to ask in the comment section. A quick thank you is also welcomed :)
--------------------------------------------------------------------------------
via: https://itsfoss.com/install-git-ubuntu/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/ubuntu-repositories/
[2]: https://itsfoss.com/apt-command-guide/
[3]: https://git-scm.com/
[4]: https://git-scm.com/downloads
[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/02/install_git_ubuntu.png?ssl=1
[6]: https://itsfoss.com/install-software-from-source-code/
[7]: https://launchpad.net/~git-core/+archive/ubuntu/ppa
[8]: https://itsfoss.com/ppa-guide/
[9]: https://itsfoss.com/update-ubuntu/
[10]: https://itsfoss.com/linus-torvalds-facts/

View File

@ -0,0 +1,110 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Waterfox: Firefox Fork With Legacy Add-ons Options)
[#]: via: (https://itsfoss.com/waterfox-browser/)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
Waterfox: Firefox Fork With Legacy Add-ons Options
======
_**Brief: In this weeks open source software highlight, we take a look at a Firefox-based browser that supports legacy extensions that Firefox no longer supports while potentially providing fast user experience.**_
When it comes to web browsers, Google Chrome leads the market share. [Mozilla Firefox is there still providing hopes for a mainstream web browser that respects your privacy][1].
Firefox has improved a lot lately and one of the side-effects of the improvements is removal of add-ons. If your favorite add-on disappeared in last few months/years, you have a good new in the form of Witerfox.
Attention!
Its been brought to our notice that Waterfox has been acquired by System1. This company also acquired privacy focused search engine Startpage.
While System1 claims that they are providing privacy focused products because there is a demand, we cannot vouch for their claim.
In other words, its up to you to trust System1 and Waterfox.
### Waterfox: A Firefox-based Browser
![Waterfox Classic][2]
[Waterfox][3] is a useful open-source browser built on top of Firefox that focuses on privacy and supports legacy extensions. It doesnt pitch itself as a privacy-paranoid browser but it does respect the basics.
You get two separate Waterfox browser versions. The current edition aims to provide a modern experience and the classic version focuses to support [NPAPI plugins][4] and [bootstrap extensions][5].
![Waterfox Classic][6]
If you do not need to utilize bootstrap extensions but rely on [WebExtensions][7], Waterfox Current is the one you should go for.
And, if you need to set up a browser that needs NPAPI plugins or bootstrap extensions extensively, Waterfox Classic version will be suitable for you.
So, if you like Firefox, but want to try something different on the same line, this is a Firefox alternative for the job.
### Features of Waterfox
![Waterfox Current][8]
Of course, technically, you should be able to do a lot of things that Mozilla Firefox supports.
So, Ill just highlight all the important features of Waterfox in a list here.
* Supports NPAPI Plugins
* Supports Bootstrap Extensions
* Offers separate editions for legacy extension support and modern WebExtension support.
* Cross-platform support (Windows, Linux, and macOS)
* Theme customization
* Archived Add-ons supported
### Installing Waterfox on Ubuntu/Linux
Unlike other popular browsers, you dont get a package to install. So, you will have to download the archived package from its [official download page][9].
![][10]
Depending on what edition (Current/Classic) you want just download the file, which will be **.tar.bz2** extension file.
Once downloaded, simply extract the file.
Next, head on to the extracted folder and look for the “**Waterfox**” file. You can simply double-click on it to run start up the browser.
If that doesnt work, you can utilize the terminal and navigate to the extracted **Waterfox** folder. Once there, you can simply run it with a single command. Heres how it looks like:
```
cd waterfox-classic
./waterfox
```
In either case, you can also head to its [GitHub page][11] and explore more options to get it installed on your system.
[Download Waterfox][3]
**Wrapping up**
I fired it up on my Pop!_OS 19.10 installation and it worked really well for me. Though I dont think I could switch from Firefox to Waterfox because I am not using any legacy add-on. It could still be an impressive option for certain users.
You could give it a try and let me know your thoughts in the comments below.
--------------------------------------------------------------------------------
via: https://itsfoss.com/waterfox-browser/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/why-firefox/
[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/02/waterfox-classic.png?fit=800%2C423&ssl=1
[3]: https://www.waterfox.net/
[4]: https://en.wikipedia.org/wiki/NPAPI
[5]: https://wiki.mozilla.org/Extension_Manager:Bootstrapped_Extensions
[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/02/waterfox-classic-screenshot.jpg?ssl=1
[7]: https://wiki.mozilla.org/WebExtensions
[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/02/waterfox-screenshot.jpg?ssl=1
[9]: https://www.waterfox.net/download/
[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/02/waterfox-download-page.jpg?ssl=1
[11]: https://github.com/MrAlex94/Waterfox

View File

@ -0,0 +1,109 @@
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Screenshot your Linux system configuration with Bash tools)
[#]: via: (https://opensource.com/article/20/1/screenfetch-neofetch)
[#]: author: (Don Watkins https://opensource.com/users/don-watkins)
使用 Bash 工具截屏 Linux 系统配置
======
使用 ScreenFetch 和 Neofetch 与其他人轻松分享 Linux 环境。
![metrics and data shown on a computer screen][1]
你可能有很多原因想要与他人分享 Linux 配置。你可能正在寻求帮助来对系统上的问题进行故障排除,或者你对所创建的环境感到非常自豪,因此想向其他开源爱好者展示。
你可以在 Bash 提示符下使用 **cat /proc/cpuinfo****lscpu** 命令获取某些信息。但是如果你想共享更多详细信息例如你的操作系统、内核、运行时间、shell 环境屏幕分辨率等那么可以选择两个很棒的工具screenFetch 和 Neofetch。
### ScreenFetch
[ScreenFetch][2] 是 Bash 命令行程序,它可以产生非常漂亮的系统配置和运行时间的截图。这是方便的与它人共享系统配置的方法。
在许多 Linux 发行版上安装 screenFetch 很简单。
在 Fedora 上,输入:
```
`$ sudo dnf install screenfetch`
```
在 Ubuntu 上,输入:
```
`$ sudo apt install screenfetch`
```
对于其他操作系统,包括 FreeBSD、MacOS 等,请查阅 screenFetch 的 wiki [安装页面][3]。安装 screenFetch 后,它可以生成详细而彩色的截图,如下所示:
![screenFetch][4]
ScreenFetch 还提供各种命令行选项来调整你的结果。例如, **screenfetch -v** 返回详细输出,逐行显示每个选项以及上面的显示。
**screenfetch -n** 在显示系统信息时消除了操作系统图标。
![screenfetch -n option][5]
其他选项包括 **screenfetch -N**,它去除所有输出的颜色。**screenfetch -t**,它根据终端的大小截断输出。**screenFetch -E**,它可抑制错误输出。
请检查手册页来了解其他选项。ScreenFetch 在 GPLv3 许可证下的开源,你可以在它的 [GitHub 仓库][6]中了解有关该项目的更多信息。
### Neofetch
[Neofetch][7] 是创建系统信息截图的另一个工具。它是用 Bash 3.2 编写的,在 [MIT 许可证][8]下开源。
根据项目网站“Neofetch 支持近 150 种不同的操作系统。从 Linux 到 Windows一直到 Minix、AIX 和 Haiku 等更晦涩的操作系统。”
![Neofetch][9]
该项目维护了一个 wiki其中包含用于各种发行版和操作系统的出色的[安装文档] [10]。
如果你使用的是 Fedora、RHEL 或 CentOS那么可以在 Bash 提示符下使用以下命令安装 Neofetch
```
`$ sudo dnf install neofetch`
```
在 Ubuntu 17.10 及更高版本上,你可以使用:
```
`$ sudo apt install neofetch`
```
首次运行时Neofetch 将 **~/.config/neofetch/config.conf** 文件写入主目录(**.config/config.conf**),它让你可以[自定义和控制] [ 11] Neofetch 输出的各个方面。例如,你可以配置 Neofetch 使用图像、ASCII 文件、你选择的壁纸或者完全不使用。config.conf 文件还让与它人分享配置变得容易。
如果 Neofetch 不支持你的操作系统或不提供所需选项,请在项目的 [GitHub 仓库] [12]中打开一个问题。
### 总结
无论为什么要共享系统配置screenFetch 或 Neofetch 都应该能做到。你是否知道在 Linux 上提供此功能的另一个开源工具?请在评论中分享你的最爱。
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/1/screenfetch-neofetch
作者:[Don Watkins][a]
选题:[lujun9972][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/don-watkins
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/metrics_data_dashboard_system_computer_analytics.png?itok=oxAeIEI- (metrics and data shown on a computer screen)
[2]: https://github.com/KittyKatt/screenFetch
[3]: https://github.com/KittyKatt/screenFetch/wiki/Installation
[4]: https://opensource.com/sites/default/files/uploads/screenfetch.png (screenFetch)
[5]: https://opensource.com/sites/default/files/uploads/screenfetch-n.png (screenfetch -n option)
[6]: http://github.com/KittyKatt/screenFetch
[7]: https://github.com/dylanaraps/neofetch
[8]: https://github.com/dylanaraps/neofetch/blob/master/LICENSE.md
[9]: https://opensource.com/sites/default/files/uploads/neofetch.png (Neofetch)
[10]: https://github.com/dylanaraps/neofetch/wiki/Installation
[11]: https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
[12]: https://github.com/dylanaraps/neofetch/issues

View File

@ -0,0 +1,101 @@
[#]: collector: (lujun9972)
[#]: translator: (Morisun029)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Why developers like to code at night)
[#]: via: (https://opensource.com/article/20/2/why-developers-code-night)
[#]: author: (Matt Shealy https://opensource.com/users/mshealy)
开发人员为什么喜欢在晚上编码
======
对许多开源程序员来说,夜间工作计划是创造力和生产力来源的关键。
![Person programming on a laptop on a building][1]
如果你问大多数开发人员更喜欢在什么时候工作,大部人会说他们最高效的时间在晚上。这对于那些在工作之余为开源项目做贡献的人来说更是如此(尽管如此,希望在他们的健康范围内[避免透支][2])。
有些人喜欢从晚上开始一直工作到凌晨而另一些人则很早就起床例如凌晨4点以便在开始日常工作之前完成大部分编程工作。
这种工作习惯可能会使许多开发人员看起来像个怪胎和不称职。 但是,为什么有这么多的程序员喜欢在非正常时间工作,这其中有很多原因:
### maker 日程
根据[Paul Graham][3]的观点, "生产东西" 的人倾向于遵守 maker's schedule—他们更愿意以半天或更长时间为单位使用时间。事实上大多数 [开发人员也有相同的偏好][4].
一方面,开发人员从事大型抽象系统工作,需要思维空间来处理整个模型。 将他们的日程分割成15分钟或30分钟的时间段来处理电子邮件会议电话以及来自同事的打断工作效果只会适得其反。
另一方面,通常不可能以一个小时为单位进行有效编程。 因为这么短的时间几乎不够来处理当前的任务并开始工作。
上下文切换也会对编程产生不利影响。 在晚上工作,开发人员可以避免尽可能多的干扰。 在没有持续中断的情况下,他们可以花几个小时专注于手头任务,并尽可能提高工作效率。
### 平和安静的环境
由于晚上或凌晨不太会有来自各种活动的噪音(例如,办公室闲谈,街道上的交通),这使许多程序员感到放松,促使他们更具创造力和生产力,特别是在处理诸如编码之类的精神刺激任务时。
独处与平和,加上知道自己将有几个小时不被中断的工作时间,通常会使他们摆脱白天工作计划相关的时间压力,从而产出高质量的工作。
更不用说了,当解决了一个棘手的问题后,没有什么比尽情享受自己最喜欢的午夜小吃更美好的事情了!
### 沟通
与在公司内里工作的程序员相比,从事开源项目的开发人员可以拥有不同的沟通节奏。 大多数开源项目的沟通都是通过邮件或 GitHub 上的评论等渠道异步完成。 很多时候,其他程序员在不同的国家和时区,因此实时交流通常需要开发人员变成一个夜猫子。
### 昏昏欲睡的大脑
这听起来可能违反直觉,但是随着时间的推移,大脑会变得非常疲倦,因此只能专注于一项任务。 晚上工作从根本上消除了多任务处理,多任务处理是保持专注和高效的主要障碍。 当大脑处于昏昏欲睡的状态时,你是无法保持专注的!
许多开发人员在入睡时思考要解决的问题通常会取得重大进展。 潜意识开始工作,答案通常在他们半睡半醒的早些时候就出现了。
这不足为奇,因为[睡眠可增强大脑功能][5],可帮助我们理解新信息并进行更有创造性的思考。当解决方案在凌晨出现时,这些开发人员便会起来并开始工作,不错过任何机会。
### 灵活和创造性思考
许多程序员体会到晚上创造力会提升。 前额叶皮层,即与集中能力有关的大脑部分,在一天结束时会感到疲倦。 这似乎为某些人提供了更灵活和更具创造性的思考。
匹兹堡大学医学院精神病学助理教授[Brant Hasler][6] 表示:“由于自上而下的控制和'认知抑制'功能较少,大脑可能会解放出来进行更多样化的思考,从而使人们更容易地将不同概念之间的联系建立起来。” 结合轻松环境所带来的积极情绪,开发人员可以更轻松地产生创新想法。
此外,在没有干扰的情况下集中精力几个小时,“沉浸在你做的事情中”。 这可以帮助你更好地专注于项目并参与其中,而不必担心周围发生的事情。
### 明亮的电脑屏幕
因为整天看着明亮的屏幕, 许多程序员的睡眠周期被延迟。电脑屏幕发出的蓝光[扰乱我们的昼夜节律][7]通过延迟释放诱发睡眠的褪黑激素和提高人的机敏性将人体生物钟重置到更晚的时间。从而导致,开发人员往往睡得越来越晚。
### 过去的影响
过去,大多数开发人员是出于必要在晚上工作,因为在白天当公司其他人都在使用服务器时,共享服务器的计算能力支撑不了编程工作,所以开发人员需要等到深夜才能执行白天无法进行的任务,例如测试项目,运行大量的代码编译运行调试周期以及部署新代码。现在尽管服务器功能变强大了,大多数可以满足需求,但夜间工作的趋势仍是这种文化的一部分。
### 结语
尽管开发人员喜欢在晚上工作出于多种原因,但请记住,成为夜猫子并不意味着你应该克扣睡眠时间。 睡眠不足会导致压力和焦虑,并最终导致倦怠。
获得足够质量的睡眠是维持良好身体健康和大脑功能的关键。 例如,它可以帮助你整合新信息,巩固记忆,创造性思考,清除身体积聚的毒素,调节食欲并防止过早衰老。
无论你是哪种日程,请确保让你的大脑得到充分的休息,这样你就可以在一整天及每天的工作中发挥最大的作用!
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/2/why-developers-code-night
作者:[Matt Shealy][a]
选题:[lujun9972][b]
译者:[Morisun029](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/mshealy
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_code_programming_laptop.jpg?itok=ormv35tV (Person programming on a laptop on a building)
[2]: https://opensource.com/article/19/11/burnout-open-source-communities
[3]: http://www.paulgraham.com/makersschedule.html
[4]: https://www.chamberofcommerce.com/business-advice/software-development-trends-overtaking-the-market
[5]: https://amerisleep.com/blog/sleep-impacts-brain-health/
[6]: https://www.vice.com/en_us/article/mb58a8/late-night-creativity-spike
[7]: https://www.sleepfoundation.org/articles/how-blue-light-affects-kids-sleep