Zeeman Memon – Linux Hint https://linuxhint.com Exploring and Master Linux Ecosystem Wed, 10 Mar 2021 03:26:24 +0000 en-US hourly 1 https://wordpress.org/?v=5.6.2 Difference between CPython, Jython, IronPython, PyPy, and Cython https://linuxhint.com/cpython-jython-ironpython-pypy-cython/ Tue, 09 Mar 2021 05:09:20 +0000 https://linuxhint.com/?p=93547 Computer Science is one of the hottest fields out there right now, and it keeps on growing and expanding further. It has tremendously evolved from what it used to be in the early days and now is being used for content that is changing the lives of millions of people. Such has been its advancement that has allowed concepts like artificial intelligence, deep learning, and so many others, which once looked impossible to come into existence.

One particular element of computer science that has seen a large evolution is the programming language section, which is an integral part of machines and comprises instructions that allow the machines to perform different tasks. Python is one high-level programming language that has immensely grown and is being used in multiple sectors of the industry.

However, Python itself is vast and can be implemented in several different flavors, which shall also be the topic of our discussion in this article, and where we will be looking at the different implementations that currently exist of Python.

Different Implementations of Python

We have been using the term “implementation” for a while now. What does this mean? Well, implementation refers to the way the interpreter was written – what languages were used and what is the purpose of that specific interpreter.

Now, let us look at some of the different implementations of Python.

1) CPython

CPython is the default and most widely used interpreter or implementation of Python, written in C. It is the original Python version, which users download from its official website, Python.org. It can be better described as a mixture of both an interpreter and compiler as it converts your written Python source code into bytecode. By bytecode, we refer to a program code that gets compiled and processed into a low-level language that can be used as instructions for the interpreter. It is this bytecode that gets executed on the CPython Virtual Machine.

Since it is the original Python implementation, CPython has the highest compatibility with a variety of Python packages and modules and is the best choice if users need to write code that completely matches the Python standards.

2) Jython

Jython is another Python implementation that has been written in the Java language whose implementation can run in Java platforms. Similar to CPython, it first converts the source code into bytecode, which, as mentioned before, are a set of instructions that are needed by an interpreter. In Jython, these are written in Java and can run on the Java Virtual Machine, which is the same environment that Java itself uses. Jython allows users to easily work with Java programs since you can call, as well as utilize, your Java functions and classes directly from Jython without any additional effort which is immensely beneficial as Python users can get access into the enormous ecosystem of libraries and frameworks that come along with Java. The same is true on the opposite end.

3) IronPython

Similar to how Jython has been developed for Java users, IronPython is the popular Python implementation that has been written in C-Sharp (C#) and has been designed to run on the .NET platform. It creates a bridge between the Python and .NET universe and allows Python users to get access to C-sharp functions and classes, as well as .NET libraries and frameworks directly from IronPython. IronPython excels for programs that make use of threading and can be found on the ironpython.net website.

4) PyPy

PyPy is the Python implementation that has been written in the Python language itself and is another alternative to CPython. Since it has been created while keeping in mind the specifications of the Python language, it is most compatible with CPython, allowing it to run web frameworks like Django and Flask, and even adds a few improvements on the top of it. PyPy makes use of the concept called Just-in-time (JIT) compilation, which allows it to compile the source code during the execution of the program. This, in turn, has made it several times faster than CPython, in which its runtime speed being slow was a common complaint among users. PyPy completely improves this part of CPython.

5) Cython

Unlike the other implementations of Python mentioned in the list, Cython is not a Python interpreter but rather a superset of the Python language that allows users to compile programs in the C language. The amazing thing is that it provides you with the combined power of both Python and C, and this, therefore, is why it can be used for writing C extensions as well as transform and tune your Python code into C. Hence, Cython overcomes many limitations of Python and still maintains the convenience and comfort that comes with Python.

Conclusion:

Python has enormously grown and expanded into various implementations, all of which have been developed to the cater the needs of different users. Throughout the time frame in which users might be working with the Python interface, they might come across several of these implementations, and therefore, it is important to know what exactly each of these is and where does their expertise lie.

]]>
How Do I Change the Language Back to English on Google Chrome? https://linuxhint.com/change-the-language-back-to-english-in-google-chrome/ Tue, 09 Mar 2021 02:09:18 +0000 https://linuxhint.com/?p=93135 Since the early days, browsers have evolved tremendously over the years, and it keeps on evolving further. They have become an integral part of our lives as they allow us easy access to traversing the Internet. Back then, text-based browsers like Lynx were introduced and were usually the norm. However, as technology advanced, many new features and enhancements were added, and browsers became more sophisticated and feature-rich.

In the early 2000s, Internet Explorer and Firefox quickly became popular and garnered huge followers in the community. The discovery of these web browsers quickly changed the Internet’s dynamic, which allows accessing and traversing the Internet to be extremely easy. However, another revolution emerged when Google introduced its web browser, Chrome, to the world in 2008.

Chrome rapidly became the favorite of many users as its excellent performance and high stability caught the people’s eye and was preferred by users instead of its predecessors. Such has been its affluence in the market that it quickly became the most popular web browser globally. Chrome is jam-packed with features, one of which is its ability to support a massive collection of different languages. Users from different countries can replace their default language with their native one and enjoy using Chrome without worries.

However, these users can also change the language back to English, which shall be the topic of our discussion in this article/ We will be looking at how one can change the language of Chrome back to English.

Steps in Changing Chrome’s Language:

Before one can adequately start using Chrome, they need to be first comfortable with its layout and navigation system. When you download and install Chrome, it sets the default language same to your operating system. However, if that isn’t comfortable for you or you just want to have your browser in the English language, several steps need to be followed. Let us now explore all of them.

Do note that before you attempt to change your language, it is better for you to save all your content that you might need later as after changing the language, Chrome will restart, and your content will be lost.

1) Opening the Settings of Chrome

First, open Chrome by either clicking on its icon on the desktop or by searching it in the search bar.

Once Chrome has been opened, open the browser’s drop-down menu by clicking on the three vertical dots present on the top right-hand side. After this, select the Settings option in the menu.

Another alternative way for opening the Chrome Settings is by simply typing the following URL in the address bar: chrome://settings/.

2) Opening the Advanced Option Section

After opening the Settings of your Google Chrome, scroll to the bottom and click on the Advanced button found at the end, after which you will be presented with some additional options.

You can also see the Advanced section’s options by clicking on the Advanced option present on the left side of your Settings window.

From here, click on the Languages section, which will direct you to Chrome’s language settings window.

3) Changing the Language to English

Upon opening the Advanced section, you will be greeted with the Language settings, several different options are present such as choosing the appropriate spell check or specifying which language to have the spell-check.

Over here, click on the Language tab found at the top of the Language settings.

Upon clicking on the Language tab, this will open a drop-down menu presenting you with all your languages and your default language.

a) English Present in Menu

If you have a different language present here and wish to make English your default language, then first check to see if it is present in these lists of languages. For example, the default language is German, and we wish to make English our default language. We can see English is present in the list of options.

To make English your default language, click on the three vertical dots on the right side of the menu and then select the option: Display Google Chrome in this language.

After doing this, you will see a Relaunch button that will appear in the menu. Click it and wait for Chrome to restart, after which you will see your Chrome giving instructions in English.

b) English Missing from Menu

After opening the Language settings and the drop-down menu of your language list, if, however, English is not present in your list of languages, then you can add it over there. To do this, click on the Add languages text button highlighted in blue found at the bottom of your menu.

This will further open a drop-down menu, having names of several different languages present. Over here, search for the English language by typing it in the search bar found in the top right.

Now, numerous English language options will appear in front of you. Select the checkbox of the one or several which you want and click on the Add button.

To make this English language option your default language, click on the three vertical dots on the right side of the menu and then select the option: Display Google Chrome in this language.

After doing this, you will see a Relaunch button that will appear in the menu. Click it and wait for Chrome to restart, after which you will see your Chrome giving instructions in English.

Conclusion:

Chrome is an excellent web browser that has made the process of accessing the Internet much more effortless. It has a large array of language options from which you can choose and an extremely easy method of reverting to English as your default language.

]]>
Fixing Chrome’s Not Responding Error https://linuxhint.com/fix-chrome-not-responding-error/ Mon, 22 Feb 2021 12:33:27 +0000 https://linuxhint.com/?p=90850 Web browsers play a critical part in accessing the Internet and are a core part of traversing the Internet. In the early years, Internet Explorer, along with Firefox and Safari, dominated the web browser platform, having the greatest number of users in their community. However, the release of Google Chrome in 2008 brought about a revolution when, due to its immaculate performance and highly stable infrastructure, it quickly caught the eye of people and overtook its predecessors.

In the current times, Chrome is the most widely used web browser in the world, and its userbase keeps on expanding even further. However, as more and more complexity got added to it, a few glitches started to emerge here and there. One such bug that started to cause problems for the users was Google Chrome freezing and not responding, which shall also be the topic of our discussion in this article. We will be looking at different solutions to fix the not responding error of Chrome.

Solutions to the Error

There might be several reasons why Chrome might stop working and stop responding to your queries, such as a broken extension or outdated version. Let us now explore all of them.

1. Updating or Reinstalling Chrome

Often, the reason why Chrome is not responding is due to it being out of date. To check to see if your Chrome needs to be updated, click on the three vertical dots, then Help, and then on About Google Chrome.

This will open a new tab and then check whether your Chrome version is up-to-date or not. If it isn’t, then Chrome will automatically update it.

However, if the version is already updated and the not responding issue still exists, it will be better to uninstall your Chrome web browser and reinstall it.

2. Clearing the History, Cache, and Cookies from Chrome

Another reason why your Chrome is maybe acting weirdly might be due to some corrupted cache that might have crept into your browser. In addition to this, sometimes having a large collection of browsing data might overburden your system and may make your Chrome run slower or not respond. Therefore, another good alternative would be to clear your browsing history along with your cache and cookies from your Google Chrome. To do this, open your Google Chrome, then click on the three vertical dots, go to the More tools option and finally select the Clear Browsing Data option. You can also open this using the shortcut Ctrl + Shift + Delete.

This will then open up a window where multiple options will be present for you to select from. For example, you can select the time period, the items you want to remove and choose between the Basic and Advanced option, which allows you to remove your passwords, site settings, and so on.

After doing this, relaunch your Chrome web browser and check to see if the not responding issue has been resolved.

3. Disabling Extensions

Another reason why your Chrome might not be responding might be due to some extension causing an issue. This may be due to it falling out of date or becoming incompatible with your Chrome, mainly due to not being maintained regularly. To disable your extensions, once again click on the three vertical dots, then the More tools option, and finally on the Extensions option inside of it.

Now, over here, disable your extensions one at a time to see if any one of them might be the reason why your Chrome may not be responding.

4. Adding Chrome to Firewall Exception List

Sometimes the reason why your Chrome might not be responding may have to do with your Firewall blocking it. On Windows, you have to check this through the Windows Firewall. First, search for Firewall in the search menu and open it.

Next, click on the Allow a program through the Windows Firewall option.

Over here, click on the Change Settings button.

Find and locate Google Chrome from this and tick the option next to it.

Finally, click on OK and now once again check to see if your Chrome is responding or not.

For Linux users, you can check to see if Chrome is on the list of applications for whom the traffic is allowed. This can be done by running the following command into the terminal:

$ sudo iptables -S

5. Clearing your DNS Cache

Although this isn’t entirely related to Google Chrome, sometimes DNS caches do tend to affect your network connections as they might have gotten corrupted or broken. To check this, open the Command Prompt by searching your Windows menu.

Next, run the following commands in your terminal:

$ ipconfig /flushdns
$ netsh winsock reset

After removing the DNS cache, once again open Chrome and check to make sure if the error has been fixed or not.

6. Resetting your Google Chrome

If the issue still hasn’t been resolved, then a good way would be to reset and restore Chrome to its original settings. This can be done by opening Chrome, clicking on the three vertical dots, and then selecting the Settings option.

After opening Settings, go to Advanced and select the Reset and clean up option.

Over here, click on the Restore settings to their original defaults.

This will open up a prompt where you simply have to click on the Reset Settings button.

After resetting Chrome, check to see if the problem has been resolved.

Conclusion?

Chrome is one of the best web browsers out there, and it keeps on improving even more. However, despite all its excellent features, it still isn’t flawless and sometimes may act out of order. Therefore, it is important to know how to deal with these errors in the most efficient manner.

]]>
Fixing Chrome’s Time Out Error https://linuxhint.com/fix-chrome-time-out-error/ Mon, 22 Feb 2021 12:25:41 +0000 https://linuxhint.com/?p=90849 Web browsers have always been a critical part of accessing and traversing the Internet. Google Chrome is one of the most popular and widely used browsers out there, and its user base keeps on expanding. Before its release, browsers like Internet Explorer and Firefox were mostly used and had a large following. They had some excellent features that were extremely useful at that time. However, as technology progressed, the current features were not able to fulfill the people’s requirements. With Chrome coming out in 2008, this completely changed the dynamic of the web browser platform system as, due to its high-speed performance and stable nature, it quickly caught the eye of people and overtook its predecessors. Chrome, however, itself isn’t flawless and tends to have some issues of its own. One particular issue that has been on the rise is the timeout error, which shall also be the topic of our discussion in this article, where we will be looking at different solutions as to how one can fix the timeout error of Chrome.

Solutions to the Error

The timed-out error is usually due to no communication between your browser and the website you are trying to access. This is because either your browser cannot receive the data or the time it took crossed the timeout session and couldn’t establish a connection.

