This article covers the different methods of Installing Django on Ubuntu 20.04. With it, you can easily perform creation of Django applications, superuser creation, and removal of Django. 

Django is a full-featured Python web framework for developing dynamic websites and applications. Using Django, you can quickly create Python web applications and rely on the framework to do a good deal of the heavy lifting.

How to install Django from Ubuntu repositories ?

1. First, update your local package index with apt:

$ sudo apt update

2. Next, check which version of Python you have installed. 18.04 ships with Python 3.6 by default, which you can verify by typing:

$ python3 -V

This article covers software programming languages which are the top-rated languages being used by the quality assurance engineers for designing and developing the most efficient and reliable test automation software. Python, Java, C#, JavaScript and Ruby, all are well-acclaimed programming languages to deliver and support test automation for software applications developed in any of the platforms.

Automation testing is one of the booming demands of all organizations across the globe. Many quality assurance engineers face a key challenge in setting up an environment capable of most seamlessly testing the developed software against the documented test cases and requirements. Verifying and validating all the test case scenarios is a tedious task to perform thereby giving rise to the need for automation testing. Automation testing significantly enhances and improves the software testing processes.

This article covers how to use the 'os. getcwd()' method to easily get the python current working directory. When you run a Python script, the current working directory is set to the directory from which the script is executed.

The os python module provides a portable way to interact with the operating system. The module is part of the standard Python library and includes methods for finding and changing the current working directory.

Basically, In Python, you can get and change (set) the current working directory with os.getcwd() and os.chdir().

os module is included in the standard library, so no additional installation is required.

To Get the current working directory: os.getcwd()

To Change the current working directory: os.chdir()

How to Get the current working directory: os.getcwd() ?

1. os.getcwd() returns the absolute path of the working directory where Python is currently running as a string str.

2. getcwd stands for "get current working directory", and the Unix command pwd stands for "print working directory".

This article covers how to install certbot client, obtain Let's Encrypt SSL certificate and configured to Nginx to use the certificates. Also, you will learn how to set up a cronjob for automatic certificate renewal.

Let's Encrypt is a Certificate Authority (CA) that provides an easy way to obtain and install free TLS/SSL certificates, thereby enabling encrypted HTTPS on web servers. 

To Install Certbot on Ubuntu:

1. First, add the repository.

$ sudo add-apt-repository ppa:certbot/certbot

You'll need to press ENTER to accept.

2. Install Certbot's Nginx package with apt:

$ sudo apt install python-certbot-nginx

This article covers how to secure Apache with Let's Encrypt SSL on CentOS 7 using Certbot client. Also, you will learn how to set up a cronjob for automatic certificate renewal. Basically, A security certificate is critical for securing traffic sent from web browsers to web servers. Let's Encrypt certificate is a free, open and automated certificate authority that you can use to encrypt your site. The certificate expires after every 90 days and auto-renews at absolutely no cost.

To Install Certbot in CentOS 8.

Certbot is a client that automates the installation of the security certificate. It fetches the certificate from Let's encrypt authority and deploys it on your web server without much of a hassle.

1. Before downloading certbot, first, install packages that are necessary for the configuration of an encrypted connection:

$ sudo dnf install mod_ssl openssl

2. Download certbot using the curl command:

$ sudo curl -O https://dl.eff.org/certbot-auto

3. Next, move the certbot file to the /usr/local/bin directory and assign the execute file permissions:

$ sudo mv certbot-auto /usr/local/bin
$ sudo chmod 755 /usr/local/bin/certbot-auto

To Assign the permissions to the Document root of a domain:

$ sudo chown -R apache:apache /var/www/domain.com

For the changes to come into effect, restart the Apache service:

$ sudo systemctl restart httpd

This article covers Abstract Factory design pattern in Python.

Basically, The Abstract Factory design pattern can also be used to create cross-platform UIs without coupling the client code to concrete UI classes and keeping all created views consistent with different operating systems.

Abstract Factory is a creational design pattern, which solves the problem of creating entire product families without specifying their concrete classes.

Abstract Factory Method is a Creational Design pattern that allows you to produce the families of related objects without specifying their concrete classes.
Using the abstract factory method, we have the easiest ways to produce a similar type of many objects.
It provides a way to encapsulate a group of individual factories.

