Gerbera – A UPnP Media Server That Let’s You Stream Media on Home Network

Gerbera is a feature-rich and powerful UPnP (Universal Plug and Play) media server with a pleasant and intuitive web user interface, which allows users to stream digital media (videos, images, audio etc..) through a home network and consume it on different types of UPnP compatible devices from mobile phone to tablets and many more.

Gerbera Features:

  • Allows you to browse and playback media via UpnP.
  • Supports metadata extraction from mp3, ogg, flac, jpeg, etc. files.
  • Highly flexible configuration, allowing you to control the behavior of various features of the server.
  • Supports user defined server layout based on extracted metadata.
  • Support for ContentDirectoryService container updates.
  • Offers exif thumbnail support.
  • Supports automatic directory rescans (timed, inotify).
  • Offers a nice Web UI with a tree view of the database and the file system, allowing to add/remove/edit/browse media.
  • Support for external URLs (create links to internet content and serve them via UPnP to your renderer).
  • Supports flexible media format transcoding via plugins / scripts and many more including a number of experimental features.

How to Install Gerbera – UPnP Media Server in Linux

On Ubuntu distribution, there is a PPA created and maintained by Stephen Czetty, from which you can install Gerbera using following commands.

$ sudo add-apt-repository ppa:stephenczetty/gerbera
$ sudo apt update
$ sudo apt install gerbera 

On Debian distribution, Gerbera is available in the testing and unstable repositories, which you can enable by adding the lines below in your /etc/apt/sources.list file.

# Testing repository - main, contrib and non-free branches
deb testing main non-free contrib
deb-src testing main non-free contrib
# Testing security updates repository
deb testing/updates main contrib non-free
deb-src testing/updates main contrib non-free
# Unstable repo main, contrib and non-free branches, no security updates here
deb unstable main non-free contrib
deb-src unstable main non-free contrib

Then update your system package sources cache and install gerbera with the following commands.

# apt update
# apt install gerbera 

For other Linux distributions like Gentoo, Arch Linux, openSUSE, CentOS, etc. follow Gerbera installation guide.

Once you have installed gerbera, start, enable and view the service status using the following commands.

$ sudo systemctl start gerbera.service $ sudo systemctl enable gerbera.service
$ sudo systemctl status gerbera.service

Note: If gerbera fails to start on your system, you need to do one of the following.

Check if the log file (/var/log/gerbera) has been created, otherwise create it as shown.

$ sudo touch /var/log/gerbera
$ sudo chown -Rv root:gerbera /var/log/gerbera
$ sudo chmod -Rv 0660 /var/log/gerbera

Secondly, define a network interface that your are currently using as the value of MT_INTERFACE environment variable, the default is “eth0” but if you are using wireless, then set this to something like “wlp1s0”. In Debian/Ubuntu, you can set these settings in /etc/default/gerbera file.

Getting Started with Gerbera Media Server Web UI

Gerbera service listens on port 49152, which you can use to access the web UI via a web browser as shown.
Gerbera UI Error

Gerbera UI Error

If you get the error shown in the above screenshot, you need to enable the web UI from the gerbera configuration file.

$ sudo vim /etc/gerbera/config.xml

Change the value enabled=”no” to enabled=”yes” as shown in the following screenshot.

Enable Gerbera UI

Enable Gerbera UI

After making above changes, close the file and restart the gerbera service.

$ sudo systemctl restart gerbera.service

Now go back to your browser and try to open the UI once more in a new tab, this time around it should load. You will see two tabs:

  • Database – shows the files that can be accessed by publicly.
Gerbera Web UI Database

Gerbera Web UI Database

  • Filesystem – this is where you can browse files from your system and select them for streaming. To add a file, simply click on the plus (+) sign.
Gerbera File System

Gerbera File System

After adding files for streaming from the filesystem, the database interface should look like this.

Gerbera Database File System

Gerbera Database File System

Stream Media Files Using Gerbera on Your Home Network

At this point you can start streaming media files over your network from the gerbera server. To test it, we will use a mobile phone as a client. Start by installing a compatible upnp application (like BubbleUpnp) on your phone.