There are several methods with which you can solve this issue. Let us now explore all of them.

1) Clearing the Browsing Data from Chrome

Often, the reason your connection might be getting timed out is due to cookies or caches becoming corrupted and creating problems in establishing a connection between your browser and the website’s server. Therefore, a good option is to clear your browsing data from your Google Chrome. To do this, open your Google Chrome, then click on the three vertical dots, go to the More tools option and finally select the Clear Browsing Data option. You can also open this using the shortcut Ctrl + Shift + Delete.

This will then open up a window, having multiple options for you to select from, particularly a time period from when you want to start removing your browsing data. The Basic section will be enough to resolve this error; however, if there are some specific site settings that you feel like is creating problems, you can choose them from the Advanced section.

Clear Browsing Data:

Site Settings in Advanced Tab:

Relaunch your Chrome web browser and check to see if the webpage is loading or not.

2) Disabling Firewall

Another reason why you might be getting a timeout error in Chrome may be due to your Firewall trying to block the connection between your browser and the server. Firewalls are security features installed to protect your systems and block suspicious webpages. However, sometimes it ends up blocking safe pages. On Windows, you have to check this through the Windows Firewall. First, search for Firewall in the search menu and open it.

Next, click on Turn Windows Firewall on or off.

You need to click on the Turn off Windows Firewall option in the private network location settings over here.

Next, click on OK, and now you will see the following on your main Firewall homepage.

Now, once again, check to see if your Chrome is loading the website or not.

3) Editing your Windows Hosts File

Another alternative to fixing the timed-out error is to check your Windows hosts file for the websites’ names not being accessed. There may have been a chance of them being blocked by the hosts’ file. To edit the host file, open your My Computer, then go to the following directory: C:\Windows\System32\drivers\etc. Over here, you will see a file with the name hosts. Open the file by right-clicking on it and using a notepad or similar sort of software to open it. Now check to make sure the website names aren’t mentioned after the localhost section.

If you see the names, remove them, save the host’s file, and once again open Chrome and check to see if it is loading your web page.

4) Resetting and Flushing DNS

Similar to removing your browsing data, you can also try flushing your DNS cache as the website you might be trying to access might not allow a connection to establish with your IP Address. To do this, open the terminal by writing the command prompt in the search bar and opening the command prompt program.

Next, type the following commands to flush the DNS cache and renew your IP address:

$ ipconfig /flushdns

$ ipconfig /registerdns

$ ipconfig /release

$ ipconfig /renew

After these, run the following command to reset it:

$ netsh winsock reset

Restart your computer now, and then try once again to load your webpage in Chrome.

5) Configuring the LAN Settings

Another alternative to look is to look inside your LAN settings and tweak a few settings. To do this, open the Control Panel, click on Network and Internet and then select Internet Options.

After selecting this, a window will be open in which click on the connections tab to open it.

Next, click on the LAN settings button found under the LAN section.

Over here, uncheck the Use a proxy server option found under the Proxy server section and click OK.

After configuring your LAN settings, reboot your system, and upon restarting, open Chrome and check to make sure if it is loading your webpage.

Conclusion?

Chrome is an excellent web browser that has made the process of accessing the Internet much easier. But like all inventions, it isn’t without flaws and might experience some errors. Therefore, it is essential to know how one can deal with these errors in a timely manner.

]]>
What to Expect from Intel’s 10th Gen CPU https://linuxhint.com/intel-10th-gen-cpu/ Sat, 23 Jan 2021 18:09:02 +0000 https://linuxhint.com/?p=87237 One technology that has undergone significant transformations in this field is the CPU, or Core Processing Unit, which is a foundational component of almost every digital device. The CPU is responsible for carrying out the processing and execution of instructions.

There are now several hyperthreaded cores available in modern computer systems, and this has significantly increased the performance of these systems. The latest CPU released by Intel is its 10th Generation version, which provides incredible experiences for users. This article shows you what you can expect from Intel’s 10th Gen CPU.

Hyper-Threading

One of the most important features introduced with the 10th Generation Intel CPU is hyper-threading, which refers to the ability of a microprocessor to act as if there are two separate processors working in the computer. This improves the parallelism of computer systems, as more than one thread can now run on each core; and the more threads there are, the more work that can be done in parallel. This is significant, as it allows the system to perform at a significantly improved rate.

The hyper-threading feature was not included in predecessor models, and it allows the 10th Gen Intel to go toe-to-toe against AMD CPUs in the lower range CPUs (such as Core i5-9400) where the Intel was lacking previously. In other words, before, the Core i7-9700K had eight cores and eight threads; now, its newer version, the Core i7-10700K, has the same number of cores but with sixteen threads, which is double that of its predecessor.

Improved Thermal Performance

Overheating is one of the biggest issues that still exists in computer systems. If a computer becomes hot, it begins to operate at a lower performance. This is because computers are designed in such a way that if the temperature of the parts goes above a certain threshold, the computer will begin reducing performance so that less heat may be generated and valuable parts, like the motherboard, do not take any damage.

The 10th Generation CPU comes with a larger integrated heat spreader, whose job it is to transfer heat away from the CPU. This model also has a feature built-in that allows you to switch off hyper-threading. Since this reduces the number of operating cores, less heat will be generated, and issues such as overheating will be reduced significantly.

Upgraded Hardware

The 10th Generation CPU of Intel has seen an improvement in its hardware. The 10th Gen model contains the new motherboard series, along with the LGA 1200 socket, which will have larger PINs than predecessors.

These motherboards will be able to support the next generation of CPUs, which is a huge plus. The 10th Generation CPU also offers support for Thunderbolt 3, which is one of its best features. The Thunderbolt 3 is a connector that allows external devices to connect to your computer, and this is a major improvement on the previous version, as it offers double the speed, high connection and USB speeds, support for the DisplayPort protocol, and the ability to connect to up to two 4K displays.

Furthermore, Intel’s 10th Gen CPU also comes with Wi-Fi 6, which offers much better speeds and handling of connected devices. This feature prevents network connections from dropping, even as more and more devices become connected.

Better AI Features

Another major improvement in Intel’s 10th Gen CPU is the AI system, where more focus and emphasis have been placed on this new generation. This refinement in the AI system comes from the addition of the Deep Learning Boost (DL Boost) instruction set, which has allowed complex and convoluted AI workloads to run on the same hardware as your existing workloads. This has brought a significant improvement in the AI performance and has made the system much more responsive.

Boosted Gaming Experience

The integrated graphics of Intel have a poor reputation in the gaming community. This is because if Intel’s graphics are compared with those of NVIDIA or Radeon, then their performance falls WAY short. This changes in the 10th Gen CPU, which has taken major strides. The new Intel Iris Plus graphics is considered to be the among best integrated graphics systems available, and it offers high quality compared to the alternatives.

With Iris Plus graphics, as well as support for VESA Adaptive Sync, users can now perform content creation activities, such as video and photo editing, in high quality without any need for a dedicated graphics card. Gaming is also much smoother, and games can be played in high quality without needing to install a new dedicated graphics card. It also allows 4K Ultra-HD videos to be played with amazing sharpness and precision.

Conclusion

The 10th Generation CPU from Intel is a major upgrade over its predecessors. This version offers much-improved performance and graphics. The newest generation not only has better hardware but also better AI features, along with amazing graphics quality. The 10th Gen Intel CPU allows users to play games and create high-quality content, such as video and photo editing, with considerably improved quality and performance. It will be interesting to see how this model will compete with AMD processors, but it certainly will be a nail-biter between the two companies. ]]> Is USB C the same as Thunderbolt 3? https://linuxhint.com/is-usb-c-the-same-as-thunderbolt-3/ Sat, 23 Jan 2021 17:28:01 +0000 https://linuxhint.com/?p=87229 One technology that has seen significant leaps in quality in recent years are USBs. Connector systems, as well as protocols that come along with these systems, are responsible for the transmission of data and power to and from connecting devices.

This article covers the USB C and Thunderbolt 3 connector system types in detail, including a comparison of these two USB types.

What Are USB C and Thunderbolt 3?

USB C is an industry-standard connector system that allows you to charge your devices, as well as transfer data from one device to another. This connection type was developed by the USB Implementers Forum (UIF), an organization that has been at the forefront of the creation and promotion of USBs. In contrast to its predecessors, appearance-wise, the USB C is oval in shape and has a connector that is quite similar to that of a micro-USB connector. USB C not only offers better transfer speeds but also more increased power, as well as more pins than previous versions.

Thunderbolt 3 is a data transfer protocol that was developed by Intel in collaboration with Apple. The previous versions of the Thunderbolt USB made use of the Mini Display Port (MDP) for the connector. However, Intel changed this in the Thunderbolt 3 cable and introduced the same design as that of the USB C connector. This transition was made because the only manufacturer that used Thunderbolt before was Apple. The Mini Display Port had also been replaced by USB C in almost all newer laptops, so Intel decided to support the USB C connector, as well. This is the reason why Thunderbolt 3 connectors bear a significant resemblance to USB C.

Differences between USB C and Thunderbolt 3

Now that we have looked at detailed descriptions of the USB C and Thunderbolt 3 connection types, we will cover some of the differences between these connection types, despite a striking resemblance in appearance.

1. Data Transfer and Connection

In terms of data transfer speeds, Thunderbolt 3 edges out USB C. Thunderbolt 3 supports up to 40 Gpbs of transfer rates, while USB C works at 10 Gpbs of speed. Thus, Thunderbolt 3 is four times faster than USB C, provided that your system can support these speeds. Another excellent feature that comes with Thunderbolt 3 is its ability to support two high-quality displays, particularly in the 4K range. USB C contains the feature called Alt Mode that allows this connection type to perform this function; however, this is an optional feature that must be enabled and will only work if it is supported by your computer system.

2. Daisy-Chaining

Another feature that gives Thunderbolt 3 an advantage over USB C is that Thunderbolt 3 allows users to daisy chain several devices at once. Daisy-chaining occurs by connecting several devices in series, one after another. The availability of this feature (or lack thereof) is due to the design structure of both types. Thunderbolt 3 comes with a peer-to-peer structure, while USB C comes with a host-to-user structure, which does not support the connection of several devices in a chain with your host computer. Thunderbolt 3, however, allows users to connect up to six devices in a chain.

3. Device Support

Both USB C and Thunderbolt 3 can be used to connect to a variety of devices, such as printers, laptops, smartphones, and more. Even so, the Thunderbolt 3 again takes the edge over USB C because it offers support to PCIe devices. PCIe is an interface that allows you to connect to components such as graphics, memory devices, Wi-Fi and RAID cards, and so on. This means that Thunderbolt 3 users can connect GPUs and external graphics cards, which gives your computer an additional boost.

4. Compatibility

Thunderbolt 3 is more compatible with USB C. Thunderbolt 3 allows USB C devices to be plugged into its own ports by using its alternative option, where it switches to the USB protocol and will now be able to support USB C. This, however, is not the case with USB C ports, which do not work with Thunderbolt 3 devices.

So, Thunderbolt 3 or USB C?

The decision over which port type to use – Thunderbolt 3 or USB C – comes down to your personal usage preferences and needs. It is important to note neither of these connection types is the winner; your choice depends on what you want. USB C is exceptionally fast and powerful, and this connection type allows you to transfer HD movies in seconds. If there is no need for connecting GPUs or two high-resolution displays, then USB C will meet the needs of most users, and it is more cost-effective than its counterpart.

]]>
Two Powerful SSD Benchmark Utilities for Linux https://linuxhint.com/two-powerful-ssd-benchmark-utilities-linux/ Sat, 23 Jan 2021 16:49:25 +0000 https://linuxhint.com/?p=87213 The 21st century has seen unprecedented growth in the technological sector, and many upgrades have been made in the past several years. The evolution of phones from landlines to smartphones is a clear indicator of this technological phenomenon. The latter has become a key part of our lives, providing us a means to connect with the world around us. The desktops and laptops that we use today have also seen major progression, and this can be observed in the improvement in the quality of tools and games in the world of computers.

One such sector in the computer world is that of memory storage, which has quickly moved on from traditional hard disks to a newer, faster type of storage called a solid-state drive, or SSD for short. SSDs are extremely fast, require less power, and are more shock-resistant than HDDs. You can see this for yourself by benchmarking your SSDs. Benchmarking is the process of measuring the performance of any tool, which can be done using a benchmarking utility.

This article looks at two of the best utilities available for SSD benchmarking in the Linux operating system, Disks and hdparm.

Tools to Use for Benchmarking SSDs

Linux offers a wide collection of tools to its users, each of which is catered to meet the interests of different user types. From among the large collection available, users can easily choose the tool with which they are most comfortable. The same is the case with SSD benchmark utilities. There are several excellent benchmark utilities available for Linux, including KDiskMark, sysbench, sysstat, Phoronix Test Suite, and more.

In this tutorial, we will look at two tools, both of which come preinstalled in most Linux systems. One of the utilities will be a GUI-based tool, and the other utility will be a command-line-based tool.

For users who prefer using the GUI, Disks is the best option. Disks is a powerful GUI disk management tool that comes preinstalled in almost every Linux system. This utility has an extremely easy-to-use interface, and you can easily check your benchmark results using this tool. The other tool that we will look at is hdparm, a simple command-line application that includes the option to check out the performance of storage devices.

Benchmarking SSDs Using Disks

As mentioned before, Disks comes preinstalled in almost every Linux system. However, if this tool is not present in your system, run the following command in the terminal to install Disks:

$ sudo apt-get install -y gnome-disk-utility