Advantages of using Abstract Factory method:
This pattern is particularly useful when the client doesn’t know exactly what type to create.
1. It is easy to introduce the new variants of the products without breaking the existing client code.
2. Products which we are getting from factory are surely compatible with each other.

Disadvantages of using Abstract Factory method:
1. Our simple code may become complicated due to the existence of lot of classes.
2. We end up with huge number of small fies i.e, cluttering of files.

Examples of Factory pattern in Python:
1. With the Factory pattern, you produce instances of implementations (Apple, Banana, Cherry, etc.) of a particular interface -- say, IFruit.
2. With the Abstract Factory pattern, you provide a way for anyone to provide their own factory. This allows your warehouse to be either an IFruitFactory or an IJuiceFactory, without requiring your warehouse to know anything about fruits or juices.

This article covers how to install atom editor on CentOS 8 using the command-line application.

Atom is a free and open-source text and source code editor for OS X, Linux, and Windows with support for plug-ins written in Node.js, and embedded Git Control, developed by GitHub

To install latest version of Atom using .rpm package on your CentOS 8 machine:
1. First, go to the Atom official website and download the Atom .rpm package:

# sudo curl -SLo atom.x86_64.rpm  https://atom.io/download/rpm

2. You can now install Atom using dnf command:

# sudo dnf localinstall atom.x86_64.rpm

3. Now that Atom is installed on your CentOS system you can launch it from the command line by typing atom or by clicking on the Atom icon (Applications -> Programming -> Atom).

This article covers how to install and compile Python3.9 using different methods, using PPA repo, compiling it from the source code, and installing it using the Linuxbrew tool.

We can now start using Python 3.9 for our projects.

Python is a high-level programming language, mostly used to write scripting and automation. It is a very popular language known for its simplicity and easy syntax. 

Python one of the best language for for artificial intelligence (AI).

To Install Python 3.9 on Ubuntu 20.04 using APT:

1. Update package list, type:

$ sudo apt update

2. Install software-properties-common package to easily manage distribution and independent software vendor software sources:

$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:deadsnakes/ppa

3. Now install python 3.9 using apt command:

$ sudo apt-get install python3.9

4. The following command can help to identify the proper install location of Python:

$ which python3

The execution of the above command produces the following output on console:


This article covers the concept of Unit Testing in Python. Testing in Python is a huge topic and can come with a lot of complexity, but it doesn't need to be hard. You can get started creating simple tests for your application in a few easy steps and then build on it from there.

Here, You'll learn about the tools available to write and execute tests, check your application's performance, and even look for security issues.

pytest supports execution of unittest test cases. The real advantage of pytest comes by writing pytest test cases. pytest test cases are a series of functions in a Python file starting with the name test_.

pytest has some other great features:

1. Support for the built-in assert statement instead of using special self.assert*() methods

2. Support for filtering for test cases

3. Ability to rerun from the last failing test

4. An ecosystem of hundreds of plugins to extend the functionality

Running Your Tests From Visual Studio Code

If you're using the Microsoft Visual Studio Code IDE, support for unittest, nose, and pytest execution is built into the Python plugin.

If you have the Python plugin installed, you can set up the configuration of your tests by opening the Command Palette with Ctrl+Shift+P and typing "Python test". 

How to Use unittest and Flask

Flask requires that the app be imported and then set in test mode. You can instantiate a test client and use the test client to make requests to any routes in your application.

All of the test client instantiation is done in the setUp method of your test case. In the following example, my_app is the name of the application. Don’t worry if you don’t know what setUp does. You’ll learn about that in the More Advanced Testing Scenarios section.

The code within your test file should look like this:

import my_app
import unittest

class MyTestCase(unittest.TestCase):
    def setUp(self):
        my_app.app.testing = True
        self.app = my_app.app.test_client()
    def test_home(self):
        result = self.app.get('/')
        # Make your assertions

You can then execute the test cases using the python -m unittest discover command.

This article covers an Overview of Async IO in Python. Python 3's asyncio module provides fundamental tools for implementing asynchronous I/O in Python. It was introduced in Python 3.4, and with each subsequent minor release, the module has evolved significantly.