Once installed BubbleUpnp app, open it and on the menu, go to Library and click on Local and Cloud to view available servers, and the gerbera server we created should show in there. Click on it to access added directories and files in them.

Gerbera Media Server

Gerbera Media Server

Gerbera Filesystem View

Gerbera Filesystem View

Finally click on a file that you would like to stream.

Stream Files via Gerbera Server

Stream Files via Gerbera Server

For more information visit, Gerbera Github Repository:

Gerbera is a feature-rich and powerful Upnp media server, used to stream your digital media through your home network with a nice web user interface. Share your thoughts about it or ask a question via the feedback form.

How and Why to Build an EDGE Server

* This post was originally posted on September 27, 2016, and has been updated for accuracy. 

The tiered release system was introduced early in the development of cPanel & WHM. We knew it would be important to appeal to all types of users, from the risk-taking early adopters to the stability-seeking delayers. Each tier represents a different risk vs reward ratio, and today we’re here to talk about the EDGE tier.

The EDGE tier is always the most recent build of the newest version of cPanel & WHM. During our development process for any new version, our ~40-person development team writes and submits code that is merged into the product and then automatically tested. Once cleared by that automated testing and our ~25-person QA team, a new version is released for public consumption on the EDGE tier.

That means the EDGE tier is just that: bleeding-edge. It’s likely that there are bugs and rough edges, but it’s still solid enough to run on your blog and your uncle’s quilting shop. Many members of leadership here at cPanel run one or more servers on the EDGE tier. In fact, we are so confident in our product that and our email servers (including about 300 mailman mailing lists) are all cPanel-powered and running on the EDGE tier.

The most obvious benefit is that you get an early look at all of our newest features as they are being built, and you get to provide feedback early on in the development cycle. For example, if you had an EDGE server, you’d be able to preview all new features or updates to features like AutoSSL and WordPress before they are made available to your customers. If your feedback is reasonable and actionable, you could even influence the product before it goes to one of our Production tiers.

To get started, you can either upgrade an existing server to EDGE or build a new one on the EDGE tier. To upgrade an existing server: log in to WHM, navigate to update preferences, and adjust your tier to EDGE. Note the warning indicating that you cannot downgrade between major versions. That means if you upgrade from cPanel & WHM Version 68 to 70.0.23 (the most recent release of our development build for version 70) on EDGE, you won’t be able to downgrade that server to version 68 again.

Building a new server on the EDGE tier is just as simple. You can just download the installer and then upgrade after you install, but I recommend installing the EDGE version. To do so, just create the update preferences file on the server ( /etc/cpupdate.conf ) before you run the installer, and define the tier. You can accomplish all of that with this command:

echo "CPANEL=edge" > /etc/cpupdate.conf

Once that’s done, you can run the installer like below, and it will install the EDGE version for you.

cd /home && curl -o latest -L && sh latest

Many of the features that you’ll find in the EDGE tier are still being actively developed, so they are not yet publicly documented. The good news is that you aren’t on your own! There’s a mailing list specifically for folks on the EDGE tier, which is monitored directly by our development department. If there’s a feature that you think isn’t working correctly, or that you have questions about, you can email us on that list and we’ll get you answers.

You can also attend the annual cPanel conference. This year the cPanel conference is in Houston, Texas from October 1st through 3rd. There you can hear talks from many of the people who make cPanel & WHM for you, and you’ll get direct access to developers, Quality Assurance, Product Owners, and Support Analysts. Even the Community Team will be there.

Still not convinced? Comment below to tell me why. Or if you’d rather, you can always find me on Twitter, or send us an email.

Android Studio – A Powerful IDE for Building Apps for All Android Devices

Android Studio, Android’s official IDE, is a powerful and popular, feature-rich IDE for building apps for all Android compatible devices. It is specifically designed for Android platform to speed up building of apps and help users develop top-quality, reliable and efficient apps from scratch, for every type of Android device.

