Download Google Chrome Linux 70.0.3538.67

Google Chrome, or Chrome, is a web browser software that tries to compete with major players, such as Mozilla Firefox, Internet Explorer, Safari, and even the Opera web browser. It is available for the Linux, Android, iOS, Microsoft Windows, and Mac OS X operating systems. But Google Chrome is more than a web browser, as it combines sophisticated open source technology, borrowed from the Chromium application, into a minimal design, all in order to help users surf the web much faster, a lot easier, and safer than ever before.

Features at a glance

A unique functionality of the Google Chrome application is its ability to search the web directly from the address bar. Just type one or more words in the address bar and immediately get suggestions for popular web pages. The application displays thumbnails of your top websites on the new tab page, a function that is popularly called Speed Dial. This functionality is also available on other similar products, and it allows you to easily access your favorite web pages instantly, with lightning speed, from any new tab.

Comes with Private browsing mode

Private browsing is also a strong point of the Google Chrome web browser, enabling users to surf the Internet in an incognito window, when they don’t want to save their browsing history, or if they’re hiding from NSA (National Security Agency). Just like Mozilla Firefox, the Chrome web browser includes a handy cloud service, which allows you to safely and securely sync all of your passwords, browsing history, bookmarks, apps, extensions, autofill, themes, and opened tabs across multiple devices.

Will never replace Mozilla Firefox

Because we heard such good things about it, we’ve tried a little experiment with the Google Chrome and Mozilla Firefox products. We wanted to replace the powerful Mozilla Firefox web browser that we use on many computers here at Softpedia, with Google Chrome. Surprisingly, the Chrome browser proved to be a poor product for our needs, especially because it misses some important extensions that are currently available only on the Mozilla Firefox application, such as Clippings, Copy Plain Text, or InFormEnter.

You should try Mozilla Firefox

These days, you can’t avoid Google’s web services. Whether you sign up for Gmail and Google+, or you just want to use its quite powerful office tools (yes, this short review is written in Google Documents), you may find you end up asking yourself, “Why not use Chrome?”. The answer is simple, use Chrome if you just want to use Google’s powerful services and nothing more. But if you want a serious web browser, you should try Mozilla Firefox.

Source

Stratos: A Cloud Foundry UI – Past, Present and Future

Share with friends and colleagues on social media

Neil MacDougall and Richard Cox of SUSE gave a talk (and demo) at the recent Cloud Foundry Summit EU, detailing the past, present, and future of Stratos–an open source UI for Cloud Foundry. Like everything SUSE works on, Stratos is open source. Although SUSE remains the project lead on it, Stratos is now part of the Cloud Foundry Foundation.

The main purpose of the talk is to help grow awareness of Stratos and to get more people contributing to it via code, UX, ideas, or other improvements. Lots of people and organizations use Stratos currently, including IBM, Orange, and Cloud.gov, but it could improve more quickly if even more people actively contributed to it. Stratos is, of course, the UI in our SUSE Cloud Application Platform.

The most exciting part of the talk is news that Stratos is moving to regular monthly releases with an intriguing set of upcoming features, including extensions, GitLab support and support for private source repositories.

The Cloud Foundry Foundation has posted all recorded talks from the Summit on YouTube. Check them out if you want to learn more about the latest news from the Cloud Foundry community. We’ll be posting more SUSE talks here over the coming days. Watch Neil and Richard’s talk below:

Share with friends and colleagues on social media

Source

Internationalizing the Kernel | Linux Journal

At a time when many companies are rushing to internationalize their products and
services to appeal to the broadest possible market, the Linux kernel is
actively resisting that trend, although it already has taken over the
broadest possible market—the infrastructure of the entire world.

David Howells recently created some sample code for a new kernel library,
with some complex English-language error messages that were generated from
several sources within the code. Pavel Machek objected that it would be
difficult to automate any sort of translations for those messages, and that
it would be preferable simply to output an error code and let something in
userspace interpret the error at its leisure and translate it if needed.

In this case, however, the possible number of errors was truly vast, based
on a variety of possible variables. David argued that representing each and
every one with a single error code would use a prohibitively large number of
error codes.

Ordinarily, I might expect Pavel to be on the winning side of this debate,
with Linus Torvalds or some other top developer insisting that support for
internationalization was necessary in order to give the best and most useful
possible experience to all users.