Asyncio is the standard library package with Python that aims to help you write asynchronous code by giving you an easy way to write, execute, and structure your coroutines. 

The Asyncio library is for concurrency, which is not to be confused with parallelism.

Concurrency does not mean Parallelism and vice-versa.

We can combine them both. 

We can have multiple threads, running Tasks parallely but each thread may not be running Tasks concurrently. 


1. Asynchronous IO (async IO): a language-agnostic paradigm (model) that has implementations across a host of programming languages.

2. async/await: two new Python keywords that are used to define coroutines.

3. asyncio: the Python package that provides a foundation and API for running and managing coroutines.

This article covers how to install Atom text editor on the Debian system. Atom is a very powerful text editor.

The Atom user interface is very clean and it has support for many important features such as split view, Git integration and so on. Atom is cross platform. It runs on Linux, Windows and macOS.

To Enable snaps on Debian and install Atom:

Snaps are applications packaged with all their dependencies to run on all popular Linux distributions from a single build. They update automatically and roll back gracefully. 

1. Enable snapd

$ sudo apt update
$ sudo apt install snapd
$ sudo snap install core

2. To install Atom, simply use the following command:

$ sudo snap install atom --classic

To Update Atom Text Editor on Debian:

You can update the Atom when a new version is available. You can update it through your desktop standard Software Update tool. 

Alternatively, you can update by running the following commands in your terminal:

$ sudo apt update
$ sudo apt upgrade

This article covers how producer-Consumer pattern is a very useful design which can be leveraged to a varied extent in order to enable asynchronous processing of multiple time-consuming tasks. The concept has been widely incorporated in modern-day messaging queues viz. Kafka, RabbitMQ, Cloud MQs provided by AWS, GCP, and so on.

Python provide Queue class which implements queue data structure. We can put an item inside the queue and we can get an item from the queue. By default this works in FIFO (First In First Out) manner.

The function producer will put an item inside queue and function consumer will get an item from the queue. We will use following method of queue class by instantiating queue object q = Queue().

Queue Method Python:

q.put(): To put an item inside queue.

q.get(): To get an item which is present inside queue.

q.join(): This method stops python program from exiting till it gets signal from the below method task_done. Hence this method should always be used in conjunction with method task_done

q.task_done(): This method should be called when item got outside from the queue using q.get() has been completely processed by consumer. When all items make call to their respective task_done it sends signals to q.join() that all items have been processed and program can exit.

Threads class Python:

Python allows writing multi-threaded program using Thread class. We will instantiate object of thread class and make use of following methods to process (consume) multiple items concurrently:

t = Thread(target=consumer): Instantiate thread object which would make call to function consumer.

t.start(): Starts execution of thread by making call to function consumer.

This article covers the different methods to install Atom editor on Ubuntu 20.04 system. Atom is an open-source text and source code editor for Windows, Linux, and macOS, developed by GitHub. 

It is called "A hackable text editor for the 21st century" due to being a highly customizable text editor.

To Install Atom Editor using Snap:

1. First, install the Snap package manager on your system if it is not already installed.

$ sudo apt update && sudo apt install -y snapd

2. Then, install Atom editor with the snap command.

$ sudo snap install atom --classic

This article covers how to make applications performant and efficiently use CPU cycles and threads. However, it is not all rainbows and unicorns when talking about asynchronous code.

Asynchronous programming is a type of parallel programming in which a unit of work is allowed to run separately from the primary application thread. When the work is complete, it notifies the main thread about completion or failure of the worker thread. 

There are numerous benefits to using it, such as improved application performance and enhanced responsiveness.

On the other hand, A synchronous program is executed one step at a time. Even with conditional branching, loops and function calls, you can still think about the code in terms of taking one execution step at a time. When each step is complete, the program moves on to the next one.

Examples of synchronous program:

1. Batch processing programs are often created as synchronous programs. You get some input, process it, and create some output. Steps follow one after the other until the program reaches the desired output. The program only needs to pay attention to the steps and their order.