Android Studio Features:

  • It runs instantly
  • Has a fast and feature-rich emulator.
  • Provides an intelligent code editor.
  • It is designed for teams.
  • It is also optimized for all Android devices.
  • Provides code templates as well as sample apps.
  • Offers testing tools and frameworks.
  • Has C++ and NDK support.
  • Supports firebase and cloud integration.
  • Provides GUI tools such as layout editor, APK analyzer, vector asset studio and translation editor and much more.


  • 64-bit distribution that also run 32-bit applications.
  • Desktop environment: GNOME or KDE, but most desktops should work.
  • GNU C Library (glibc) 2.19 or newer.
  • At least 2 GB of available disk space, but 4 GB Recommended (500 MB for IDE + 1.5 GB for Android SDK and emulator system image).
  • At least 3 GB RAM, but 8 GB RAM recommended, the Android Emulator consumes 1 GB of RAM.
  • At least 1280 x 800 screen resolution.

How to Install Android Studio in Linux Systems

First, you need to download Android Studio package for Linux. Accept the terms and conditions before you can access the download link, as shown in the screenshot below.

Download Android Studio for Linux

Download Android Studio for Linux

Alternatively, you can use wget command to download the Android Studio package from your terminal, then unpack the Android Studio distribution archive and move into the extracted directory, as follows

$ cd Download
$ unzip
$ cd android-studio/
$ ls
Android Studio Files

Android Studio Files

To launch Android Studio, navigate to the android-studio/bin/ directory, and execute This application initializer script will create several configuration files in the ~/.AndroidStudio3.1 directory.

$ cd bin

Once you run script, it will ask you to import previous Android Studio settings or not, then click OK.

Run Android Studio in Linux

Run Android Studio in Linux

After the applications download and loads a number of components, you will see the setup wizard shown in the screen shot below. Click Next to proceed.

Android Studio Setup Wizard

Android Studio Setup Wizard

Next, select the type of installation you want and click Next.

Android Studio Installation Type

Android Studio Installation Type

Then, choose a UI theme and click Next.

Android Studio UI Theme

Android Studio UI Theme

Now verify settings and click Next to continue.

Android Studio Settings

Android Studio Settings

At this point, you should check emulator settings and click Finish to complete the setup process.

Android Studio Emulator Settings

Android Studio Emulator Settings

Next, the application will download several components as shown. Once all the necessary components have been downloaded, your Android studio will be up to date. Click Finish to start using Android Studio.

Android Studio Components

Android Studio Components

Now create your first project or open an existing one.

Create New Android Studio Project

Create New Android Studio Project

For example, if you choose to start a new project (a mobile phone app), define its settings as shown below and click Next.

Create Android Project

Create Android Project

Then select the form factor and minimum SDK for your app and click Next.

Target Android Devices

Target Android Devices

Next, choose an activity for mobile and click Next to continue.

Add Activity to Mobile

Add Activity to Mobile

Afterwards, create a new basic activity with an app bar. Then click Next to continue.

Configure Activity

Configure Activity

Then the application will install the requested components, one it has done that, click on Finish.

Install Android Studio Components

Install Android Studio Components

Next, the application will also build the gradle project info for your app, as shown, this may take a few minutes.

Building App Gradle Project

Building App Gradle Project

After building the gradle project info, you should be set, you can now work on your project.

Main App Activity View

Main App Activity View

XML App View in Android Studio

XML App View in Android Studio


Android Studio is a powerful and feature-rich IDE for building apps for all android compatible devices. It offers the fastest tools for building apps, and most importantly, it is Android’s official IDE. Use the comment from below to share your thoughts or queries about it, with us.

LG re-open sources WebOS, a look at the AI behind the Pixel 2's camera, and more news

In this edition of our open source news roundup, we take a look LG making WebOS open source (again), Google’s camera AI tools, a 3D printed stethoscope, and more.

Open source news roundup for March 18-31, 2018

LG makes WebOS open source… again

What was once open source is open source again. After Korean electronics giant LG bought WebOS from HP, it made the mobile operating system proprietary. The company has done an about-face and has released WebOS Open Source Edition. The goal: to convince developers to adopt WebOS for tablets, set-top boxes, and more.

WebOS, which was originally designed for Palm’s failed line of smartphones, has been powering LG’s televisions since 2013. Since then, “LG has refined the platform significantly, and hopes that the new release will help others exploit it.” To try to get developers on the WebOS bandwagon, the company has made a software development kit and build instructions available.

Google open sources its camera AI tools