However, Linus had a very different take on the situation:

We don’t internationalize kernel strings. We never have. Yes, some people tried to do some database of kernel messages for translation purposes, but I absolutely refused to make that part of the development process. It’s a pain.

For some GUI project, internationalization might be a big deal, and it might be “TheRule(tm)”. For the kernel, not so much. We care about the technology, not the language.

So we’ll continue to give error numbers for “an error happened”. And if/when people need more information about just what _triggered_ that error, they are as English-language strings. You can quote them and google them without having to understand them. That’s just how things work.

[…]

There are places where localization is a good idea. The kernel is *not* one of those places.

He added later:

I really think the best option is “Ignore the problem”. The system calls
will still continue to report the basic error numbers (EINVAL etc), and the extended error strings will be just that: extended error strings. Ignore them if you can’t understand them.

That said, people have wanted these kinds of extended error descriptors forever, and the reason we haven’t added them is that it generally is more pain than it is necessarily worth.

Pavel still felt that, since David’s code was all new, there was no ancient
cruft standing in the way of implementing internationalization in this one
new area. He agreed there was no point in a lot of other cases, but for this
one, it felt like being given a fresh chance.

But Linus said, “Really. No translation. No design for translation. It’s a
nasty nasty rat-hole, and it’s a pain for everybody.”

He added, “the fact is, I want simple English interfaces. And people who
have issues with that should just not use them. End of story. Use the
existing error numbers if you want internationalization, and live with the
fact that you only get the very limited error number. It’s really that
simple.”

The discussion ended shortly thereafter. It’s a fascinating rejection of a
very politically popular attitude, based on the technical consideration that
keeping the programming interface simple is worth more than keeping the user interface friendly.

Source

How to Set Up Your S3 Bucket with HTTPS in an Hour | Linux.com

Amazon Web Services (AWS) has great resources for issuing and using SSL certificates, but the process of migrating existing resources to HTTPS can be complex — and it can also require many intermediate steps.

But as this tutorial shows, you can get your S3 bucket set up in just an hour or two.

Why is this necessary, anyway?

Reason 1: Google is Forcing the Issue

The big driver for this need is Google, which is phasing support for HTTP connections out of Google Chrome.

Currently, Chrome warns users when they’re accessing a site HTTP, but doesn’t prevent it altogether….

To get started, you’ll need an SSL certificate. On anything but AWS, the best option is Let’s Encrypt SSL certificates, which issues free certificates to all.

Read more at The New Stack

Source

mod_fastcgi Installation on Apache 2.2

How to install mod_fastcgi

What is mod_fastcgi?

mod_fastcgi is an Apache module for interfacing with CGI programs allowing a server to handle more requests at one time. It does this by keeping an instance of php running in the background. When apache receives the request it forwards it to FasctCGI. It can increase performance and reduce memory useage over mod_php. If you have not already done so, you will need to setup php-fpm for this to work. Please the following guide on how to do so Install PHP-FPM

Install mod_fastcgi

First get the required the required packages

wget -O /usr/src/mod_fastcgi-2.4.6.tar.gz https://github.com/txduncan/mod_fastcgi/blob/master/mod_fastcgi-2.4.6.tar.gz

Change to the download directory:

cd /usr/src

Uncompress the package:

tar xfvz mod_fastcgi-2.4.6.tar.gz

Copy the make file:

cp /usr/src/mod_fastcgi-2.4.6/Makefile.AP2 /usr/src/mod_fastcgi-2.4.6/Makefile

Make and install the package

make top_dir=/usr/lib64/httpd make top_dir=/usr/lib64/httpd install

If the build directory differs from the standard apache build you will need to update top_dir to the parent directory of the build directory

Configure Apache to use mod_fastcgi

Edit /etc/httpd/conf/httpd.conf and add

LoadModule fastcgi_module lib/apache/mod_fastcgi.so

To make the entire Apache server to use php-fpm with mod_fastcgi:

Comment out any additional references to php in httpd.conf

# LoadModule php5_module modules/libphp5.so
# AddType application/x-httpd-php .php

Edit /etc/httpd/conf/httpd.conf and add the following

LoadModule fastcgi_module modules/mod_fastcgi.so

Edit /etc/httpd/conf.d/fastcgi.conf and add the following