2. Command-line programs are small, quick processes that run in a terminal. These scripts are used to create something, transform one thing into something else, generate a report, or perhaps list out some data. This can be expressed as a series of program steps that are executed sequentially until the program is done.

This article covers how you can download YouTube videos on Linux using the youtube-dl utility. The youtube-dl is a handy utility with a large feature set. However, there is a lot more you can do with this utility. To explore more features, visit its official documentation . To play the downloaded videos, you can use any media players like VLC , FFmpeg , and so on.

youtube-dl is a command-line program that lets you easily download videos and audio from more than a thousand websites. 

youtube-dl is a Python based small command-line tool that allows to download videos from YouTube.com, Dailymotion, Google Video, Photobucket, Facebook, Yahoo, Metacafe, Depositfiles and few more similar sites. 

It written in pygtk and requires Python interpreter to run this program, it's not platform restricted. It should run on any Unix, Windows or in Mac OS X based systems.

To Install YouTube-DL in RHEL/CentOS and Fedora:

The youtube-dl program can be installed by enabling epel repository under your systems. Once enabled, you can install using 'yum' package manager tool:

$ yum install youtube-dl

Also, if you wish to add any third party repository, you can still install it right away using curl or wget command:

$ curl https://yt-dl.org/latest/youtube-dl -o /usr/local/bin/youtube-dl


$ wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl

Your system must have curl or wget packages installed to fetch the recent version youtube-dl file. If you don't have them, you may yum to get it.

After fetching the file, you need to set a executable permission on the script to execute properly:

$ chmod a+rx /usr/local/bin/youtube-dl

To Install YouTube-DL in Ubuntu/Linux Mint and Debian:

$ sudo add-apt-repository ppa:nilarimogard/webupd8
$ sudo apt-get update
$ sudo apt-get install youtube-dl

Also, instead using any third party PPA, you can use curl or wget command to install latest version of youtube-dl script:

$ sudo curl https://yt-dl.org/latest/youtube-dl -o /usr/local/bin/youtube-dl


$ sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl

After downloading the script, set the executable permission:

$ sudo chmod a+rx /usr/local/bin/youtube-dl

To Update YouTube-DL,

Youtube-dl itself can be updated to the latest version using the following command:

$ youtube-dl -U

This article covers how to install and use the Speedtest CLI utility to test your Internet speed while using Ubuntu 20.04.

To check my Internet speed in Ubuntu:

1. Open the Ubuntu Terminal by pressing Ctrl+alt+T or through the Dash. 

2. Then enter the command to install python:

$ sudo apt-get install python-pip

Once python is successfully installed, use the command to install the speedtest-cli tool:

$ sudo pip install speedtest-cli

The tool will be installed in your system.

To check Your Internet Speed:

Run the following command to test your internet speed:

$ speedtest-cli

To share Internet Speed Test Results:

The speedtest-cli also lets you share your internet speed by providing a link on the speedtest.net website through the following command:

$ speedtest-cli --share

This article covers how to install Flask on Ubuntu 20.04. Flask is a powerful web framework for any developer. Unlike Django , by default Flask doesn’t include ORM, form validation, or any other functionalities provided by third-party libraries. Flask is built with extensions in mind, which are Python packages that add functionality to a Flask application.

Flask packages are included in the official Ubuntu repositories and can be installed using the apt package manager. 

This is the simplest way to install Flask on Ubuntu 20.04, but not as flexible as installing in a virtual environment. 

Also, the version included in the repositories may lag behind the latest version of Flask.

To install Flask on Ubuntu 20.04:

1. Ubuntu 20.04 ships with Python 3.8. You can verify that Python is installed on your system by typing:

$ python3 -V

2. The recommended way to create a virtual environment is by using the venv module, which is provided by the python3-venv package. Run the following command to install the package:

$ sudo apt install python3-venv

3. Create a new directory for the Flask application and switch into it:

$ mkdir flask_app && cd flask_app

4. Run the following command inside the directory to create the virtual environment:

$ python3 -m venv venv

The command will create a directory called venv, which contains a copy of the Python binary, the Pip package manager , the standard Python library, and other supporting files. You can use any name you want for the virtual environment.

5. To start using the virtual environment, you need to activate it with the activate script:

source venv/bin/activate

6. Now that the virtual environment is activated, use the Python package manager pip to install Flask:

$ pip install Flask

7. To verify the installation, run the following command, which prints the Flask version:

$ python -m flask --version

This article covers how to install python2 and python3 on CentOS 8. By default, python2 and python3 are not installed on CentOS 8. To install both, you need to install all python packages separately according to python versions. Also, you can run python2 and python3 environments on your system. 

The 'alternatives --auto python' command is used to set any python version as the default. 

To run Python in Linux:

A widely used way to run Python code is through an interactive session. 

To start a Python interactive session, just open a command-line or terminal and then type in python, or python3 depending on your Python installation, and then hit Enter .

Python comes preinstalled on most Linux distributions, and is available as a package on all others. 

However there are certain features you might want to use that are not available on your distro's package. 

You can easily compile the latest version of Python from source.

Installing Python 3 on Linux:

1. To see which version of Python 3 you have installed, open a command prompt and run

$ python3 --version

2. If you are using Ubuntu 16.10 or newer, then you can easily install Python 3.6 with the following commands:

$ sudo apt-get update

$ sudo apt-get install python3.6

3. If you're using another version of Ubuntu (e.g. the latest LTS release) or you want to use a more current Python, we recommend using the deadsnakes PPA to install Python 3.8:

$ sudo apt-get install software-properties-common

$ sudo add-apt-repository ppa:deadsnakes/ppa

$ sudo apt-get update

$ sudo apt-get install python3.8

4. If you are using other Linux distribution, chances are you already have Python 3 pre-installed as well. If not, use your distribution's package manager. For example on Fedora, you would use dnf:

$ sudo dnf install python3

To see if pip is installed, open a command prompt and run:

$ command -v pip

This article Covers how to install the TermRecord application on CentOS 8. The TermRecord application allows you to better enjoy the recorded #Terminal content. 

TermRecord is a simple, open source, terminal session recorder with easy-to-share self-contained HTML output.

#TermRecord Stores these files as your own notes, email them to collaborators, use them as instructional examples, or whatever you wish.

TermRecord consumes output from the script command with timing information and can create a self-contained HTML file which replays the recorded session without needing to load anything from the web. 

These term sessions can be emailed and viewed on practically any device (including iPads etc.). 

The end user only needs a modern browser.

Features of TermRecord includes:

1. User friendly.

2. Detects the terminal size.

3. Nest sessions.

4. Cross-platform HTML-based output.

5. Stores the output as either JSON, embeddable JavaScript, or a static HTML file.

6. Written in Python.

To install on TermRecord #CentOS:

1. First of all, connect to your server via SSH and make sure that all of your system software is up to date. 

Run the following command to update the package list and upgrade all of your system software to the latest version available:

$ sudo yum update -y

2. Install Pip. 

Add the EPEL Repository:

$sudo yum install epel-release

Install pip:

$ sudo yum install python-pip

Once the installation has completed, you can verify that it was successful by using the following command:

$pip -V

3. Install TermRecord

Install TermRecord using the Python package manager (pip):

$sudo pip install TermRecord

How to use TermRecord on CentOS system ?

Taking a video of the terminal with TermRecord is rather simple, just run the following command (be attentive to capital letters):

TermRecord -o record.html

Note: We specify the output file in which the video will be recorded using the -o option. the .html format is the default format.

For more complex operations check out TermRecord --help

This article will guide you on how to install Python PIP #tools on Ubuntu 20.04. Also, you learnt different commands which will help you in using the PIP tool. You can search, install and remove #packages by using the pip utility. Steps to Install Python #PIP Tool on #Ubuntu 20.04: 1. Update Your #APT. As always, first, update and upgrade your APT. 2. Add Universe #Repository. 3. Install PIP for Python 3. 4. Verify Installation. 5. Replace Keyword. 6. Install #Python Package. 7. Uninstall Excess Tools. 8. Additional #Commands.

More Linux Tutorials

We create Linux HowTos and Tutorials for Sys Admins. Visit us on IbmiMedia.com

Also for Tech related tips, Visit forum.outsourcepath.com or General Technical tips on www.outsourcepath.com