Ever wonder how Google’s Pixel 2 smartphones take such impressive portrait-mode photos? Wonder no more. Google has open sourced the artificial intelligence technology behind it.

Called DeepLab 3+, the technology “uses a neural network to detect the outlines of objects in your camera’s field of view.” That enables a camera to gain a greater depth of field and to more accurately identify objects it sees. You can grab the code for DeepLab 3+ from GitHub and learn more about how the technology works.

Researchers create clinically-validated 3D printed stethoscope

Something as simple as a stethoscope can make a huge difference to medical professionals, especially ones in developing countries and in conflict zones. High-quality stethoscopes can be a difficult-to-obtain commodity in those situations, though. Thanks to the work of Dr. Tarek Loubani of the University of Western Ontario, anyone with access to a 3D printer and ABS plastic can 3D print a high-quality stethoscope for less than $3.

Loubani’s stethoscope design, called the Gila, “was made using free open source software to keep costs low and allow others to easily access the code.” Loubani said that the Gila “is the first open source medical device that has been clinically validated and is widely available,” and that “the acoustic quality was the same in our stethoscope as in a premium brand stethoscope.” You can learn more at the Gila Free Medical Hardware GitHub repository.

New open source file indexing software

The laboratory that gave the world the atomic bomb has made its search and retrieval software open source. Los Alamos National Laboratory boasts that its Grand Unified File Index (GUFI for short), released under a BSD license, can perform within seconds queries “that would previously have taken hours or days.”

Gary Grider, who heads the High Performance Computing division at Los Alamos, said that GUFI “will have a big impact on the ability for many levels of users to search data and get a fast response.” That includes making “calculations that support national security, as well as basic scientific research in fields such as engineered materials, biological processes, and earth systems modeling.”

In other news

Thanks, as always, to staff members and moderators for their help this week. Make sure to check out our event calendar to see what’s happening next week in open source.

How to build a plotter with Arduino

Back in school, there was an HP plotter well hidden in a closet in the science department. I got to play with it for a while and always wanted to have one of my own. Fast forward many, many years. Stepper motors are easily available, I am back into doing stuff with electronics and micro-controllers, and I recently saw someone creating displays with engraved acrylic. This triggered me to finally build my own plotter.

As an old-school 5V guy, I really like the original Arduino Uno. Here’s a list of the other components I used (fyi, I am not affiliated with any of these companies):

  • FabScan shield: Physically hosts the stepper motor drivers.
  • SilentStepSticks: Motor drivers, as the Arduino on its own can’t handle the voltage and current that a stepper motor needs. I am using ones with a Trinamic TMC2130 chip, but in standalone mode for now. Those are replacements for the Pololu 4988, but allow for much quieter operation.
  • SilentStepStick protectors: Diodes that prevent the turning motor from frying your motor drivers (you want them, believe me).
  • Stepper motors: I selected NEMA 17 motors with 12V (e.g., models from Watterott and SparkFun).
  • Linear guide rails
  • Wooden base plate
  • Wood screws
  • GT2 belt  
  • GT2 timing pulley

This is a work in progress that I created as a personal project. If you are looking for a ready-made kit, then check out the MaXYposi from German Make magazine.

Hardware setup

As you can see here, I started out much too large. This plotter can’t comfortably sit on my desk, but it’s okay, as I did it for learning purposes (and, as I have to re-do some things, next time I’ll use smaller beams).

The belt is mounted on both sides of the rail and then slung around the motor with some helper wheels:

I’ve stacked several components on top of the Arduino. The Arduino is on the bottom, above that is the FabScan shield, next is a StepStick protector on motor slots 1+2, and the SilentStepStick is on top. Note that the SCK and SDI pins are not connected.

Be careful to correctly attach the wires to the motor. When in doubt, look at the data sheet or an ohmmeter to figure out which wires belong together.

Software setup

While software like grbl can interpret so-called G-codes for tool movement and other things, and I could have just flashed it to the Arduino, I am curious and wanted to better understand things. (My X-Y plotter software is available at GitHub and comes without any warranty.)

The basics

To drive a stepper motor with the StepStick (or compatible) driver, you basically need to send a high and then a low signal to the respective pin. Or in Arduino terms:

digitalWrite(stepPin, HIGH);
digitalWrite(stepPin, LOW);

Where stepPin is the pin number for the stepper: 3 for motor 1 and 6 for motor 2.

Before the stepper does any work, it must be enabled.

digitalWrite(enPin, LOW);

Actually, the StepStick knows three states for the pin:

  • Low: Motor is enabled
  • High: Motor is disabled
  • Pin not connected: Motor is enabled but goes into an energy-saving mode after a while

When a motor is enabled, its coils are powered and it keeps its position. It is almost impossible to manually turn its axis. This is good for precision purposes, but it also means that both motors and driver chips are “flooded” with power and will warm up.

And last, but not least, we need a way to determine the plotter’s direction:

digitalWrite(dirPin, direction);

The following table lists the functions and the pins

Function Motor1 Motor2
Enable 2 5
Direction 4 7
Step 3 6

Before we can use the pins, we need to set them to OUTPUT mode in the setup() section of the code

pinMode(enPin1, OUTPUT);
pinMode(stepPin1, OUTPUT);
pinMode(dirPin1, OUTPUT);
digitalWrite(enPin1, LOW);

With this knowledge, we can easily get the stepper to move around:

    totalRounds = …
    for (int rounds =0 ; rounds < 2*totalRounds; rounds++) {
       if (dir==0){ // set direction
         digitalWrite(dirPin2, LOW);
       } else {
         digitalWrite(dirPin2, HIGH);
       delay(1); // give motors some breathing time
       dir = 1-dir; // reverse direction
       for (int i=0; i < 6400; i++) {
         int t = abs(3200-i) / 200;
         digitalWrite(stepPin2, HIGH);
         delayMicroseconds(70 + t);
         digitalWrite(stepPin2, LOW);
         delayMicroseconds(70 + t);

This will make the slider move left and right. This code deals with one stepper, but for an X-Y plotter, we have two axes to consider.

Command interpreter

I started to implement a simple command interpreter to use path specifications, such as:

"X30|Y30|X-30 Y-30|X-20|Y-20|X20|Y20|X-40|Y-25|X40 Y25

to describe relative movements in millimeters (1mm equals 80 steps).

The plotter software implements a continuous mode, which allows a PC to feed large paths (in chunks) to the plotter. (This how I plotted the Hilbert curve in this video.)

Building a better pen holder

In the first image above, the pen was tied to the Y-axis with some metal string. This was not precise and also did not enable the software to raise and lower the hand (this explains the big black dots).

I have since created a better, more precise pen holder that uses a servo to raise and lower the pen. This new, improved holder can be seen in this picture and in the Hilbert curve video linked above.

The pen is attached with a little clamp (the one shown is a size 8 clamp typically used to attach cables to walls). The servo arm can raise the pen; when the arm goes down, gravity will lower the pen.

Driving the servo

Driving the servo is relatively straightforward: Just provide the position and the servo does all the work.


// Servo pin
#define servoData PIN_A1

// Positions
#define PEN_UP 10
#define PEN_DOWN 50

Servo penServo;

void setup() {
  // Attach to servo and raise pen

I am using the servo headers on the Motor 4 place of the FabScan shield, so I’ve used analog pin 1.

Lowering the pen is as easy as:


Next steps

One of my next steps will be to add some end detectors, but I may skip them and use the StallGuard mode of the TMC2130 instead. Those detectors can also be used to implement a home command.

And perhaps in the future I’ll add a real Z-axis that can hold an engraver to do wood milling, or PCB drilling, or acrylic engraving, or … (a laser comes to mind as well).

This was originally published on the Some Things to Remember blog and is reprinted with permission.

System Tar and Restore – A Versatile System Backup Script for Linux

System Tar and Restore is a versatile system backup script for Linux systems. It comes with two bash scripts, the main script and a GUI wrapper script, which perform in three modes: backup, restore and transfer.

Read Also: 14 Outstanding Backup Utilities for Linux Systems


  1. Full or partial system backup
  2. Restore or transfer to the same or different disk/partition layout.
  3. Restore or transfer backup to an external drive such as USB, SD card etc.
  4. Restore a BIOS-based system to UEFI and vice versa.
  5. Arrange a system in a virtual machine (such as virtualbox), back it up and restore it in a normal system.


  1. gtkdialog 0.8.3 or later (for the gui).
  2. tar 1.27 or later (acls and xattrs support).
  3. rsync (for Transfer Mode).
  4. wget (for downloading backup archives).
  5. gptfdisk/gdisk (for GPT and Syslinux).
  6. openssl/gpg (for encryption).

How to Install System Tar and Restore Tool in Linux

To install System Tar and Restore program, you need to first install all the required software packages as listed below.

$ sudo apt install git tar rsync wget gptfdisk openssl [On Debian/Ubuntu]
# yum install git tar rsync wget gptfdisk openssl [On CentOS/RHEL]
# dnf install git tar rsync wget gptfdisk openssl [On Fedora]

Once all the required packages installed, now it’s time to download these scripts by cloning the system tar and restore repository to your system and run these scripts with root user privileges, otherwise, use the sudo command.

$ cd Download
$ git clone
$ cd system-tar-and-restore/
$ ls
Install System Tar and Restore

Install System Tar and Restore

Linux System Backup

First create a directory where your system backup files will be stored (you can actually use any other directory of your choice).

$ sudo mkdir /backups

Now run the following command to create a system backup file in /backups directory, the archive file will be compressed using the xz utility, where the flags are.

  • -i – specifies the operation mode(0 meaning backup mode).
  • -d – specifies destination directory, where the backup file will be stored.
  • -c – defines the compression utility.
  • -u – allows for reading additional tar/rsync options.
$ sudo ./ -i 0 -d /backups -c xz -u "--warning=none"
Perform Linux System Backup

Perform Linux System Backup

To exclude the /home in the backup, add the -H flag, and use gzip compression utility as shown.

$ sudo ./ -i 0 -d /backups -c gzip -H -u "--warning=none"

Restore Linux System Backup

You can also restore a backup as in the following command.

$ sudo ./ -i 1 -r /dev/sdb1 -G /dev/sdb -f /backups/backup.tar.xz

where the option are:

  • -i – specifies operation mode (1 meaning restore mode).
  • -r – defines targeted root (/) partition.
  • -G – defines the grub partition.
  • -f – specified the backup file path.

The final example show how to run it in transfer mode (2). The new option here is -b, which sets the boot partition.

$ sudo ./ -i 2 -r /dev/sdb2 -b /dev/sdb1 -G /dev/sdb

In addition, if you have mounted /usr and /var on separate partitions, considering the previous command, you can specify them using the -t switch, as shown.

$ sudo ./ -i 2 -r /dev/sdb2 -b /dev/sdb1 -t "/var=/dev/sdb4 /usr=/dev/sdb3" -G /dev/sdb

We have just looked a few basic options of System Tar and Restore script, you can view all available options using the following command.

$ --help 

If you are accustomed to graphical user interfaces, you can use the GUI wrapper instead. But you need to install gtkdialog – used to create graphical (GTK+) interfaces and dialog boxes using shell scripts in Linux.

System Tar and Restore Gui

System Tar and Restore Gui

You can find more command-line usage examples from the System Tar and Restore Github repository:


System Tar and Restore is a simple yet powerful, and versatile system backup script for Linux systems. Try it out comprehensively and share your thoughts about it via the feedback form below.

Newsroom – A Modern CLI to Get Your Favorite News in Linux

If you are a command-line addict like me, then you would always want to do everything such as controlling your Linux systems (local or remote), programming, searching Google using Googler, playing text-based games, reading your favorite news and much more from within a terminal window.

Okay, Linux newbies (or possibly any other Linux users out there) are probably asking, “how can i get latest news from the command-line?” In this article, we are going to show you how to do this using newsroom.

Read Also: Cricket-CLI – Watch Live Cricket Scores in Linux Terminal

Newsroom is a simple, free open-source modern command-line tool to get your favorite news in Linux. It is developed using JavaScript (NodeJS to be specific), so it is cross-platform and runs on Linux systems, Mac OSX as well as Windows.

The default newsroom sources are: hackernews, techcrunch, inside, bnext, ithome, wanqu, nodeweekly, codetengu and gankio. You can configure your own sources via OPML (Outline Processor Markup Language) – an XML-based format designed for exchange of outline-structured information between applications running on different operating systems and environments.

Linux Terminal Newsreader

Linux Terminal Newsreader


  1. NPM – Default NodeJS package manager; you can install NodeJS and NPM at once on your Linux system.

How to Install Newsroom in Linux Systems

Once you have NPM installed on your system, you install newsroom with root privileges using the sudo command, as follows (the -g switch means install globally: to be used by all users on the system):

$ sudo npm install -g newsroom-cli

Once you have successfully installed newsroom, the CLI will register the newsroom and nr commands in your shell. You can start using it as follows, it will take you to an interactive command line interface where you can choose your news source:

$ newsroom 
News Sources

News Sources

Use the Up and Down arrows to select a news source from a list of predefined sources, as shown below.

Select News Source

Select News Source

After choosing a news source, all news titles will be shown as in the following screen shot, then you can select an item by pressing the Space bar, after making a selection, the item will be indicated by a green colored bullet, as shown in the screen shot below. You can press Enter to read it in detail from a web browser.

Select News Topic

Select News Topic

To terminate the command-line, type [Ctrl+C].

You can also provide the source you want to get news from and the number of news items to be displayed as shown.

$ newsroom [news_source] [number_of_news_items]

For example:

$ newsroom hackernews 3

Last but not least, you can also use your own awesome OPML file, as follows. This way, you can add your own news sources such as,, etc.

$ newsroom -o <your-awesome-list.opml>

To view the newsroom help message, use the command below.

$ newsroom --help

For more information check out Newsroom Github repository and learn how to create OPML file.

Newsroom is a great way to get your favorite news in Linux on the command-line. Try it out and share your thoughts about it, with us via the feedback form below.

Training Your Employees in cPanel & WHM: Best Practices

There are multiple factors that contribute to your hosting company’s success. One undeniable factor that separates good hosting providers from great hosting providers is the level of technical support they provide their customers. Providing customers with easy, fast solutions when they need it is the best way to increase loyalty, retention, as well as promote evangelism for your business.

We want to make sure your technical support staff is at its best, so we’re providing a nifty course of action to help you prepare your team to better support your clients. Check out our Training Game Plan below. Also, learn how you can partner up with the cPanel Training Team to augment and complement your current training initiatives.

Training Game Plan: Assessment

Step 1: What does your current training look like?

To determine this, you’ll need to take inventory of your current training efforts as well as how your staff is currently being trained for both cPanel & WHM and Linux. Questions to consider while taking an inventory include:

  • Do you have key subject matter experts that are responsible for educating junior team members?
  • Are employees expected to have a base level understanding by the time they start?
  • What things is your business doing to add to their technical knowledge?

According to Training Industry Quarterly, it takes approximately 1 to 2 years before an employee is fully productive. As you’ll find out in this blog, there are several things you can do as a technical lead to shorten this adjustment period for your staff.

Step 2: What is the single most important need that would be addressed by training?

After doing a high-level survey of your current training program, your next step should be to run a diagnostic to find out what is the most important factor or need that can be addressed by training.

What are the skills that transition your staff members from competent technicians to extraordinary problem solvers? Is it a robust knowledge of full system backups? Perhaps a strong understanding of the boot process? Maybe it is just getting a better understanding with EasyApache.

Once you figure out that detail, you can begin to optimize your training efforts.

Step 3: Who needs to be trained?

This part of the process can be tricky but will greatly aid your operations. Sort out who on your team needs to be trained as well as who in your organization has the time and knowledge to assist these team members. Consider whether this may lead to changes in their roles or responsibilities as well as their processes.

Step 4: When do you need these changes by?

Make a game plan for when you’d like to make these changes by. Assess whether your team members will be able to take time off of their normal duties for training or will you be incentivizing training with overtime benefits? Can everyone who needs the training be present at the same time?

Get Specialized Help from the cPanel Training Team

We have provided a toolbox of resources to help you train your staff members and better serve your customers. In addition to our Knowledge Base and Documentation notes, our dedicated team of training personnel encourages you to try our completely free online training program, cPanel University.

In addition to cPanel University, our team is also equipped to provide specialized webinars and catered lessons for cPanel Partners.

Don’t hesitate when it comes to improving customer satisfaction. Talk to your account manager or head to cPanel University and begin your training.

Cricket-CLI – Watch Live Cricket Scores in Linux Terminal

enableHover: false,
enableTracking: true,
buttons: { twitter: {via: ‘tecmint’}},
click: function(api, options){
share: {
facebook: true
template: ‘{total}’,
enableHover: false,
enableTracking: true,
click: function(api, options){
share: {
googlePlus: true
template: ‘{total}’,
enableHover: false,
enableTracking: true,
urlCurl: ‘’,
click: function(api, options){
share: {
linkedin: true
template: ‘{total}’,
enableHover: false,
enableTracking: true,
buttons: {
linkedin: {
description: ‘Cricket-CLI – Watch Live Cricket Scores in Linux Terminal’,media: ‘’ }
click: function(api, options){
// Scrollable sharrre bar, contributed by Erik Frye. Awesome!
var shareContainer = jQuery(“.sharrre-container”),
header = jQuery(‘#header’),
postEntry = jQuery(‘.entry’),
$window = jQuery(window),
distanceFromTop = 20,
startSharePosition = shareContainer.offset(),
contentBottom = postEntry.offset().top + postEntry.outerHeight(),
topOfTemplate = header.offset().top;
shareScroll = function(){
if($window.width() > 719){ var scrollTop = $window.scrollTop() + topOfTemplate,
stopLocation = contentBottom – (shareContainer.outerHeight() + topSpacing);
if(scrollTop > stopLocation){
shareContainer.offset({top: contentBottom – shareContainer.outerHeight(),left: startSharePosition.left});
else if(scrollTop >= postEntry.offset().top-topSpacing){
shareContainer.offset({top: scrollTop + topSpacing, left: startSharePosition.left});
}else if(scrollTop 1024)
topSpacing = distanceFromTop + jQuery(‘.nav-wrap’).outerHeight();
topSpacing = distanceFromTop;

Ternimal – Show Animated Lifeform in Your Linux Terminal

Ternimal (not terminal, yes, we also read it as terminal the first time) is a simple, very flexible program that simulates an animated lifeform in your terminal using Unicode block symbols. It simply colors distance fields from a segment of a meandering path.

It works in most Linux terminal emulators and with most monospaced fonts, and has been tested on Linux (almost all terminal emulators render ternimal flawlessly), Mac OS as well as Windows.

Read Also: Impress Your Friends with This Fake Hollywood Hacker Terminal

Install Ternimal in Linux Systems

Ternimal has no dependencies apart from the Rust Standard Library (>= 1.20) must be installed, at which point Ternimal can be built with as shown.

$ git clone
$ cd ternimal
$ rustc -O

After building it, you can start using ternimal to display different colored animated lifeforms such as snakes, the rainbow, multiple disconnected entities moving in a coordinated fashion and more.

Next, to run ternimal like any other command on your system, move the executable built above, into a directory in your PATH environment variable (for example ~/bin/).

$ mkdir ~/bin #create bin in your home folder if it doesn’t exist.
$ cp ternimal ~/bin 

The following are just a few examples of what ternimal can do.


The following command will display a swarm, you can terminate it by pressing [Ctrl+C].

$ ternimal length=600 thickness=0,4,19,0,0

Animated Swarm in Linux Terminal


This command will display an animated snake.

$ ternimal length=100 thickness=1,4,1,0,0 radius=6,12 gradient=0:#666600,0.5:#00ff00,1:#003300

Animated Snake in Linux Terminal


And the following command will display a thick rainbow.

$ ternimal length=20 thickness=70,15,0,1,0 padding=10 radius=5 gradient=0.03:#ffff00,0.15:#0000ff,0.3:#ff0000,0.5:#00ff00

Animated Rainbow in Linux Terminal

As the developer put it right, “from a practical perspective, the program is not very useful. It does, however, contain quite a bit of cool technology and math”.

Ternimal Github repository:

Ternimal is just one of those Linux fun terminal programs for exercising your brain (or possibly eyes); after working on a command-line for a long period of time, you can call up one of those ternimals (especially a swarm) and just gaze at it. Use the feedback form below to share your thoughts about it.