To open Disks, search for the application in the search bar, and an application with the name Disks and a CD icon will appear in the results list.

Click the icon to open the Disks application. The window that opens will contain all storage devices present in your system. Scroll down to find the SSD device that you would like to benchmark.

Next, click the gear icon below the Volumes section, then select Benchmark Partition from the choices available in the drop-down menu.

Selecting the Benchmark Partition option will open a window in which various details regarding your SSD will be present, such as the last time that it was benchmarked, the sample size selected for the benchmark process, and the average read, write, and access rates. If this is your first time benchmarking the SSD, then everything else, apart from the name of your Disk, will appear blank.

To start the Benchmark process, click the Start Benchmark button found in the bottom-left corner of the window.

After clicking this button, a new window will open. In this window, there will be various options, such as the Transfer Rate and the Access Time. For the Transfer Rate, you must specify the number of samples you want for the benchmark process and define the total size of these samples. There is also a Perform write-benchmark option present, which you should disable if you do not want your data in the SSD to get overwritten. Note that if you do go for a write benchmark, be sure to backup all your data, as it will be erased in the overwrite.

Finally, once you are finished setting up everything, click the Start Benchmarking button, and the benchmarking process will start. During the benchmarking process, the average reading, writing, and access times will continue updating. Once the process is complete, your results will appear.

An HDD will have results similar to the following:

As you can see in the results above, SSDs are nearly ten times faster in both reading and accessing the data.

Benchmarking SSDs Using hdparm

Hdparm is a command-line performance-testing tool that comes preinstalled in almost every Linux system. If hdparm is not present in your system, run the following command in the terminal to install hdparm:

$ sudo apt install hdparm

To benchmark your SSD using hdparm, open your terminal and issue the following command:

$ sudo hdparm -tT DeviceName

DeviceName refers to the name of your SSD. You can easily verify this output by running the following command:

$ lsblk -d -o name,rota

Here, the output one refers to a hard disk, while the output zero refers to an SSD. The result we get from this is as follows:

Meanwhile, the result we get from an HDD is:

As you can see from the results, SSDs are once again much faster than hard drives.

So, Why Should You Benchmark Your SSD?

Benchmarks are an excellent way to test the performance of your storage devices and also other computer parts. These utilities also allow users to compare their results with others, and check whether improvements are needed.

]]>
Best Linux Distros for Gaming in 2021 https://linuxhint.com/best-linux-distros-gaming-2021/ Sat, 23 Jan 2021 12:08:37 +0000 https://linuxhint.com/?p=87176 The Linux operating system has come a long way from its original, simple, server-based look. This OS has immensely improved in recent years and has now evolved into a powerhouse, which has led to Linux becoming one of the most popular operating systems in use today. The community that supports Linux is extremely large and is truly remarkable, which can be seen in the development of so many Linux-based distributions, each catered to the interests of a particular fanbase.

This evolution has revolutionized the dynamic of gaming in Linux. Tasks that once seemed so difficult in Linux have become extremely easy with the wide availability of diverse Linux distributions. There are now hundreds of games available in Linux, and the list keeps on growing. This article looks at the best Linux distros for gaming that are currently available.

Ubuntu

Ubuntu is one of the most popular and widely used Linux distributions, and the large community behind this distribution is a clear indicator of its functionality. This distribution is extremely stable and secure. With the LTS (Long Term Support) releases of Ubuntu, users can use these versions for a long time without any major issues.

For Linux users, most of the games that they want to play can be found on Steam, an online platform from which users can buy, play, and download games. On Steam, Ubuntu sits at the top as the most-used distribution for gaming, and this comes as no surprise, as this distribution is easy-to-use, immensely popular, and extremely user-friendly. Ubuntu also allows for the easy installation of the tools and packages required for gaming, such as automatically installing proprietary NVIDIA graphics drivers. You can also easily install software like Lutris, GameHub, or Steam Proton to play Windows games on your Linux system.

Moreover, if you encounter any errors, you can easily communicate with the massive Ubuntu community, which is always there to help.

Pop!_OS

Pop!_OS is another excellent free and open-source operating system designed by System76. Since it is based on Ubuntu, Pop!­­­­­­­­­­­­­_OS comes with a GNOME desktop environment. Pop!_OS has a very fast and fluid navigation system, along with some neat and tidy workflows that provide users with optimal performance and an excellent user experience. This distribution has exceptional built-in GPU support, and you can easily install the GPU that suits your system, whether it is NVIDIA or AMD.

Since it is based on Ubuntu, Pop!_OS also has LTS versions, and users can use the system for a long time without going through any major issues. Like with Ubuntu, you can install software like Lutris, GameHub, and Steam Proton directly from the Pop!_OS apps store.

Manjaro

Manjaro is an Arch-based Linux distribution. Unlike its parent distro, however, Manjaro drives away all the complications, ensuring that the installation process is extremely easy. This is something that many users have had an issue with when using Arch. Manjaro offers great hardware support and automatically installs all required drivers, including graphics card drivers.

Although Manjaro is based on Arch, it maintains its own repositories and supports a large collection of software inside its repository, which is up-to-date. Manjaro comes with Steam preinstalled, and you can quickly dive into playing games. This distribution also has an excellent community that is always ready to offer help to users.

Solus

Solus is an operating system that is based on the Linux kernel and is designed from scratch. This distribution supports several desktop environments, such as Budgie, Gnome, Mate, etc. Solus follows the rolling release model, in which once an application or software has been installed, it will keep getting updates so that all the drivers will be up-to-date. Installing the drivers of the graphics cards of either Radeon or NVIDIA is also a relatively straightforward process with this distribution, and this can be done simply by using the GUI. Solus works extremely well with applications like Steam, Lutris, DXVK, and WINE, and this distribution is an excellent choice for gaming.

Linux Mint

Linux Mint is another Ubuntu-based Linux distribution in the list of the most popular desktop Linux distributions. This distribution is extremely fast and supports a lot of proprietary software, including multimedia codecs. For gamers with an AMD Radeon graphics card, Linux Mint is perfect for you, as the MESA driver comes as part of the Linux Mint kernel. Like with Ubuntu, NVIDIA users can easily install the proprietary NVIDIA driver from the Driver Manager, and you can start installing software like Steam, which, again, are easily accessible from the Software center.

Elementary OS

Elementary OS is also an Ubuntu-based Linux distribution and is known for having one of the most beautiful and awe-inspiring graphical interfaces. Unlike Ubuntu, however, Elementary OS uses the Pantheon desktop environment and offers a very smooth and slick user experience. With Elementary OS, you can easily set up your graphic drivers without much hassle, and you can easily install software like Steam, Lutris, and Wine on your system.

Fedora

Fedora is a Linux distribution developed by Red Hat that offers support for several desktop environments, such as Plasma, XFCE, Cinnamon, and so on. The Fedora Linux kernel is regularly updated, and therefore, Fedora offers great hardware support. Installing software like Steam is immensely easy, and both Radeon and NVIDIA users can install their graphic card drivers without much hassle. Fedora is a solid, stable, and up-to-date distribution that is well-suited to gaming.

Best Linux Gaming Distributions?

Gaming in Linux has become extremely easy. Nowadays, it does not really matter which distribution you use, as long as you know how to obtain and configure all the required software. There is also tons of help available online, and every Linux community is always willing to offer aid to other users. From the large collection of distributions, all of the seven distributions mentioned above are among the most popular and widely-used Linux distributions that are worth considering for gaming.

]]>
WebSocket Example Program https://linuxhint.com/websocket-example-program/ Tue, 19 Jan 2021 19:42:04 +0000 https://linuxhint.com/?p=85913

The WebSocket protocol allows for two-way communication to occur between a client and a server. This process is similar to the way in which calls on your phone take place: first, you establish a connection, and then you can start communicating with one another. The WebSocket protocol is used almost everywhere – from multiplayer browser games to chat applications.

This article shows you how to create a WebSocket protocol and use it to communicate with multiple users.

Prerequisites

Before moving on to the process of creating and using a WebSocket protocol, you first need to install a few things that are required for this process. The first thing that you need to install is Node.js, a server-side platform that converts the JavaScript programming language into machine code that allows you to run JavaScript directly on your computer. To install Node.js, Windows users can simply go to the official Node.js website and click on the green LTS button found in the center of the screen.

For Linux and macOS users, click on the Downloads section in the sub-header of the website.

After opening the Downloads section, you will see installation files for all three major platforms. Select a package that is supported by your system.

Run the installer that comes with the downloaded files, and Node.js will be installed on your computer. To check whether the program has been installed, open the terminal and issue the following command:

$ node -v

After installing Node.js, you now have access to various JavaScript modules, which will make your work more efficient in the long run. Open the directory in which you want to create your client and server architecture, then open the terminal inside that directory and run the following command:

$ npm init -y

This command is used to create the package.json file that allows you to set up and install different Node.js packages. Install the WebSocket protocol package by issuing the following command in the terminal:

$ npm install ws

Create three files, called index.html, client.js, and server.js. As indicated by the names, these JavaScript files are the client and server architecture of our WebSocket protocol. Now, we can finally start writing the code of our client and server applications.

Creating a WebSocket Server

To create a WebSocket server, we will start by writing the code for the server. Open the server.js file that you created inside your text editor or IDE in the previous section and enter the following lines inside the file.

const WebSocket = require('ws');

const ws = new WebSocket.Server({ port: 8080 });

console.log("Server Started");


ws.on('connection', (wss) => {

  console.log("A new Client Connected")

  wss.send('Welcome to the Server!');


  wss.on('message', (message) => {

    console.log(`Server Received: ${message}`);


    wss.send('Got your Message: ' + message);

  });

});

Now, we will explain what each line is doing in greater detail.

Code Explanation

As mentioned previously, there are some built-in modules available in Node.js that make your work much easier. To import these modules, we will use the require keyword.

const WebSocket = require('ws');

const ws = new WebSocket.Server({ port: 8080 });

console.log("Server Started");

The first line is used to import the Node.js WebSocket module. Using this module, in the next line, we create our WebSocket server, which is listening on port 8080. The console.log() line is simply there to let us know that the Server has started. You will see this appear inside your terminal when you run the following command in the terminal:

$ node server

In the next line, we are establishing a connection between the server and the client.

ws.on('connection', (wss) => {

  console.log("A new Client Connected")

});

After a connection has been established, the wss.send() line sends a message to the client. In this case, the message is “Welcome to the Server.”

wss.send('Welcome to the Server!');

Finally, the wss.on (‘message’) is for the server to receive the message from the client. For confirmation, the server sends this message back to the client in the last line.

  wss.on('message', (message) => {

    console.log(`Server Received: ${message}`);

    wss.send('Got your Message: ' + message);

  });

Creating a WebSocket Client

For the client-side, we need both the index.html file and the client.js file. Of course, you can simply add the content from the client.js file into your index.html file, but I prefer keeping them separate. Let us first look at the client.js code. Open the file and enter the following lines inside of the file:

const socket = new WebSocket('ws://localhost:8080');

socket.addEventListener('open', () => {

    console.log('Connected to the Server!');

});


socket.addEventListener('message', (msg) => {

    console.log(`Client Received: ${msg.data}`);

});


const sendMsg = () => {

    socket.send('Hows it going amigo!');
}

Code Explanation

Like with the server.js, we will create a new WebSocket that is listening to port 8080, which can be seen in the localhost:8080 section of the code.

const socket = new WebSocket('ws://localhost:8080');

In the next line, addEventListener makes your client listen to any events that are currently happening. In this case, it would be creating and starting the server. Once the connection is established, the client outputs a message to the terminal.

socket.addEventListener('open', () => {

    console.log('Connected to the Server!');

});

Once again, the client listens to any events currently happening. When the server sends a message, the client receives this and then displays the message in the terminal.

socket.addEventListener('message', (msg) => {

    console.log(`Client Received: ${msg.data}`);

});

The last few lines are simply a function where the client is sending a message to the server. We will connect this to a button in our html file for a better understanding of how this is working.

const sendMsg = () => {

    socket.send('Hows it going amigo!');

}

Preparing an HTML File

Finally, open the index.html file and add a reference to your client.js file inside of it. In my case, I will simply add the following lines of code:

<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <meta name="viewport" content="width=device-width, initial-scale=1.0">

   <title>Client</title>

</head>

<body>

   <button onClick="sendMsg()">Send Message to Server</button>

</body>

<script src="client.js"></script>

</html>

As you can see in the lines below, src (inside the script tag) refers to the client javascript file. The sendMsg function, which was created in the client.js file, has also been connected to the button’s onClick function.

<button onClick="sendMsg()">Send Message to Server</button>

<script src="client.js"></script>

Putting Everything Together

You can now start testing your Client and Server Architecture. First, open the terminal and run the following command to start your server:

$ node server

After starting your server, open the directory in which your index.html file is present, and double-click on it to open it in your browser. You will see the following message appear in the terminal stating that a client has connected:

You can also check the messages sent from the server to the client by pressing the right-click button and then opening the Inspect window. In this window, click the Console section, and you will be able to see the messages sent from the server.

Once you click on the button, both the server and client will be able to send and receive messages to and from each other.

Server:

Client:

Voilà, your WebSocket connection has been established!

Conclusion