<IfModule mod_fastcgi.c>
FastCGIExternalServer /usr/sbin/php-fpm -host 127.0.0.1:9000
AddHandler php-fastcgi .php
Action php-fastcgi /usr/sbin/php-fpm.fcgi
ScriptAlias /usr/sbin/php-fpm.fcgi /usr/sbin/php-fpm
<Directory /usr/sbin>
Options ExecCGI FollowSymLinks
SetHandler fastcgi-script
Order allow,deny
Allow from all
</Directory>
</IfModule>

Be sure to update the path to the php-fpm binary in the above configuration, to find it do:

which php-fpm

Add a include in /etc/httpd/conf/httpd.conf

Include /etc/httpd/conf.d/fastcgi.conf

Restart Apache to load the new configuration:

service httpd restart

Once you have done that go ahead and create a test file in a Apache document root:

<?php
phpinfo();
?>

Visiting that page should show the PHP variables from the newly configured mod_fastcgi.

May 21, 2017LinuxAdmin.io

Source

Ibase’s Taiwan Excellence Award winners include two new railway computers

Ibase’s Taiwan Excellence Award winners include two new railway computers

Oct 24, 2018 — by Eric Brown

Ibase announced that its new Atom E3845 based “MPT-3000RP” — a EN50155-TX certified, IP67-protected railway PC — won a Taiwan Excellence Award along with a “DRD-037PC” railway signage PC and two recent Ibase embedded systems.

Ibase has won four 2019 Taiwan Excellence Awards, including one for a new MPT-3000RP railway computer, which is pictured at top and detailed farther below. The other winners include a yet to be announced, dual-screen DRD-037PC transportation computer and two systems that have recently been profiled on LinuxGizmos: the MAI602-M4D80 motion control computer and SI-324 signage player:

  • DRD-037PC — This ultra-wide, 21:6 ratio dual-screen transportation PC has yet to receive a spec list, but there’s a landing page linked to above. It likely runs on an Intel CPU and may well support Linux as well as Windows. The IP65 protected system meets EN50155 rolling stock equipment and EN45545-2 fire protection standards for railway applications. It features a screen on both sides to enables applications such as information and entertainment displays for railway platforms or for internally or externally mounted railway car displays. Features include an M.2 connector, multiple GbE ports, and “a wide viewing angle, high brightness and high resolution display,” says Ibase.

    DRD-037PC

  • MAI602-M4D80 — This rugged, Linux-supported motion control computer is designed for factory production applications, including machine vision systems. The system runs on Intel 6th or 7th Gen Core processors and integrates a PCIe card with 4-axis motion control and a camera. You also get 80-channel DIO and mini-PCIe expansion.

    MAI602-M4D80 (left) and SI-324
    (click images to enlarge)

     

  • SI-324 — This Ubuntu-ready signage PC runs on an AMD Ryzen Embedded V1000 SoC backed up by up to 32GB DDR4. The SI-324 provides four HDMI 2.0 ports for up to four simultaneous [email protected] displays or dual [email protected] displays. Other features include 2x GbE, 2x USB 3.0, mini-PC and M.2 expansion, and remote EDID management.

MPT-3000RP

Like the DRD-037PC, the MPT-3000RP is an EN50155 and EN45545 compliant transportation computer optimized for railway applications. However, instead of acting as a signage player, this is a more general-purpose computer designed to control a variety of onboard systems.

Protected from water and other ingress per IP67, the 270 x 210 x 63mm MPT-3000RP is equipped with a quad-core Intel Atom E3845 clocked at 1.91GHz. No OS support was listed.

MPT-3000RP front and side views
(click images to enlarge)

 

You can load up to 4GB DDR3L-1333 via dual slots, and store data with a CFast slot and a 2.5-inch SATA bay. In addition, one of the three M.2 sockets is designed for 2280-form factor SATA cards.

A second M.2 is designed for wireless 3042 cards, and a third M.2 slot is for a variety of 2230 cards (USB 2.0/PCIe). You also get half- and full-size mini-PCIe slots with USB 2.0 and USB 2.0/PCIe support, respectively. Dual SIM card slots and 4x antenna connectors are also available.

All the external interfaces use rugged M12 connectors. You get 2x GbE, 2x USB 2.0, and 3x serial ports, as well as single VGA, CAN, and wide-range voltage GPIO ports. There’s also an M12 connector for the “DC 9V~36V / 72V / 110V” input. Or as the announcement says, the system provides “interchangeable modular power supplies supporting a variety of inputs” and “full vehicle battery power control.”

The MPT-3000RP OS is wall-mountable and supports -40 to 70°C operation with an SSD. It also offers EN61373 compliant shock and vibration resistance. Other certifications include EN50153:2014, EN50121-3-2:2015, CE class A, and FCC class A.

Further information

No pricing or availability information was provided for the MPT-3000RP. More information may be found on Ibase’s MPT-3000RP product page (PDF).

Source

CloudLinux 7 and CloudLinux 6 Hybrid kernel updated

CloudLinux 7 and CloudLinux 6 Hybrid kernel updated

CloudLinux 7 and CloudLinux 6 Hybrid kernel version 3.10.0-714.10.2.lve1.5-19.8 is now available for download from our production repository.

Changelog:

  • KMODLVE-205: protected LVE cgroups from external removal to avoid kmodlve module crash;
  • KMODLVE-208: fixed the lvp tree lock deadlock which leads to kernel soft lockup and reboot;
  • KMODLVE-203: lvp global tree is now used to simplify ID management;
  • KMODLVE-206: fixed a typo in lvp Radix Tree initialization;
  • CLKRN-360: fixed NFS client deadlock on initialization.

To update a kernel, please use the following command.

CloudLinux 7:

yum install kernel-3.10.0-714.10.2.lve1.5.19.8.el7

CloudLinux 6 Hybrid:

yum install kernel-3.10.0-714.10.2.lve1.5.19.8.el6h

Source

8-Way Linux Distribution Benchmarks On The Intel Core i9 9900K – One Distro Wins 67% Of The Time

Following last week’s release of the Intel Core i9 9900K, I spent several days testing various Linux distributions on this latest Core i9 CPU paired with the new ASUS Z390-A PRIME motherboard. I was testing not only to see that all of the Linux distributions were playing fine with this latest and greatest desktop hardware but also how the performance was looking. Benchmarked this round on the i9-9900K was Ubuntu 18.04.1 LTS, Ubuntu 18.10, Clear Linux 25720, Debian Buster Testing, Manjaro 18.0-RC3, Fedora Workstation 29, openSUSE Tumbleweed, and CentOS 7.

The Intel Core i9 9900K as a reminder is the company’s first desktop 8-core CPU plus Hyper Threading. The 9900K has a base clock frequency of 3.6GHz but can clock up to 5.0GHz while having a 16MB L3 cache, dual channel DDR4-2666 support, UHD Graphics 630, and the entire processor fits within a 95 Watt power budget. The launch price on this new Core i9 9900K is $500 USD. See last week’s Core i9 9900K benchmark results for more information on how this CPU competes with the AMD Ryzen processors and compares to past Intel CPUs, even seeing how it compares to the old Core 990X.

The same system was used throughout the entire testing (obviously) and that consisted of the Intel Core i9 9900K at stock frequencies, ASUS PRIME Z390-A motherboard, 2 x 8GB DDR4-3200 Corsair memory, Samsung 970 EVO 250GB NVMe SSD, and a Radeon RX 580 graphics card.

All eight tested Linux distributions were run in their stock / out-of-the-box configuration. All of these Linux benchmarks on the Intel Core i9 9900K were run in a fully-automated and reproducible manner using the open-source Phoronix Test Suite benchmarking software.
Source

New security flaw impacts most Linux and BSD distros

Linux and BSD variants that employ the popular X.Org Server package –almost all do– are vulnerable to a new vulnerability disclosed on Thursday.

The vulnerability allows an attacker with limited access to a system, either via a terminal or SSH session, to elevate privileges and gain root access.

It can’t be used to break into secure computers, but it is still useful to attackers because it can quickly turn simple intrusions into bad hacks.

While the vulnerability is not in the redoubtable category of “as-bad-as-it-gets” flaws, the security flaw could not be ignored by the Linux and infosec communities once its existence was made public on Thursday.

The reason is because of the place it was found in –namely the X.Org Server package– a core graphics and windowing technology that is the base for the more famous KDE and GNOME desktop interface suites, and found in all major Linux and BSD distros that offer users a windows-based interface.

However, according to a report authored by security researcher Narendra Shinde, since May 2016, the X.Org Server package had contained a vulnerability that allowed attackers to either elevate privileges and/or overwrite any files on the local system, even crucial OS data.