The WebSocket protocol is an excellent way to establish communication between a client and a server. This protocol is used in several fields, including multiplayer browser games, chat systems of various social media platforms, and even collaboration processes between coders.

]]>
Top 7 Free Multi-Platform PDF Editors https://linuxhint.com/top-7-free-multi-platform-pdf-editors/ Sat, 09 Jan 2021 20:32:38 +0000 https://linuxhint.com/?p=85094 The recent rise in popularity of eBooks has led to the emergence of several different file formats, of which the most popular and the most widely used is the Portable Document Format, or PDF for short. PDFs are one of the most reliable and efficient formats of documents that can easily be shared across computer systems. These files are also secure enough to prevent people from easily updating file contents. This article looks at seven of the best PDF Editors available on all major platforms.

LibreOffice Draw

LibreOffice Draw is one of the applications that comes included with LibreOffice, a free and open-source office suite. LibreOffice Draw is one of the best multi-platform PDF editors available, as it is completely free and open-source. This application has several PDF editing tools bundled inside of it. It sports a simple and easy-to-use interface that is extremely user-friendly and will look quite familiar to users of Microsoft Word. You can easily change the layout and move around different components and toolbars, according to your style and preferences.

LibreOffice Draw allows you to change page properties such as format, orientation, margin, background, and more. You can add different shapes, such as arrows and rectangles, and change the styles of both text and images. You can manipulate and alter existing content, whether it is a text or an image. The red rectangular region in the image below shows the different sections that you can alternate between:

Image Alter Properties:

Okular

Okular is another excellent free and open-source choice for a PDF Editor. This application was developed by the people working at KDE, and it is the default document reader in the KDE system. Okular is extremely lightweight and offers a very easy-to-use and user-friendly interface that is easily customizable. This PDF editor offers some excellent features, such as text and area selection tools, which allow you to copy and search for the selected text or area.

Moreover, Okular possesses an extremely detailed annotation tool that allows you to add notes, highlight text or images, draw polygons, add or delete text, and even add stamps to anywhere in the document you would like.

Text Selection Tool:

Editing Tools:

Inkscape

Inkscape is a vector graphics tool that is widely used by professional graphic designers around the world. This PDF editor is a free and open-source product that is available for all the major platforms. With Inkscape, you can add or delete text, change the font size and family, draw shapes such as rectangles, lines, etc., and add annotations to your PDFs.

Master PDF

Master PDF is another lightweight and easy-to-use PDF editor that offers dozens of outstanding features to users. You can create, edit, and merge files, as well as add comments and signatures, to PDF files. Master PDF even has an encryption feature that you can turn on to protect your PDF files. This PDF editor also has some powerful annotation tools that allow users to insert notes, highlight text, and add different shapes, such as arrows and rectangles, to PDF files. Master PDF even allows you to edit scanned documents, which is not a feature that is available in many PDF editors.

Foxit Reader

Foxit Reader is a freemium PDF reader that has become immensely popular among the community. This PDF editor is extremely fast and provides some great PDF editing tools to users. Foxit has some excellent annotation tools that allow users to highlight, strikeout, underline, and replace and insert text. Since Foxit is cloud-based, it also allows you to share your documents across systems, promoting collaboration among users.

PDFsam

PDFsam another excellent PDF editor that is available for all the major platforms, including Windows, Linux, and macOS. What sets PDFsam apart from the other editors is that it falls under the second category of PDF editors that allow users to split, merge, rotate, and extract pages within PDF files. PDFsam also contains splitting and merging functions that allow you to split a PDF either by size or bookmarks, as well as merge two or more PDF documents in different orders.

Scribus

Scribus is a free and open-source publishing software that is available for Windows, Linux, and macOS. Scribus provides several different PDF editing tools to users, of which the most notable features include highlighting, moving, and adding text; creating PDFs and lists; and making PDF files more interactive by adding text fields, checkboxes, and more. This is a property unique to Scribus, setting it apart from other PDF editors in this list.

Which Is the Best Multi-platform PDF Editor

There are several great multi-platform options available in the way of PDF editors these days. Each PDF editor offers its own unique features and functions. All seven PDF editors mentioned above are among the most popular and widely used alternatives, each providing users with exceptional features. All in all, any choice from among the above seven would be worth considering.

]]>
Top 7 Amazon S3 Cloud Storage Alternatives https://linuxhint.com/top-7-amazon-s3-cloud-storage-alternatives/ Sat, 09 Jan 2021 19:58:50 +0000 https://linuxhint.com/?p=85083 Given the rapid development that has occurred in the technological sector in recent years, the amount of data that we are dealing with has tremendously increased. More efficient and stable usage of this data requires a large volume of computer storage. As we begin dealing with more and more data, concerns surrounding data security and protection also grow. Since data leakage may lead to major repercussions, such as identity theft, loss of capital, and so on, several measures must be taken to protect our data moving forward.

This is where cloud storage services come into the picture. Cloud storage services allow you to store your data in the cloud, through which you can easily retrieve and access information from anywhere across the globe. One immensely popular cloud storage service is Amazon S3, offered by Amazon Web Services (AWS). Amazon S3 offers some excellent features and is a great choice for a cloud storage provider.

However, S3 itself is not perfect, falling short of some important features and sometimes providing overkill where it is not necessary. This article looks at the best cloud storage alternatives to Amazon S3 that are currently available on the market.

Digital Ocean Spaces

Digital Ocean Spaces is a leading cloud provider that has become immensely popular among developers. This cloud provider allows you to not only store but also serve and access large amounts of data, alongside immaculate performance. Digital Ocean Spaces has an excellent UI that is easy-to-use and user-friendly, allowing you to drag and drop items to your cloud storage with ease. Digital Ocean Spaces is also extremely cost-effective and has a decent pricing plan, which, in the long run, is much cheaper than what S3 offers. This cloud service also provides a built-in CDN feature that helps to reduce latency. Digital Ocean Spaces is even backed by one of the best documentations available, which has been highly praised by users. This service also allows easy integration with other Digital Ocean services, as well as AWS S3 API.

Wasabi

Wasabi is another excellent cloud storage provider that has gradually grown in popularity among the community. This cloud service offers a neat and tidy interface that is quite like what you would get with S3. Thus, Wasabi is often placed as a direct challenger and competitor to Amazon S3. Wasabi also offers services with much lower costs than S3, along with the same storage capacity as well as faster file transfers and no additional costs of egress and API requests.

Another strength of Wasabi is the availability of security and durability features. Wasabi offers security features, such as two-factor authentication and end-to-end encryption, to keep your data safe from corruption and degradation.

Azure Blob Storage

Azure Blob Storage is an enterprise-level cloud storage provider and comes closest to Amazon S3 in terms of the features that it offers. The Azure cloud service is a Microsoft-based product, which guarantees reliable and high-quality performance to its users. Azure offers a very secure system wherein your access management and storage keys are safely stored and not publicly exposed.

Moreover, the redundancy options that Azure provides allow you to keep your data safe in case of loss due to natural disasters, accidents, or other factors. Azure offers multiple pricing plans, each of which is dependent on several factors, including storage tier, region and availability of storage, amount of data to store, and so on.

Google Cloud Storage

Google Cloud Storage is another enterprise-level cloud provider that exists in the same league as Amazon and Azure. This cloud service has one of the largest networks in the world, as well as high-quality performance, allowing users to use their storage with less downtime and latency. Google Cloud Storage also has an excellent pricing plan, which, as with Azure, depends on several factors, including storage, network, and more. However, Google Cloud Storage is much more economical when large amounts of data need to be stored. This cloud service is also highly secure and offers integration with many GCP products.

IBM Cloud Storage

IBM Cloud Storage is another enterprise cloud storage provider that deserves a place on this list. This cloud storage service is extremely scalable, flexible, and simple, with high-quality performance that allows users to store large amounts of data with ease. IBM Cloud Storage sports an easy-to-use interface that is highly interactive and allows easy migration of data to and from system storage.

IBM Cloud Storage comes with a very rich documentation, along with an excellent support system that is always there to guide users. This service has a payment plan like AWS, offering a pay-as-you-go system that is dependent on multiple factors for cost.

Vultr

Vultr is a new player in the field, having only come into the picture in 2019. However, Vultr has grown significantly in recent years, and now boasts several datacenters across the globe. Vultr offers high-quality performance, along with an extremely reliable and efficient system. This cloud system offers features such as automatic backups, scheduled backups, and several extensive tools that allow you to manage your storage in a more well-organized manner.

Moreover, Vultr comes with one of the best billing systems, which charges users only when the server is turned on, along with a few other nominal charges. Vultr even has a professional support system that is always ready to help and guide users.

Linode

Linode is a cloud storage provider that exists in the same bracket as Vultr and Digital Ocean. Like Vultr, Linode is relatively new in town, but the cloud service has expanded vastly in recent years, gaining a huge presence across the globe. Linode boasts excellent performance and offers a robust set of tools to help you in deploying your server swiftly to the cloud.

Linode is extremely flexible, easy-to-use, and it offers multiple pricing plans to users from which users may choose whichever plan is best tailored to their unique needs. Linode also has an excellent assistance guide that offers in-depth explanations of the services provided.

Best Cloud Storage Alternative to Amazon S3

There are several great cloud storage options available for users these days, each of which offers its own unique and useful features. All seven cloud providers mentioned above are among the most popular and widely used alternatives, each providing users with exceptional features and efficient service. All in all, any choice from the above list would be worth considering.

]]>
7 Best Multi-platform Text Editors https://linuxhint.com/best-multi-platform-text-editors/ Fri, 08 Jan 2021 06:10:11 +0000 https://linuxhint.com/?p=84863 Technology has become a key part of our lives, as everything is gradually becoming digitized, and our lives are being enveloped by it. Seeing how technology has grown to have such a major role in our lives, it comes off as no surprise as to the popularity that the field of Computer Science is receiving. Today’s demand for developers and technical experts has exponentially increased in the market and shows no signs of slowing down.

Computer Science itself has seen a large progression in its content as numerous subfields are being introduced. However, one aspect that has always been in the limelight is programming, which sits at the crux of stuff like game development, animations, mobile and web applications, social networking sites, etc.

Hence, our discussion topic in this article is to look at the best multi-platform text editors currently available.

VS Code

VS Code is one of the most popular text editors these days. Although it is a Microsoft product, it is open-source and is easily available for all major platforms such as Windows, Linux, Mac OS, etc. VS Code is unlike other text editors. It offers much more than what a traditional text editor does and has some of the best features, some even rivaling those that come with the Integrated Development Environment (IDEs). It is extremely stable and fast and has a very customizable user interface that users can easily configure and tweak according to their interests.

Features such as auto-completion, color highlighting, snippets, code refactoring, and syntax highlighting are clear indicators of the power that sits behind the hood of the VS Code. Moreover, it is highly versatile and has several keyboard shortcuts, themes as well as a variety of extensions.

VS Code also comes along with a built-in command-line interface, a debugger, and integration with Git, which allows users to easily perform tasks such as making commits, cloning repositories, and pushing the updated data to the GitHub repositories.

Built-in Terminal:

Source Control:

Sublime Text

Sublime Text is another excellent choice for a Text Editor. It is a simple, multi-platform editor that, although it isn’t free, still has one of the largest communities in the industry. It is mainly known for its high-speed performance and stability and is a perfect fit for users who prefer performance and simplicity over other extensive features. It has a pretty slick user interface that is extremely flexible and customizable. You can customize everything about Sublime Text – from the color scheme to the font size, the key bindings to the syntax highlighting rules, and so on.

In addition to this, Sublime Text is bundled with a wide set of features such as having support for programming languages and file types in the two-digit figure range, multiple cursors as well as an innovative command palette that allows for easy navigation and an efficient searching system. It also has a package manager, which has a large number of packages that offer even more functionality to the already powerful editor.

Atom

Atom is an Electron-based free and open-source code editor that is available for all major platforms such as Windows, Linux, and Mac OS. Similar to VS Code and Sublime Text, it has a package manager having support for thousands of packages, which offer more extensibility and functionality to Atom. Furthermore, it is highly customizable and comes with features such as auto-completion, powerful searching feature, and embedded Git.

Editing features:

Embedded Git:

Vim

Vim is one of the oldest and one of the most popular text editors out there. Although it is more popular among Linux users, it is also available on Windows and macOS and is a good choice to have if you want fast performance and simplicity. It is an extremely powerful editor, with most of its power lying in it being highly customizable and extensible. It does this by offering users an abundance of plugins that allow them to easily tweak and configure it. Vim also has some amazing features such as Undo Tree, a powerful search and replace the system, and multiple window editing, all of which are extremely useful for programmers.

Emacs

Similar to VIM, Emacs is another old but highly popular text editor that is not only multi-platform but free and open-source as well. Emacs is often compared to an operating system and with good reason, as it is a fully-fledged machine, having support for a command line, an email client as well as the Git version control. It is also extremely customizable and can easily be molded in any form that suits your taste. In addition to this, it also has a large collection of plugins, each of which offers numerous features akin to those you can find in integrated development environments. Emacs also provides users with high-level built-in commands that allow users to perform multiple tasks like moving cursors or manipulating text.

Geany

Geany is a small and lightweight text editor that users of Windows, macOS, and Linux can use and run their code. It has support for a large number of programming languages and is integrated with several excellent features such as syntax highlighting, code folding, auto-completion, and code navigation. It has a simple and easy to use interface that is extremely user-friendly and resembles closely that of Notepad++. It has some basic IDE features as well, where it offers users a build system for compilation and execution of code.

Bluefish

Bluefish is a powerful multi-platform text editor that offers support for many programming as well as markup languages. It is extremely lightweight and has a very easy to use and user-friendly user interface. It has a variety of features integrated inside of it, the most notable ones being auto-completion, syntax highlighting, code folding, code navigation, and spell checker. Having been designed to suit the needs of both web developers as well as programmers, it has dialogs available for creating HTML5, CSS, tables, forms, and so on.