The issue, tracked as CVE-2018-14665, was caused by improper handling of two command-line options, namely -logfile and -modulepath, which allowed an attacker to insert and execute their own malicious operations. The flaw was exploitable only when X.Org Server was configured to run with root privileges itself, which is a common setup for many distros.

X.Org Foundation developers released X.Org Server 1.20.3 to fix this issue. The fix disables support for these two command-line arguments if the X.Org Server package runs with root privileges.

Distros like Red Hat Enterprise Linux, Fedora, CentOS, Debian, Ubuntu, and OpenBSD have already been confirmed as impacted, and other smaller projects are most likely affected as well.

Security updates that contain the patched X.Org Server package are expected to roll out in the following hours and days.

Proof-of-concept code was also released earlier today by Matthew Hickey, Co-Founder and Director at Hacker House, a UK-based cyber-security firm.

“An attacker can literally take over impacted systems with 3 commands or less,” said Hickey on Twitter. “Lots of other ways to exploit e.g crontab. It’s hilarious on how trivial it is.”

Source

How to Install and Use FreeDOS on VirtualBox

This step-by-step guide shows you how to install FreeDOS on VirtualBox in Linux.

Installing FreeDOS on VirtualBox in Linux

In November of 2017, I interviewed Jim Hall about the history behind the FreeDOS project. Today, I’m going to tell you how to install and use FreeDOS. Please note: I will be using VirtualBox 5.2.14 on Solus.

Note: I used Solus as the host operating system for this tutorial because it is very easy to setup. One thing you should keep in mind is that Solus’ Software Center contains two versions of VirtualBox: virtualbox and virtualbox-current. Solus gives you the option to use the linux-lts kernel and the linux-current kernel. virtualboxis modified for linux-lts and virtualbox-current is for linux-current.

Step 1 – Create New Virtual Machine

Once you open VirtualBox, press the “New” button to create a new virtual machine. You can name it whatever you want, I just use “FreeDOS”. You can use the label to specify what version of FreeDOS you are installing. You also need to select the type and version of the operating system you will be installing. Select “Other” and “DOS”.

Step 2 – Select Memory Size

The next dialog box will ask you how much of the host computer’s memory you want to make available to FreeDOS. The default is 32MB. Don’t change it. Back in the day, this would be a huge amount of RAM for a DOS machine. If you need to, you can increase it later by right-clicking on the virtual machine you created for FreeDOS and selecting Settings -> System.

Step 3 – Create Virtual Hard Disk

Next, you will be asked to create a virtual hard drive where FreeDOS and its files will be stored. Since you haven’t created one yet, just click “Create”.

The next dialog box will ask you what hard disk file type you want to use. This default (VirtualBox Disk Image) works just fine. Click “Next”.

The next question you will encounter is how you want the virtual disk to act. Do you want it to start small and gradually grow to its full size as you create files and install programs? Then choose dynamically allocated. If you prefer that the virtual hard drive (vhd) is created at full size, then choose fixed size. Dynamically allocated is nice if you don’t plan to use the whole vhd or if you don’t have very much free space on your hard drive. (Keep in mind that while the size of a dynamically allocated vhd increases as you add files, it will not drop when you remove files.) I prefer dynamically allocated, but you can choose the option that serves your needs best and click “Next”.

Now, you can choose the size and location of the vhd. 500 MB should be plenty of space. Remember most of the programs you will be using will be text-based, thus fairly small. Once you make your adjustments, click Create,

Step 4 – Attach .iso file

Before we continue, you will need to download the FreeDOS .iso file. You will need to choose the CDROM “standard” installer.

Once the file has been downloaded, return to VirtualBox. Select your virtual machine and open the settings. You can do this by either right-clicking on the virtual machine and selecting “Settings” or highlight the virtual machine and click the “Settings” button.

Now, click the “Storage” tab. Under “Storage Devices”, select the CD icon. (It should say “Empty” next to it.) In the “Attributes” panel on the right, click on the CD icon and select the location of the .iso file you just downloaded.

Note: Typically, after you install an operating system on VirtualBox you can delete the original .iso file. Not with FreeDOS. You need the .iso file if you want to install applications via the FreeDOS package manager. I generally keep the ,iso file attached the virtual machine in case I want to install something. If you do that, you have to make sure that you tell FreeDOS you want to boot from the hard drive each time you boot it up because it defaults to the attached CD/iso. If you forget to attach the .iso, don’t worry. You can do so by selecting “Devices” on the top of your FreeDOS virtual machine window. The .iso files are listed under “Optical Drives”.

Step 5 – Install FreeDOS

Now that we’ve completed all of the preparations, let’s install FreeDOS.

First, you need to be aware of a bug in the most recent version of VirtualBox. If you start the virtual machine that we just created and select “Install to harddisk” when the FreeDOS welcome screen appears, you will see an unending, scrolling mass of machine code. I’ve only run into this issue recently and it affects both the Linux and Windows versions of VirtualBox. (I know first hand.)

To get around this, you need to make a simple edit. When you see the FreeDOS welcome screen, press Tab. (Make sure that the “Install to harddrive” option is selected.) Type the word raw after “fdboot.img” and hit Enter. The FreeDOS installer will then start.

The first part of the installer will handle formatting your virtual drive. Once formatting is completed, the installer will reboot. When the FreeDOS welcome screen appears again, you will have to re-enter the raw comment you used earlier.

Make sure that you select “Yes” on all of the questions in the installer. One important question that doesn’t have a “Yes” or “No” answer is: “What FreeDOS packages do you want to install?. The two options are “Base packages” or “Full installation”. Base packages are for those who want a DOS experience most like the original MS-DOS. The Full installation includes a bunch of tools and utilities to improve DOS.

At the end of the installation, you will be given the option to reboot or stay on DOS. Select “reboot”.

Step 6 – Setup Networking

Unlike the original DOS, FreeDOS can access the internet. You can install new packages and update the ones already you have installed. In order to use networking, you need to install several applications in FreeDOS.

First, boot into your newly created FreeDOS virtual machine. At the FreeDOS selection screen, select “Boot from System harddrive”.

Now, to access the FreeDOS package manager, type fdimples. You can navigate around the package manager with the arrow keys and select categories or packages with the space bar. From the “Networking” category, you need to select fdnet. The FreeDOS Project also recommends installing mtcp and wget. Hit “Tab” several times until “OK” is selected and press “Enter”. Once the installation is complete, type reboot and hit enter. After the system reboots, boot to your system drive. If the network installation was successful, you will see several new messages at the terminal listing your network information.

Note

Sometimes the default VirtualBox setup doesn’t work. If that happens, close your FreeDOS VirtualBox window. Right-click your virtual machine from the main VirtualBox screen and select “Settings”. The default VirtualBox network setting is “NAT”. Change it to “Bridged Adapter” and retry installing the FreeDOS packages. It should work now.

Step 7 – Basic Usage of FreeDOS

Commons Commands

Now that you have installed FreeDOS, let’s look at a few basic commands. If you have ever used the Command Prompt on Windows, you will be familiar with some of these commands.

  • DIR– display the contents of the current directory
  • CD – change the directory you are currently in
  • COPY OLD.TXT NEW.TXT– copy files
  • TYPE TEST.TXT – display content of file
  • DEL TEST.TXT – delete file
  • XCOPY DIR NEWDIR – copy directory and all of its contents
  • EDIT TEST.TXT– edit a file
  • MKDIR NEWDIR – create a new directory
  • CLS – clear the screen

You can find more basic DOS commands on the web or the handy cheat sheet created by Jim Hall.

Running a Program

Running program on FreeDos is fairly easy. When you install an application with the fdimples package manager, be sure to note where the .EXE file of the application is located. This is shown in the application’s details. To run the application, you generally need to navigate to the application folder and type the application’s name.

For example, FreeDOS has an editor named FED that you can install. After installing it, all you need to do is navigate to C:FED and type FED.

Sometimes a program, such as Pico, is stored in the bin folder. These programs can be called up from any folder.

Games usually have an .EXE program or two that you have to run before you can play the game. These setup file usually fix sound, video, or control issues.

If you run into problems that this tutorial didn’t cover, don’t forget to visit the home of FreeDOS. They have a wiki and several other support options.

Have you ever used FreeDOS? What tutorials would you like to see in the future? Please let us know in the comments below.

If you found this article interesting, please take a minute to share it on social media, Hacker News or Reddit.

Source

WP2Social Auto Publish Powered By : XYZScripts.com