Which are the Best Multi-platform Text Editors?

There are several great multi-platform options available for text editors these days, each of which offers excellent features that match up to the standards of IDEs. All seven mentioned above are among the most popular and widely used alternatives, each providing users with exceptional features. All in all, any choice from among the above seven would be worth considering.

]]>
3 Best Free and Multi-Platform FTP Clients Usable on Linux https://linuxhint.com/3-best-free-and-multi-platform-ftp-clients-usable-linux/ Thu, 07 Jan 2021 03:29:06 +0000 https://linuxhint.com/?p=84794 Oftentimes, when we have to transfer files from one computer to another over the Internet. This is done using the File Transfer Protocol (FTP) that is built upon the client-server architecture in which the client is the one requesting the files and the server is responsible for listening to these requests and allowing the client to perform various operations such as uploading or downloading of files from them.

These FTP Clients are therefore excellent tools to have for people who have their own blogs or websites as they can be in full control of uploading various content onto their medium. In addition to this, for people who want to download multiple files simultaneously, FTP Clients come in handy.

Therefore, the topic of our discussion in this article will be to look at the best, free, and multi-platform FTP Clients for Linux.

FTP Clients

Linux has a large collection of FTP Client tools, some having GUI for interactivity and some preferring the command line. We will be looking at both of these in this tutorial. With that out of the way, let us finally start looking at some of the best FTP Clients currently available on Linux.

FileZilla

FileZilla is one of the best multi-platform FTP clients and is well-deserving of coming first in this list. It is extremely reliable and supports several protocols such as FTP, FTPS, as well as SFTP. On top of being user-friendly and easy to use, FileZilla has a highly customizable interface, which can easily be configured according to your interests. It also supports drag and drops, and so you can simply transfer your files with a few clicks.

FileZilla also comes packed with an extremely powerful Site Manager, which allows users to save information about their FTP servers.

As seen from the image above, you change the Protocol type, the Encryption type, the Login type you want for your FTP site, as well as the background color. You can add multiple sites to a single folder, create new folders, as well as add to them. The Site Manager also has an Advanced and Transfer Settings tab where you can further change the settings of your connection. In the former, you can customize the Server type, add directories of your starting default directory as well as remote directories, and even adjust the times being displayed for your files.

In Transfer settings, you can change the transfer mode and add a limit to the maximum number of connections that you want to connect to simultaneously.

FileZilla also comes with a Bookmark Manager, which allows users to not only add bookmarks but also keep track of them. It provides various options such as duplicating your bookmarks, enabling synchronized browsing, as well as directory comparison.

All in all, FileZilla is an extremely powerful FTP client that gets the job done efficiently.

CrossFTP

Another excellent FTP Client for Linux is CrossFTP, the free and powerful FTP and Amazon S3 client. Similar to FileZilla, it is multi-platform and is available for Linux, Windows, and macOS. CrossFTP includes support for a variety of protocols such as Amazon S3, Amazon Glacier, SFTP, FTPS, and FTP, all of which are highly secure and versatile. Although its interface looks old school, its two-pane interface is extremely easy to use and is packed with several useful functions.

CrossFTP also comes with a Site Manager where users can change the protocol of their FTP site, add remote and local paths, as well as comments about the site.

It also has an FTP section where you can change settings like the type of Server, the Transfer, and the Connection mode, as well as the Encoding of the server.

There is also a Security section that comes with CrossFTP’s Site Manager, but that, along with queue management, scheduler, and synchronizer, is only available in its PRO version. CrossFTP also allows users to download multiple files in batch using its Batch Download option.

In addition to this, CrossFTP comes with Password Encryption with which users can protect their FTP sites.

NcFTP

NcFTP is another FTP client that deserves a name in this list. However, unlike the previous alternatives, NcFTP is a command line interface program that is available for almost all major platforms, including Windows, macOS, and Linux. Unlike the default FTP client, it has several more features, making it an extremely great choice for users who prefer working on their terminals.

As seen in the image above, connecting to an FTP Server with your username and password can easily be done using the -u and -p flags.

The amazing thing with NcFTP is that when you’re transferring large files, you have the option of resuming the session from exactly where it failed. This is highly beneficial if your network goes down or an issue arises, as you won’t have to start from zero, and hence, it will save you time.

NcFTP also allows users to run FTP jobs in batch, which saves a lot of time since you don’t have to wait for the previous job to complete before running the next one. This can be done by simply making use of the ncftpbatch command.

Conclusion

FTP Clients are immensely important in transferring files from one computer to another over the Internet. All three mentioned above are among the most popular and widely used FTP Clients and are jam-packed with a variety of exceptional features. Each one is highly efficient in the work that they do and is clearly worth considering.

]]>
How to Format Your USB Drive as FAT32 in Linux https://linuxhint.com/format-usb-drive-linux/ Sun, 27 Dec 2020 12:09:20 +0000 https://linuxhint.com/?p=83008

Linux is an extremely stable and powerful operating system that has become quite popular among the community. With it being open-source and free to use, Linux has rapidly grown and has garnered a large audience in its user base. The beauty of Linux is that it offers a variety of tools having the same kind of functionality and this is the same case with formatting your USB drive.

There are several excellent tools out there that allow Linux users to easily format their USB drives, which can be divided into either the command line category or the graphical interface category.

In addition to this, there are several file systems in which your USB drive can be formatted and for our USB device to have maximum compatibility with other devices, FAT32 is the way to go.

Therefore, in this tutorial, we will be discussing how one can format their USB drives as the FAT32 file system in Linux.

Formatting your USB Drive

Before we move onto the process of formatting our USB device, we first need to locate it. This can simply be done by entering the following command into the terminal:

$ lsblk

In my case, it will be the device found inside the rectangular region (/dev/sdb/):

After locating your device, we can now move onto the main process where, from the large collection of tools that Linux offers, we will be looking at two ways how users can format their USB drives in Linux.

Formatting your USB Drive using GParted

GParted is a partition editor that is responsible for creating and managing disk partitions which may include reorganizing as well as deleting partitions.

a) Installing GParted
First, we need to install GParted on our Linux systems which can be done by entering the following command into the terminal:

$ sudo apt install parted

To verify if it has been installed, you can simply do so by running the following command:

$ parted --version

b) Wiping your Data by Adding Zeros (Optional)
The next step is to completely wipe out all data present on your USB device so that it cannot be recovered later by using any recovery tool. This, however, is an optional step and you can choose to skip this if you like. However, for security reasons, it is highly recommended that you go ahead with this. This process can be done by simply running the following command into the terminal:

$ sudo dd if=/dev/zero of=/dev/sdb bs=4096 status=progress

Over here, you need to replace the /dev/sdb part that comes after of= with the target location of your USB device which you discovered previously.

c) Creating and Formatting your USB Device
Now, we finally arrive at the crux of the process. Over here, firstly, we have to the unmount /dev/sdb1 (use the location you found above) USB device on your system as we cannot format a mounted device. This can be done by using the following command:

$ sudo umount /dev/sdb1

Next, we will create a new partition table where we also have to mention the type of partition table that we want. In our case, this will be msdos. To do this, simply run the following command in the terminal:

$ sudo parted /dev/sdb --script -- mklabel msdos

Now, we have to create the partition where we will be specifying the partition type, the file system that we want our USB Device to be as well as the size that our partition will cover. In our case, we want our USB device to be of the FAT32 file system, primary partition type, and want the whole USB size for our partition. This can be done by using the following command:

$ sudo parted /dev/sdb --script -- mkpart primary fat32 1MiB 100%

Once this is done, we can finally format our USB device to FAT32 using the mkfs command which is the following:

$ sudo mkfs.vfat -F32 /dev/sdb1

Note, over here, we used the /dev/sdb1 location rather than the /dev/sdb location which we were using before. This is because over here we do not want the disk part of our device to be formatted.

To check if your device has been partitioned correctly, run the following command to print the partition table:

$ sudo parted /dev/sdb --script print

And voila, that completes the entire process. You will now find your USB device completely formatted.

Formatting your USB Drive using Disks

For users more comfortable with the Graphical User Interface, Disks is a disk management tool that comes preinstalled with Ubuntu and almost every other Linux system. To open this, simply search for it in the Dash and click on it once its name appears.

After the Disk utility opens, first choose your device which you want to format from the available ones shown in the Disks application. In my case, it will be the following:

Over here, click on the gear icon present below the Volumes section and then select Format Partition from the choices given.

Gear Icon:

Format Partition:

After selecting this option, this will open a window, asking you to enter your new partition name as well as the type of your file system. Since we want our device to be of the FAT file system, we will select the following:

Next, confirm your details and once you’re sure everything is okay, click on the Format button on the top right-hand side as pointed by the arrow shown in the image below.

And voila, that completes the entire process. You will now find your USB device completely formatted.

Conclusion

As seen from the methods above, formatting USB drives on Linux is an extremely easy process. You just need to connect your device, choose the type of file system you want, and simply run the commands on the terminal or use the Disks utility to format your device. Of course, there are several other tools that you can use for formatting your USB devices but those shall be left for future tutorials.

]]>
How to Back Up Your Data in Ubuntu https://linuxhint.com/back-up-data-ubuntu/ Sun, 29 Nov 2020 18:23:14 +0000 https://linuxhint.com/?p=78586 In the present era, technology has become a core part of our lives, as devices such as smartphones, computers, tablets, and more are being used every day. As technology becomes more and more advanced, it has turned out to be a huge blessing for us as our lives are becoming easier and much more efficient.

However, the Internet has also paved way for issues such as data breaches and identify theft, which, as time goes on, have become increasingly more frequent and more hostile. Our data is constantly under threat of becoming exposed and leaked. Even if security breaches do not occur, there are often cases where data is lost due to accidental deletion or hard drive crashing, which can cause users to lose their valuable stored information. It is imperative to implement backup strategies to keep a record of your data and avoid losing all your information. This article shows you how to back up your data in the Ubuntu operating system.

Tools to Use for Backing Up Data

Linux offers a wide array of tools for all kinds of applications and activities, including servers, games, and more. It is the same case with backups. There are numerous collections of excellent tools that allow users to make backups of their data. Some great command-line-based backup tools include rsync and timeshift, which are extremely straightforward to use.

For users who prefer having a graphical interface to work with, Déjà Dup, a powerful GUI tool for backups that comes preinstalled with Ubuntu, is the best option to go with. It has almost every feature that you may require in a backup software. From offering support for local, remote, and cloud backup locations, to having facilities like built-in encryption support and backup scheduling, gives Déjà Dup an edge over the many alternatives. We will use this tool to perform a backup of our system.

Backing Data using Déjà Dup

Déjà Dup comes preinstalled with the latest Ubuntu versions. However, if it does not seem to be present, run the following command in the terminal to install it on your systems:

$ sudo apt-get install deja-dup

To open Déjà Dup, search for the application in the search bar and an application with the name ‘Backups’ with a safe icon will appear in the results.

Click on the safe icon to open the application. The window that opens will be the Overview window, which will look something like this:

Before clicking the Back Up Now button to start the backup, it is better to specify the folders of which you want to make a backup, first. To do this, click the Folders to save tab under the Overview option, and the following window will open:

As seen in the image above, currently, Déjà will only make a backup of your Home folder. To add more folders to this section, use the plus icon found at the bottom of the window.

This will then open a new window asking you to choose the folders that you want to add to the backup folder list. After adding a new folder, it will look something like this:

Similarly, you can remove folders from this window using the button with the minus sign icon. For example, in the above image, to remove the Home folder, I will click the Home folder, then press the minus icon button to remove it.

After removing the Home folder, the Folders to save tab will look something like this:

Déjà Dup also allows you to specify folders that you do not want to add to your backup folder list. To do this, click the Folders to ignore tab, and then, just like when we added folders into the backup folder list, the process for adding folders that will be ignored by the backup tool is very similar. Using the plus and minus icon buttons, you can add or remove folders from this tab.

You can also specify the location where you want to store your backup. Déjà Dup offers support for multiple storage locations, including Google Drive, Network Servers with protocols (such as FTP, SFTP, SSH, etc.), as well as locally on your machine.

Google Drive:

Local Backup:

For a network server to be used as a storage location, the server must have a network location that supports the following network protocols:

One of the best features that Déjà Dup offers is the option to perform scheduled backups. To do this, go to the Scheduling tab and then click the button next to Automatic backups to turn this feature on.

From the options available, you can either choose to perform backups every week or every day. You can also keep a record of your backups forever, or for a period of either six months or a year.

Backup Times:

Record of Backups:

Finally, after adjusting the settings, to start the backup, go to the Overview tab, and then click the Back Up Now button.

If you have chosen the Google Drive option in the storage location, you will be asked to grant access to your account.

This will start the backup process.

You can also encrypt your backup with a password to keep it secure. However, note that if you forget your password, you will not be able to access your backup.

After setting this up, click Forward to finish the backup process. You can also look at the folders being backed up by clicking the Details button.

Once your backup is completed, you will receive a notification, and the backup process will close and take you back to the Overview tab. Now, you can simply restore your backup by clicking the Restore button in this tab.

After clicking Restore, you will be asked where you want to restore your backup from.The available backup locations from which you can restore your backup include the following:

Once you have chosen your location, click Forward, after which you will be asked to input the date of the backup from which you want to restore.

Click Forward after you have chosen the date. In the next window, you must specify where you want to restore your backup to. This can either be to your original location or another folder.

To move to the next step, click the Forward button, which will lead you to the Summary page. Here, verify all your information, and if you are satisfied, click the Restore button to start the restoring process.

After this, you can find your restored backup inside the folder you specified.

So, Why Should You Backup Your Data?

Backups have become necessary in the last several years, as there is always the threat of ransomware and security attacks looming. Backups allow us to keep all our files safe and helps in restoring them after data loss occurs. I hope you found this article helpful for backing up your own Ubuntu system.

]]>
Most Popular and Essential Linux Applications for 2021 https://linuxhint.com/most-popular-essential-linux-applications-2021/ Sat, 28 Nov 2020 18:21:23 +0000 https://linuxhint.com/?p=78445 One of the best things that come with Linux is its large collection of applications and tools. Linux has established a respectable name for itself and is well known for having some of the most excellent and stable applications, several of which are free and open source. 2020 has been another excellent year for the production and development of several amazing and outstanding applications, and the story is mostly going to be the same next year, as well. This article covers the top 10 applications that are expected to be extremely popular in 2021.

1. Firefox

Firefox is one of the best web browsers available today. Firefox is a free and open-source web browser developed by Mozilla, and it is the default browser for several Linux distributions, such as Ubuntu and Linux Mint. The excellence of Firefox can be seen in the extensibility that it offers, while at the same time offering secure privacy to its users. Firefox provides some of the best features that one can find in web browsers, along with excellent support for syncing features, such as browsing history, bookmarks, etc. Firefox also comes with extensions, which further add more customizability and features to the already jam-packed browser.

2. LibreOffice

Even though Microsoft Office is not available in Linux, Linux users need not worry. Linux has its own excellent application for getting work done, called LibreOffice. LibreOffice is a free and open-source application that contains some extremely powerful tools, including a word processor, a spreadsheet, a presentation-making software, and several others. Moreover, LibreOffice allows users to add bookmarks to their workflows so that they can keep track of their work, supports a large set of file formats, and has excellent performance to boot.

3. VS Code

Computer Science is one of the hottest fields in the industry right now, and programmers are one of the most sought-after professions. For both those just starting off with development, as well as professional developers, VS Code should be the first choice when it comes to a code editor. VS Code is an application developed by Microsoft that is free and open-source. It has some of the best features that a programmer needs, and even offers a built-in debugger, a support system for Git, and a large set of extensions that provide support for several programming languages.

4. VLC Media Player

VLC Media Player is another application that deserves a place in this list of essential Linux applications. Though Linux comes with a built-in media player, VLC offers twice the number of features present inside of the default player. VLC has a large, extensive support system for file codecs, including MP4, AVI, MP3, etc. VLC is extremely lightweight, despite having a huge set of features, as well as highly customizable, which clearly shows the power and quality that exist behind this amazing tool.

5. Thunderbird

Thunderbird, a free and open-source application, is another Mozilla Foundation product that has earned its spot in this list. Thunderbird is one of the best email clients available for Linux. With a majority of companies switching to online systems and adopting digital communication, email has become essential in almost all departments. This is why Thunderbird is essential to have in your Linux system, as it helps to keep your emails secure. Thunderbird also provides support for add-ons with which users can easily customize the application, further testifying to its powerful nature.

6. Flameshot

Flameshot is a powerful and open-source screenshot application available for Linux, offering all the features that are essential for a screenshot tool. Flameshot is extremely easy-to-use and can be executed either from its graphical interface or from the command-line. Having markup tools such as freehand drawing, creating arrows and lines, highlighting, blurring, etc., make this application not only my personal favorite screenshot tool but also for millions of other people.

7. XDM

The amount of content that we are downloading from the Internet has greatly increased. Whether these are attachments, videos, or games, all are extremely important and urgently needed as soon as possible. This is where XDM comes into the picture, which is an extremely powerful download manager that can easily be integrated into web browsers such as Chrome, Firefox, and Opera. XDM also supports downloading files from websites such as YouTube, Facebook, DailyMotion, and more. The application even has a built-in video converter that you can use to convert the file formats of downloaded videos.

8. Timeshift

With security attacks becoming quite popular in recent times, it is always essential to make backups of your data. Timeshift for Linux comes highly recommended, as it not only allows you to make backups of your files but also provides functionality similar to what you get with System Restore in Windows. In other words, Timeshift does not just backup all your folders and applications – but your entire Operating system – all inside a single snapshot.

9. GIMP

Despite its low entry barrier, graphic design is considered one of the most sought-after skills in the world, and this field also occupies a huge portion of the freelance industry. Although Adobe products are not available in Linux, Linux itself offers an excellent application called GIMP that has one of the largest communities and some of the best features you can find in a photo editor, some of which you may not even be able to find in its Adobe counterpart.

10. OpenShot

Creating videos and uploading them on the Internet is one of the most popular hobbies that you can find on the Internet today. From YouTubers to TV Media, all require applications with which to edit video in the most creative and effective way. OpenShot is an excellent video editor available in Linux, and it comes with one of the most amazing and largest feature collection sets that you can find inside a video editor.

Conclusion

Linux is one of the best-operating systems these days, and it continues to improve after each update. With so many Linux distributions out there, it is imperative to know which applications to use to have the best experience possible. This article covered the ten most essential Linux applications out there to keep an eye on in 2021.

]]>
5 Best Free and Open source NAS Software for Linux https://linuxhint.com/best-nas-software-linux/ Fri, 27 Nov 2020 06:41:27 +0000 https://linuxhint.com/?p=78335

In the 21st century, huge innovations have been made in various sectors, particularly the technological region, which has completely changed the world’s dimensions. The strides at which new technology has been developed and improved upon from its predecessors would surely be something that our ancestors would marvel at.

Humans have gone in a very short time from making stone arrows and straw huts to developing smartphones and automated robots, and these advancements are continuously growing without slowing down. However, this huge transition has also brought forward some adverse effects as our machines are now subjected to more cyber-attacks and security issues. Data is one of the most important factors in the world today, and it is exactly that which is the most vulnerable.

Therefore, it is necessary to implement procedures that would help in keeping your data secure. One excellent way is to use NAS software, which helps in keeping backups of your data. This shall also be the topic of our discussion in this article, where we will be looking at the top 5 free and open-source NAS software available on Linux.


FreeNAS

FreeNAS is considered to be one of the most popular NAS Softwares out there. It is free and open-source software that has been around since 2005 and has accumulated close to 10 million downloads. It has been based on the FreeBSD operating system and makes use of the ZFS file system, which is an open-source file system management software, offering various unique features that make it highly rated in the community. FreeNAS has some of the best features that you can find in NAS devices, such as data snapshots, a self-repair file system, encryption on their data volumes, and so on. It also has a large support system for file sharing methods, making use of protocols like SMB/CIFS, AFP, NFS, FTP, etc. It is extremely easy to use due to its catchy and user-friendly user interface, and its functionality can even further be extended by making use of its plugin system.

Open Media Vault

Open Media Vault is a Debian-based NAS software that, similar to FreeNAS, has been around for some time and has established a large community as seen by its close to four million downloads. It is free and open-source software and gets updates quite regularly, making it a very stable NAS software for Linux OS. It supports many network protocols like FTP, Samba, NFS, Rsync and can easily be set up as a media server for DAAP and Plex, as well as a BitTorrent client. It shares some features with FreeNAS like storage monitoring, file sharing, and disk management and supports multiple file systems like ext4, JFS, and XFS. It has a very clean and user-friendly web interface, which can further be enhanced by using its plugin directories.

Amahi

Another excellent choice is Amahi, a home-based Linux server that has been based around the stable Linux distribution, Fedora, and comes integrated with it. Unlike FreeNAS and Open Media Vault, Amahi is more of a simple media server that has been designed to be as simple as possible for its users. It is meant to be a headless server that is switched on 24/7 and be set up as backup servers, VPN servers, etc. Amahi offers some of the best features to its users, such as file sharing, reliable backup system, disk pooling, and even supports file system protocols like ext4 and XFS as well as file sharing protocols like Samba and NFS. It has an extremely user-friendly web interface and is an excellent choice for people wanting to set up simple home-based Linux servers.

Rockstor

Rockstor is another name that deserves a shout out in this list. It is designed for NAS on the Linux distro Cent OS and uses the BTRFS file system, which possesses several similarities to ZFS, the file system used by FreeNAS. Rockstor has a very simple and compact web interface, and unlike the other mentioned NAS software, it also has a monitoring system installed inside of it, which is one of its key features.

In addition to this, it provides support for numerous file systems such as Samba, NFS, etc., as well as protocols like NTP, SFTP NIS, and so on. One of the best things that Rocktor provides to its users is its plugin system, which has a variety of different plugins, more well-known by the name Rock-ons. You can even use Rocktor as your very own personal cloud server. For users that prefer the Cent OS and Redhat environment and want a robust NAS software, Rockstor is the way to go.

Openfiler

Openfiler is the last name in our NAS software list and is one of the best developed NAS software for Linux users. Similar to FreeNAS, it is another software widely used in large enterprises and is based upon the Linux distribution, CentOS. It supports a large collection of file system protocols like NFS, FTP, Rsync and is extremely scalable, having support for approximately sixty terabytes of memory. Its management is completely web-based, making the work of the administrators extremely easy. Having features like virtual machine storage, support for media servers, and heterogeneous file sharing makes it an excellent choice for professionals who want to have more control over their data.

Which are the Best Applications of NAS Software on Linux?

Since the amount of data that we use regularly keeps on increasing every day, NAS software is good alternatives for keeping your data secure and stored, and Linux is the abode for several of these amazing software. For companies and people who prefer storing their data on such servers, all the names mentioned above are excellent choices to consider.

]]>
How to Record Your Gnome Desktop in Ubuntu with built-in screen recorder https://linuxhint.com/record-gnome-desktop-ubuntu/ Fri, 27 Nov 2020 06:21:37 +0000 https://linuxhint.com/?p=78367

In the present era, the lives of the people have undergone a huge change from what it used to be a couple of years back. In the educational sector, books have fallen down the pecking order, and people now prefer watching videos explaining the concepts of their syllabus. A great example of this is YouTube, where videos on things like programming languages, economics, political science, and even geography are getting many viewers. The business sector has also gone through some innovation as now people can easily keep a record of important voice calls and conferences that might be needed for looking at the main highlights of the meeting. Even recording presentations and then sharing them with your clients or bosses have become the norm as this allows information to be passed from one to another in a much more efficient manner. All of these are just a few examples of why screen recorders are one of the most useful tools out there. Screen recorders can even be used for recording content that many people may find enjoyable, such as recording a game that might be on the rise in popularity or put up videos to explain any issues or problems that you might come across in your life, like checking to see how one can remove and adjust tires from a car. Hence, our discussion topic in this article is to look at how one can record their screens in Ubuntu using its default built-in screen recorder.

Tool to Use in Recording your Screen?

Linux has always been known for having a large set of tools available with similar functionalities, and the same is the case with the screen recording. There are several excellent applications that allow users to record their screens and play with them as much as they want. Kazam, OBS Studio, SimpleScreenRecorder, etc., are just a few examples of screen recorders that offer dozens of excellent features and are good choices to consider. However, rather than switching to installing applications, Ubuntu has a very excellent built-in screen recorder that comes preinstalled with it. It requires no application, no command-line option for running it, and has no long hassle of activating it. This easy to use and simplistic nature makes it a great alternative to have for screen recording and is worth looking at.

Packages to Install (Optional)

Before we move onto the process of using Ubuntu’s default screen recorder, there is one step that you can follow, which is completely optional but will help you later on if you are dissatisfied with the initial settings of the default screen recorder of Ubuntu.

To change the settings of Ubuntu, Dconf Editor is a graphical editor that allows you to tweak the parameters of your Ubuntu system. It is an extremely powerful editor that provides several functions to users that allow them to change the configuration settings of your system and provide a back-end to the applications settings API called Gsettings. Dconf Editor does not come preinstalled with the latest versions of Ubuntu, so to install it, run the following command into the terminal:

$ sudo apt-get install -y dconf-editor

Recording your Screen


The process of recording your screen in Ubuntu using the default screen recorder is extremely easy. There is neither a shortcut for running the application nor any hidden application available. Rather, you can simply run the recorder by pressing the keyboard keys Ctrl + Alt + Shift + R. You will be able to see if the recording has started from the orange dot that will appear on the top of your screen in the tray area.

The duration of the recording, however, will only be active for thirty seconds (the 30s), and after that, it will automatically end. You can also manually stop the recording by once again pressing the keys Ctrl + Alt + Shift + R. The recordings from the screen recorder will automatically appear inside the Videos folder inside your Home folder once it ends. The recording will be saved in the webm file format, and that is the only format it supports. Default media player that comes preinstalled with Ubuntu does indeed support the webm file format.


The duration limit, however, is extremely small and not useful for making presentations or tutorials. To change this, open your Dash, where all your applications are installed, and write dconf editor in the search bar. When it appears, simply click on it to open it.

The editor will start by opening the following window:

Click on the gnome button at the top and then move the cursor down to the settings-daemon option and click on it.

Gnome Button:

Settings-daemon:

Next, click on plugins.

Now, inside the plugins menu, look for the media-keys option and click on it.

Scroll downwards till you find the max-screencast-length and click on it.

To change the duration size of your screen recorder, uncheck the default value button and then enter the value of the duration you want the recording to go to inside the text field next to the Customs value label. For having a recording with no time limit, simply enter 0. Click on the Apply button to make this change permanent, as seen in the circled area below.

For users more comfortable with the command line, you can also change the screen recording duration limit by entering the following command into the terminal:

$ gsettings set org.gnome.settings-daemon.plugins.media-keys
 max-screencast-length Length

Length here refers to the duration limit of the recorder you want to set.


So, Why Record your Screen?

Recently, it has become popular among people to record their screens for their presentations, educational videos, and even gaming walkthroughs. For people that prefer simple to use screen recorder and do not want to get into the hassle of installing a new one, Ubuntu’s default screen recorder is an excellent alternative to have.

]]>
Installing and Using LastPass on Linux https://linuxhint.com/lastpass-linux/ Wed, 18 Nov 2020 18:56:24 +0000 https://linuxhint.com/?p=77249 Because security is such a huge concern, it is important to implement procedures that can keep your data secure. In this article, we will discuss password managers, which can be employed to keep your data secure, and we will show you how to install and use the LastPass password manager.

1. What is LastPass?

LastPass, which is a freemium password manager developed by the LogMeIn team, stores all the usernames and passwords from the computers and mobile phones using it in a vault for the next time they are needed to access a website. LastPass gives you control over your sensitive data and saves all kinds of information, including credit card and address data. In addition, LastPass automatically fills in your usernames and passwords and logs you into websites. LastPass has a free version and a paid version, with the former having a large set of features that many paid versions of other password managers do not possess.

2. Installing LastPass

The installation process is extremely simple. First, open the official LastPass website and click on Get LastPass Free on the right side of the screen.

After clicking the red button, a screen will open to ask you to Create an Account. Here, it is necessary for you to have an email address and a strong password that meets a certain set of requirements.

 

For users that already have an account, simply click on the Log In button to open it.

After creating your account and logging in, LastPass provides the option to install a browser extension:

If the timer runs out, then it leads you to the official Firefox Add-on page of LastPass:

You can also use the Universal Installer of Linux to install LastPass and other download links provided on its official Download page.

3. Using LastPass

After downloading LastPass, you will see a red square icon with white dots in the add-on area.

LastPass prompts you to add passwords to the vault whenever you log into a website. Here, you can edit the settings to never save passwords for a website or to add a folder name.

Initial Prompt:

Editing:


Passwords can also be manually added to LastPass. To do this, click on the LastPass icon in your browser and then select the Open My Vault option.

Once in your vault, click the plus button on the bottom of your screen to add an item.

Then, there will be multiple options for you to select from; simply click on the item you want to store in LastPass to add an item.


After clicking an option, you must input all the necessary information in the window that pops up. The Add password window is shown below.

Advanced options, such as autologin, autofill, and the ability to add the password item to your favorites, are available, as highlighted below:



After adding passwords and other sensitive data to your vault, your vault will look something like this:

If you have a large set of collections in your vault, then you can locate a specific one by looking in its category:

You can also import and export your vault collections. To do this, first click More Options and then Advanced, where you will find the import and export options along with several others.

More Options:

Advanced Options:

LastPass also offers a way for you to share your passwords with others. Simply search for the website whose password you want to share and click the share icon.


A prompt will ask you to enter the email address of the recipient. In the Sharing Center, you can check the shared elements, which may include the items shared with us, the items we shared with others, and the folders we shared with several people (this is a premium option):

 

LastPass even allows you to add emergency contacts (this is also a premium feature). It is important to note that you can add only people with a LastPass account as emergency contacts.

Why Use LastPass?

Because the web is an integral part of our lives, it is important to keep our machines and data safe. Malicious content can enter your computer via the internet, and this content may harm your data, resulting in severe security issues. Therefore, a password manager like LastPass is crucial, as it offers a way to keep your data secure and protects you from security threats.

]]>
10 Best Programming Languages to Learn in 2021 https://linuxhint.com/10_best_programming_languages_2021/ Tue, 17 Nov 2020 04:30:47 +0000 https://linuxhint.com/?p=76953

In the modern world, the demand for computer scientists continues to grow. Everything around us is transforming, undergoing a digital makeover. With so many people becoming a part of this field, it comes as no surprise how much technology has expanded and the rate at which it is developing. Computer science itself is divided into various sub-fields, each of which has its own set of specialized workers.

However, one thing common to almost all these fields is the process of writing instructions in the form of code, commonly referred to as programming. This sits at the heart of computer science and gives it the power to create and remove things. With the number of existing programming languages reaching the three-digit mark, and as each programming job has its own specific set of requirements, it can be extremely daunting to figure out which language to learn.

To make your job easier, this article provides a list of the best programming languages to learn in 2021.

1) Python

For people just starting out with computer science in 2021, and even for those with some experience with this language, Python is something every programmer should be comfortable with. This language offers an intuitive and easy-to-learn syntax that makes it a popular choice among beginners and professionals alike. The beauty of Python is that it is extremely versatile, as it can almost be used anywhere. Whether you want to work on some back-end application of a website or mobile application, or you want to on some data science-related work, Python is critical to these tasks and many more. Python is the preferred language in the areas of machine learning, deep learning, artificial intelligence, and other data science fields. Data science is the hottest topic these days, as businesses and companies are now extracting insights from data analysis and using that to further grow their markets. Libraries, such as TensorFlow, Keras, Scikit, etc., have made the computation required for running different models extremely cheap and fast to execute.


This versatility and availability of all kinds of libraries in Python have led to enormous growth in demand for this language. Python just keeps on growing without slowing down.

2) JavaScript

JavaScript is one of the most widely used languages, as it is considered the standard programming language of the web. It is used in almost every website you have seen on the Internet. JavaScript provides a syntax that allows it to be used in both the front-end and back-end sections of websites, showing the flexibility and power that it possesses. In addition to HTML and CSS, JavaScript offers a way that allows users to not only develop and design their websites but also make their websites more dynamic by adding functionalities to the elements present in the site. Moreover, Javascript is also the fundamental language used in web frameworks, such as React, Vue, and Node, making it the undisputed king in the web development department. Websites that you regularly visit, such as Google, YouTube, and Wikipedia, were all created using JavaScript.

Code:


Result:

3) Java

Java is another immensely popular programming language that, albeit being one of the oldest languages out there, is still highly in-demand. Java is often used in the work of large organizations. It is also widely used in Android development, which, considering the popularity that Android applications have garnered, makes Java a highly sought-after skill to have. Due to Java’s scalability, strong memory allocation, and high performance, companies like Amazon, Twitter, and Adobe are a few names that come under the list of users of this programming language, along with a million other repositories that can be found at GitHub.

4) C/C++

C/C++ is among the fastest programming languages out there, providing a high level of functionality. This language is therefore used in the majority of low-level systems, such as operating systems, embedded systems, kernel development, etc. It is even used as a baseline in the development of other programming languages. Due to its large set of libraries and stable nature, C/C++ also plays a huge role in the areas of game development, computer graphics, virtual reality, and more. Companies like Nvidia, Google, Microsoft, and Apple are often on the lookout for C/C++ developers.

5) C#

C# is a programming language developed by Microsoft that has made quite a name for itself in the web and game development departments. C# is most regularly used in the Unity software, which is one of the most popular game engine software used for building 2D and 3D video games. C# also plays a huge role in building Windows applications and has therefore been used at the back-end side of websites such as Bing, Visual Studio, etc.

Code:


Script being used in Unity:

6) Golang

Golang, referred to as “Go” for short, is a programming language developed by Google. In recent times, with concepts of multithreading and distributed systems becoming highly popular, Golang is slowly gaining fame. This language is currently one of the most widely used languages in Silicon Valley. Go has been designed in such a way that it easily supports multithreading and it allows processes to run concurrently, which is why this language was used for creating projects like Kubernetes, Docker, Blockchain, etc.

7) R

With both Data Science and Machine Learning gaining huge popularity in the industry, R is another programming language that has emerged as a hot favorite among users. Like Python, R provides a large set of libraries and frameworks. This makes R ideal to use in developing Machine Learning algorithms, as well as creating statistical models. Any company that requires a large collection of their data to undergo a process of analysis and visualization will be looking for developers proficient in the R programming language.

8) PHP

Despite the huge popularity that languages like Python and JavaScript have garnered in backend development, PHP is still going strong and continues to be used by large companies, including Facebook, Yahoo, and Wikipedia. There remains a huge demand for PHP developers in the market, as many websites (particularly WordPress) around the web are running using PHP as their baseline. Therefore, PHP is still a great choice as a language to learn in 2021.

Code:


Result:

9) Swift

Swift is a programming language developed by Apple for creating iOS applications. It is one of the most in-demand languages out there, as iOS applications are still extremely popular among users and Apple is still standing strong. Although Flutter (Dart) and React Native are also options for iOS development, Swift is still the more widely used and preferred option.

10) Kotlin

Kotlin is a language developed by JetBrains whose work revolves around the development of Android applications. This is precisely why Google decided to name Kotlin as the official language for Android development, putting it ahead of Java. And, as Android is the highest-selling mobile operating system, the fact that Kotlin is one of the languages to learn in 2021 comes as no surprise.

Which Programming Languages Should You Learn in 2021?

Computer science and software engineering are both considered some of the most well-known sectors in the tech industry. The popularity of these fields continues to grow without any indication of slowing down in the near future. However, computer science itself is an extremely vast field and, to keep up with the current times, it is important to know which programming languages to dip your fingertips into. All the languages mentioned above are among the most popular and widely used programming languages and are definitely worth learning. Happy coding!

]]>
Bitwarden in Linux https://linuxhint.com/bitwarden_in_linux/ Tue, 17 Nov 2020 04:29:26 +0000 https://linuxhint.com/?p=76969

In the modern era, the world has seen major progression in the technological sector. New and advanced technologies have made the lives of people easier. Not long ago, people used landlines to communicate with one another, but now, devices such as smartphones have arrived. Such advances have truly revolutionized the lives of humans in ways that go beyond the concept of communication. Such has been the impact of technology on our lives that every aspect of modern life has been merged with it. Whether it involves our finances or our social profiles, all rely heavily on technology.

However, this reliance of ours has made us much more vulnerable to data breaches. The real-life cases of Adobe and eBay clearly indicate what a serious issue cybersecurity is. Cyberattacks have also been on the rise and, to top it off, even more advanced and new kinds of attacks are being developed every day. Although Linux is much more secure than Windows and other operating systems, it is still vulnerable to viruses.

Hence, it is essential to adopt measures that can protect our machines from these security attacks. One excellent solution is to use password managers. Thus, the topic of our discussion in this article will be Bitwarden, an open-source password manager.

What is Bitwarden?

Bitwarden is a free and open-source password manager that is available for Linux and all other major operating systems, like Windows and macOS. Bitwarden also has extensions for all the popular web browsers, such as Chrome, Firefox, Edge, etc. It even has applications available for both Android and IOS mobile devices. Bitwarden offers a very user-friendly and easy-to-use interface, making its graphical interface an excellent choice to have. It works by storing your passwords and other sensitive data inside of an encrypted vault, which itself is protected by a master password. Bitwarden offers both a free and paid account to its users, with the latter having different plans, all of which are low-priced when compared with the market. The free version of Bitwarden, however, is also a very notable choice, as it offers a wide array of features that cannot be found in other password managers.

Installing Bitwarden

Before we move onto the installation process of Bitwarden, it is important to know that you need to sign up for an account to use this program. Simply go to the official website of Bitwarden, click the Create your Free Account option, and input your details to create an account.


Once you are done creating your account, it is also good practice to install an extension of Bitwarden inside your web browser for automatic fill-in of your login details. You can install this either by going to the official extension and add-ons page of your browser or by clicking the options available on Bitwarden’s official webpage.


There are two primary methods of installing Bitwarden on your machine. We will look at them in the following section.

Installing Bitwarden Using AppImage

To install Bitwarden using its AppImage, once again, open Bitwarden’s official website. Then, select the Download option from the top of the page and click on the Linux segment found under the Desktop heading.

This will download an AppImage onto your Linux machine. To start using Bitwarden, first, you must give it executable permission. This can be done by right-clicking on the icon and selecting the Properties option. 



Next, open the Permissions tab and click the square box next to the line Allow executing file as program to make your AppImage executable.


Now, Bitwarden can be opened by double-clicking the AppImage file.

Installing Bitwarden Using Snap

Another method of installing Bitwarden on your computer is by using Snaps. Snaps are applications that include all the dependencies bundled together inside a software package. This removes the hassle of separately installing dependencies along with your application. To install Bitwarden using Snaps, simply run the following command in the terminal:

$ sudo snap install bitwarden

Using Bitwarden

After downloading and opening Bitwarden, a login menu will appear in front of your screen. Enter your login details to start using Bitwarden. Note that if you were not able to make your Bitwarden account before, you can do so from here.


After logging in, Bitwarden will take you to your Vault, where all your passwords and sensitive data will be saved.


You can manually add items inside your Vault by clicking on the plus icon, as seen in the image above. This will open a window into which you can input any details about your account that you want to add.


You can also change the type of item that you want to add by selecting options from the drop-down menu, as indicated in the image below.


It is important to note that the item details that you input in this window will change depending on what type you choose to add.

When adding accounts to your Vault, you can also use the Password Generator option of Bitwarden, which will automatically generate a secure password for you.


To keep track of all these passwords, you can use the Password History option in the View tab, where all generated passwords will be stored.


You can also sync your account with your web browser by going to the File option and selecting the Sync Vault option. 


Bitwarden even allows you to export your Vault by using the Export Vault option, as seen in the image above. The exported files will either be in the json or csv format.

So, Why Use Bitwarden?

There is no doubt that the Internet has revolutionized the world, as it has now become an integral part of our daily lives. As we are now highly dependent on technology for our day-to-day work, this dependency has paved the way for cybersecurity issues to arise and has led to severe cases of identity theft and data leakage. Bitwarden is an excellent choice to protect your machine from such threats, as it offers a way for users to protect their data and keep their systems secure.

]]>
KeePassXC on Linux https://linuxhint.com/keepassxc_linux/ Sun, 15 Nov 2020 05:24:06 +0000 https://linuxhint.com/?p=76670 In the present world, technology runs our lives as we have become fully dependent on devices such as smartphones, computers, etc. and it has become an integral part of our everyday lives. Such has been its impact that a life without these devices just cannot be imagined. With the invention of cars, planes, Google, and computers, humans have indeed become much more efficient and less erroneous. Things like artificial intelligence, cloud computing, blockchains, virtual reality, and so many others have opened astounding avenues for humans to explore and have allowed humans to step into a realm that could only have been imagined in science fiction books.

However, our dependency on technology has also led to our privacy being more exposed than ever. Things like data breaches and cyber-attacks have become quite the norm and are growing in scale with time. Linux users have had less to worry about these issues as it has often been said that Linux systems are more secure than its counterparts, but it is important to remember that hackers are becoming more skilled, and thus, it still is not a hundred percent completely safe from malicious attacks. Therefore, it is essential for one to employ procedures with which they can protect their Linux systems. One excellent solution is to use a password manager, which shall also be the topic of our discussion in this article, where we will be focusing on one open-source password manager by the name of KeePassXC.

What is KeePassXC?

KeePassXC is an open-source & free password manager that has been based on KeePassX, the Linux port for the Windows supported software, KeePass. KeePassXC is cross-platform as it is available for operating systems like Windows, Linux, and Mac OS. KeePassXC allows users to store all types of sensitive data such as usernames, passwords, attachments, notes, and so on. It does this by storing this data inside encrypted databases, which itself is protected by a master password. This works quite efficiently as our data remains secure, and even if someone was able to get their hands on it, they would not be able to read it without the decryption password.

Installing KeePassXC

There are mainly two ways of installing KeePassXC on your Linux machine. Let us look at them:
 
1) Installing KeePassXC using AppImage
The first method involves installing KeePassXC using an AppImage. To download this, open the official website of KeePassXC, then select the Download option from up top, and under the Linux heading, click on the Official AppImage title.

Linux Header:


Official AppImage:


This will download an AppImage onto your Linux machine. To start using this, first, you must give it executable permission, which can be done by right-clicking on it and selecting the properties option.


Next, open the Permissions tab and click on the square box next to the line Allow executing file as a program to make your AppImage executable.


Now, KeePassXC can simply be opened by double-clicking the AppImage file.
 
2) Installing KeePassXC using Snap
Another way of installing KeePassXC on your Linux system is through the Snap Package Manager, which allows users to install small packages called snaps that already have all the requirements bundled inside of them. This saves time as now; there is no need to separately install dependencies of applications. To install KeePassXC from its Snap, enter the following command into the terminal and press enter:

$ sudo snap install keepassxc

Using KeePassXC

After downloading and opening KeePassXC, the very first thing you need to do here is create your own Vault or a password-protected database. To do this, click on the Create new database option, as seen in the option above. This will then open a window where you must enter the name and description of your Database:


Fill in the blanks and then press Continue. In the next window, you can change the encryption settings, the database format as well as some other advanced settings.


Next, you must enter your master password, which will be needed to decrypt and unlock your database. You can also use its built-in auto generator to generate a password for you, as indicated by the arrow in the image below:


You can also add Key Files and YubiKeys for additional protection. 


After pressing done, it will then ask you to save your password database. Finally, your Vault will appear, which will be empty in the beginning. To add items into your Vault, press the Plus icon in the toolbar, which will then open an entry page where you can fill in the details of your item. KeePassXC also allows users to put in expiry dates for your entries as well as an auto password generator as indicated by the circle in the image below: 


Along with this, you can add other elements to your entries, such as attachments, icons, and even change the properties of this. You can even enable the auto-type option, which can automatically fill in your passwords. 


KeePassXC also allows you to create folders and subfolders of your passwords, which are called Groups. You can create and edit Groups from the Groups option available on the menu.


You can also import or export passwords into these groups from the KeeShare tab.

Similarly, you can import and export your password databases from the options available in the Database heading in the menu. 


Another excellent feature of KeePassXC is the integration of browsers with your desktop application. You can turn this on by going inside Settings, selecting the Browser Integration option, and then checking the Enable browser integration on. You can then enable the integration for the specific browsers that you have.


Now, your desktop application will remain in sync with your browser extension.

So, Why Use KeePassXC?

Security concerns have risen in the past couple of years as with the demand for the internet increasing, more and more cases of privacy issues are emerging. Using KeePassXC helps to protect your machines from such events and keeps your data secure.

]]>
Best C++ Editors https://linuxhint.com/best_c_editors/ Sun, 08 Nov 2020 05:07:55 +0000 https://linuxhint.com/?p=76018

Computer Science is one of the hottest prospects these days. With the world around us relying heavily on technology, this comes off as no surprise as everything is gradually becoming digitized and the demand for people skilled in this field keeps on increasing. The Internet has also exploded in the last couple of years and this has in turn led to an increase in the market for computers and devices related to it.

However, the beauty of Computer Science isn’t only in its high success in the industry but also in how it is structured. It offers the best blend of mathematics and engineering, along with providing a platform where programmers can create and develop things simple with just a computer, similar to how an artist does with a paintbrush. Since Computer Science itself is composed of multiple subfields, there have been various programming languages developed each of which has been specifically designed for certain tasks. One such programming language that is immensely popular and lies at the crux of game development, animations, and operating systems is C++ which shall also be the topic of our discussion in this article where we would be looking at the best editors that are available for C++ programming.

1) VS Code

The first name to appear on this list has to be VS Code, the powerful, open-source code editor designed by Microsoft that is available on all major platforms including Windows, Linux, and Mac OS. Although VS Code does not fall under the category of IDEs, it offers much more than what a traditional code editor does and is jam-packed with features that make it an excellent choice for writing and editing C++ programs. VS Code is well-known for its fluidity and flexibility, offering an interface that is extremely fast and easily customizable. Features like auto-completion, code refactoring color highlighting, and having support for multiple extensions make it an excellent choice for C++ programming.

Editor Features:

Extensions:

VS Code also comes with a built-in command-line interface as well as an integrated source control from where users can perform version control tasks such as pulling and pushing data, making commits, creating branches, and so on.

Preview of Source Control:

2) Sublime Text

Another great option available for C++ programming is Sublime Text, the simple, cross-platform text editor. Although Sublime Text is closed source and not free, it still has one of the largest communities to back it and is well regarded mainly due to its speed and efficiency. Sublime Text has one of the slickest and sleek user interface that is bundled with a large set of features such as having multiple cursors, an innovative command palette, and an extremely customizable interface, and this can further be topped with by using its wide variety of plugins.

Editing Tools:

Snippets from Command Palette:

Another awesome feature of Sublime is its unique search function which allows you to search and replace regular expressions, numbers, text, or case sensitive words. It also has the GoTo Anywhere Function, with which you can jump to any words, lines, or symbols that are specified instantly.

3) Atom

Atom is an Electron-based free and open-source, cross-platform code editor that has risen in popularity among developers. What makes Atom so good is the fact that it has support from thousands of packages each of which offers different functionalities. It even allows users to create their own packages which they can then provide it to the Atom community. Atom is extremely customizable and is built with numerous excellent features such as auto-completion, providing multiple panes to split your screen into, and a very powerful search feature.

Editing features:

Multiple Panes:

Split Left Pane:

Another excellent feature that comes along with Atom is its integration with GitHub and thus, you can perform all operations of it such as creating new branches, pushing, and pulling, and making commits. 

4) Brackets

Brackets is a cross-platform and open-source code editor developed by Adobe that falls under the MIT License and is, therefore, free to use. Brackets is well-known for being lightweight and providing an immaculate performance while not comprising any of its features which clearly indicates its powerful nature. Brackets are extremely customizable, and you can quickly change the UI of its interface according to your interests. For example, if you just want the editor to appear in your workspace, you can easily hide the sidebar. Similarly, if you are working with numerous files and want to check the differences between them, you can split your window into vertical or horizontal splits.

Horizontal split:

Vertical Split:

It also allows users to add extensions inside of it which provides more power to this simple-looking editor and allows users to manage their projects much more efficiently.

5) Geany

Geany is another powerful text editor whose name deserves a mention in this list. It is an extremely lightweight and cross-platform text editor that makes use of GTK and Scintilla and provides a variety of features to its users without putting a strain on their systems. Features like auto-completion, syntax highlighting, and code navigation are some of its key highlights. In addition to this, it also has a built-in terminal along with a build system that allows it to compile and execute your programs which often leads to people calling it a small IDE.

Geany also provides snippets to C++ Headers which can help users in writing their code in a much more efficient manner.

Which are the Best Editors for C++ Programming?

C++ is one of the most popular programming languages and is widely used in all sorts of areas of Computer Science. With so much importance being given to it, it is imperative to choose an editor that provides the best features and eases the work of the developer. All five editors mentioned above are excellent choices for writing and editing C++ code and are worth considering.

]]>
Best Alternatives to Adobe Reader on Linux https://linuxhint.com/adobe_reader_alternatives_linux/ Sun, 08 Nov 2020 05:07:50 +0000 https://linuxhint.com/?p=75991

Since ancient times, books have been man’s best friend, playing the role of guiders and philosophers. Books have always been there to inspire humans and help them broaden their horizons and open new avenues. As Neil Gaiman says, “a book is a dream that you hold in your hands.” However, in recent times, with the advancement shown in technology, printed books have seen a decline in its popularity as with the emergence of eBooks, electronic versions of printed books, this has totally brought about a huge change in the publishing industry and has made the electronic copies a much more sought-after and in-demand format. From among the dozens of eBook readers available, Adobe Reader has mostly been the get-go for Windows users due to its excellent features and support for several PDF manipulation functions.

However, with Adobe not actually having a Linux based version, it becomes necessary to look at some of its alternatives available on Linux which shall also be the topic of our discussion in this article.

1) Foxit Reader

Foxit Reader is a top tier freemium PDF reader that has gained a large following due to its impressive feature set and quality performance. Foxit has both a free and premium version, both of which offer high-grade features to its users, some of which even go toe to toe against those provided by Adobe. One of the best features that come along with Foxit is its ability to annotate PDF documents which allows for a better understanding of the text being read and helps in summarizing the text.

Tools:

Results:

Foxit also provides a very smooth and silky reader which further has several reading modes. In addition to this, you can rotate your screens, move to-and-fro, and even has multiple background themes from which users can choose from.

Reader Options:

Theme Modes:

It also provides a navigation panel that contains several different sections of your PDF such as Bookmarks, comments, etc.

2) Evince

Another great alternative that can be found on Linux is Evince, a free and open-source document reader developed by FOSS and is available for all major platforms such as Windows, Linux, and so on. Evince is actually the default document viewer for GNOME-based desktop environments, the most notable ones being Ubuntu, Fedora, and Debian. One of the most noteworthy features that come along with Evince is its ability to display dual pages simultaneously along with having support for displaying files in full screens and slide shows. It even allows users to switch the page view as in right to left or vice versa. 

Evince also has a powerful integrated search system that highlights the part and displays the page number where the specified searched element was found.

Search:

Result:

Like Foxit, Evince also allows users to add notes as well as highlight text on their PDFs.

Tool:

Result:

3) Okular

Okular is a lightweight and cross-platform document reader developed by the people working at KDE. Okular not only has the support for PDFs but also other file formats such as Epubs, ODF, XPS, and so on. Okular has a very easy to use and user-friendly interface with everything clearly set out in an organized manner. You can easily change the layout and add or remove some elements from it. For example, in the following image, all the different sections can be seen such as the navigation panel, the toolbar, the page, and menu bar:


One of the best things about Okular is that it provides several tools each with different functionalities. For example, you can use the Text Selection tool to copy some text and then apply the following operations to it:

Similar to the other PDF readers, Okular also possesses an extremely detailed annotation tool which includes adding notes, highlighting, drawing polygons, and so on.
Tools:


Result:

4) Master PDF

Master PDF is the next name to come into this list, a lightweight and easy to use PDF reader. Master PDF provides users with several outstanding features, the most notables ones including the ability to create, edit, merge files as well as adding comments, signatures to files, and even offering encryption of PDF files. It also has various annotation tools with which users can add notes, highlight text, and even include shapes into their PDF files.

Tools:

Results:

Master PDF also has an editing window in which you can edit your annotations. These edits can vary from changing colors to adding types and statuses. For example, in the above image, let’s say I want to change the color of my sticky Note to light green.

Window:

Results:

5) MuPDF

MuPDF is the last name on our list, which is a free and open-source PDF reader and is well-known for its lightweight nature and quick response. What sets MuPDF apart from other software are the command line tools that it possesses, which allow users to create PDFs from text files, move about the pages and even adjust the width and height of the screen.

You can get the commands of MuPDF by entering the following command into the terminal:

$ man mupdf

Which are the Best Alternatives to Adobe Reader on Linux?

Adobe Reader has always been one of the most popular Adobe applications. However, with Adobe Reader not available in Linux, the Linux Community had to work hard in producing PDF readers that could counter Adobe. From among the variety of choices, all the five readers mentioned above are excellent choices for reading and editing PDFs and have features that even go head to head against those provided by Adobe Reader.

]]>