Linux Today – How to Install NodeBB Forum on Fedora 29

NodeBB is a Node.js based forum software built for the modern web. It’s built on either a MongoDB or Redis database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB has many modern features out of the box such as social network integration and streaming discussions. Additional functionality is enabled through the use of third-party plugins. NodeBB is an open source project which can be found on Github. In this guide, we will walk you through the step-by-step NodeBB installation process on the Fedora 29 operating system by using Nginx as a reverse proxy, MongoDB as the database and acme.sh and Let’s Encrypt for HTTPS.

Requirements

NodeBB requires the following software to be installed:

  • Node.js version 6 or greater
  • MongoDB version 2.6 or greater or Redis version 2.8.9 or greater
  • Nginx version 1.3.13 or greater
  • Git

NOTE: Installing NodeBB’s dependencies may require more than 512 megabytes of system memory. It is recommended to enable a swap partition to compensate if your Linux system has insufficient memory.

Prerequisites

  • A running Fedora 29 system with at least 1GB or RAM.
  • Domain name with A/AAAA records set up.
  • A non-root user with sudo privileges.

Initial steps

Check your Fedora version:

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

Set up the timezone:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Update your operating system packages (software). This is an important first step because it ensures you have the latest updates and security fixes for your operating system’s default software packages:

sudo dnf check-upgrade || sudo dnf upgrade -y

Install some essential packages that are necessary for basic administration of the Fedora operating system:

sudo dnf install -y curl wget vim bash-completion git socat

For simplicity’s sake, disable SELinux and Firewall:

sudo setenforce 0; sudo systemctl stop firewalld.service; sudo systemctl disable firewalld.service

Step 1: Install Node.js and npm

NodeBB is built on Node.js. We are going to install recommended version for NodeBB which is version 8 at the time of this writing. On Linux, you have a few Node.js installation options: Linux Binaries (x86/x64), Source Code or via Package Managers. We will use Package Management option which makes installing and updating Node.js a breeze.

Download and install the latest Long-Term Support (LTS) release of Node.js from the Fedora repo:

sudo dnf -y install nodejs

To compile and install native add-ons from npm you may also need to install build tools:

sudo dnf install -y gcc-c++ make
# or
# sudo dnf groupinstall -y 'Development Tools'

NOTEnpm is distributed with Node.js – which means that when you download Node.js, you automatically get npm installed on your system.

Check the Node.js and npm versions:

node -v && npm -v
# v10.15.0
# 6.4.1

Npm is a separate project from Node.js, and tends to update more frequently. As a result, even if you’ve just downloaded Node.js (and therefore npm), you’ll probably need to update your npm. Luckily, npm knows how to update itself! To update your npm, type this into your terminal:

sudo npm install -g npm@latest

This command will update npm to the latest stable version.

Re-check npm version with:

npm -v
# 6.7.0

And it should return latest version numbers.

Step 2: Install and configure MongoDB

NodeBB needs a database to store its data, and it supports MongoDB and Redis. In this tutorial, we chose MongoDB as data store engine. So, in the next few steps, we will download and install MongoDB database from the official MongoDB rpm repository:

To install the stable version of MongoDB package, issue the following command:

sudo dnf install -y mongodb mongodb-server

Check the MongoDB version:

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.0.1
# db version v4.0.1

Start and enable (set it to start on reboot) MongoDB service:

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

Check the MongoDB Database Server status by running:

sudo systemctl status mongod.service
# active (running)

Next, create MongoDB database and user for NodeBB.

Connect to MongoDB server first.

mongo

Switch to the built-in admin database.

> use admin

Create an administrative user.

> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

NOTE: Replace the placeholder <Enter a secure password> with your own selected password.

Add a new database called nodebb.

> use nodebb

The database will be created and context switched to nodebb. Next create the nodebb user with the appropriate privileges.

> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

NOTE: Again, replace the placeholder <Enter a secure password> with your own selected password.

Exit the Mongo shell.

> quit()

Restart MongoDB and verify that the administrative user created earlier can connect.

sudo systemctl restart mongod.service
mongo -u admin -p your_password --authenticationDatabase=admin

If all went well, your MongoDB should be installed and prepared for NodeBB. In the next step, we will deal with web server installation and configuration.

Step 3 – Install acme.sh client and obtain Let’s Encrypt certificate (optional)

Securing your NodeBB Forum with HTTPS is not necessary, but it is a good practice to secure your site traffic. In order to obtain TLS certificate from Let’s Encrypt we will use acme.sh client. Acme.sh is a pure unix shell software for obtaining TLS certificates from Let’s Encrypt with zero dependencies.

Download and install acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail your_email@example.com
source ~/.bashrc
cd ~

Check acme.sh version:

acme.sh --version
# v2.8.0

Obtain RSA and ECC/ECDSA certificates for your domain/hostname:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

If you want fake certificates for testing you can add --staging flage to the above commands.

After running the above commands, your certificates and keys will be in:

  • For RSA/home/username/example.com directory.
  • For ECC/ECDSA/home/username/example.com_ecc directory.

To list your issued certs you can run:

acme.sh --list

Create a directories to store your certs. We will use /etc/letsencrypt directory.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Install/copy certificates to /etc/letsencrypt directory.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

All the certificates will be automatically renewed every 60 days.

After obtaining certs exit from root user and return back to normal sudo user:

exit

Step 4: Install and configure Nginx

NodeBB can work fine with many web servers. In this tutorial, we selected Nginx.

Install Nginx package, by issue the following command:

sudo dnf install -y nginx

After the installation, you can verify Nginx version by running:

nginx -v
# 1.14.1

Start and enable (set it to start on reboot) Nginx service:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Check the Nginx web server status by running:

sudo systemctl status nginx.service
# active (running)

NodeBB by default runs on port 4567. To avoid typing http://example.com:4567, we will configure Nginx as a reverse proxy for the NodeBB application. Every request on port 80 or 443 (if SSL is used) will be forwarded to port 4567.

Run sudo vim /etc/nginx/conf.d/nodebb.conf and configure Nginx as an HTTPS reverse proxy.

server {
  listen [::]:443 ssl http2;
  listen 443 ssl http2;
  listen [::]:80;
  listen 80;
  
  server_name forum.example.com;
  
  client_max_body_size 50M;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://127.0.0.1:4567;
    proxy_redirect off;
    # Socket.IO Support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade"; 
  }

}

Check the Nginx configuration:

sudo nginx -t

Finally, for changes to take effect, we need to reload Nginx:

sudo systemctl reload nginx.service

Step 5: Install and setup NodeBB

Create a document root directory where NodeBB should reside in:

sudo mkdir -p /var/www/nodebb

Navigate to the document root directory:

cd /var/www/nodebb

Change ownership of the /var/www/nodebb directory to your_user.

sudo chown -R [your_user]:[your_user] /var/www/nodebb

NOTE: Replace your_user in the above command with your non-root user that you should have created as a prerequisite for this tutorial.

Clone the latest NodeBB repository into document root folder:

git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .

Initiate the setup script by running the app with the setup flag. Answer each of the questions:

./nodebb setup

After NodeBB setup is completed, run ./nodebb start to manually start your NodeBB server:

./nodebb start

After running this command, you should be able to access your brand new forum in your web browser:

NodeBB in Browser

Step 6: Run NodeBB as a System Service

When started via ./nodebb start, NodeBB will not automatically start up again when the system reboots. To avoid that, we will need to setup NodeBB as a system service.

If running, stop NodeBB:

./nodebb stop

Create a new nodebb user:

sudo useradd nodebb

Change the ownership of the /var/www/nodebb directory to nodebb user:

sudo chown -R nodebb:nodebb /var/www/nodebb

Create nodebb.service systemd unit config file. This unit file will handle startup of NodeBB deamon. Run sudo vim /etc/systemd/system/nodebb.service and add the below content:

[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service

[Service]
Type=forking
User=nodebb

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always

[Install]
WantedBy=multi-user.target

NOTE: Set username and directory paths according to your chosen names.

Enable nodebb.service on reboot and immediately start nodebb.service:

sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service

Check the nodebb.service status:

sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service

Congratulations! You have successfully installed and deployed NodeBB discussion platform on Fedora 29 system. You should be able to access your forum on your domain and interact with your forum.

Links

Source

Automate WebSocket API Creation in Amazon API Gateway Using AWS CloudFormation

Posted On: Feb 7, 2019

You can now use AWS CloudFormation templates to build WebSocket APIs in Amazon API Gateway. AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment across all regions and accounts, simplifying how you build applications in the cloud.

Using CloudFormation, you can build fully-managed WebSocket APIs in API Gateway. WebSocket APIs allow you to reduce the overall cost and complexity of building real-time, two-way communication applications such as chat applications, alerts and notifications applications, and real-time dashboards. CloudFormation will allow you to automate the creation of the resources you need to build WebSocket APIs in API Gateway, such as APIs, routes, stages, and deployments.

To learn more about the WebSocket API resources supported by CloudFormation, read our documentation or take a look at our sample chat application in GitHub.

CloudFormation support for building WebSocket APIs in API Gateway is available in all regions where API Gateway and CloudFormation are available. To see a list of these regions, view the AWS region table.

Source

Download yelp-tools Linux 3.28.0 / 3.32.0 Beta

yelp-tools is an open source and free command-line software designed as part of the Yelp project, providing the necessary scripts for generating, maintaining and publishing documentation for the GNOME desktop environment.

The program can also be used to publish documentation on the Internet. It is comprised of various scripts, such as yelp-check and yelp-build, as well as an yelp.m4 file that provides autotools integration.

What is Yelp?

Yelp is an open source, free and very useful software project, a collection of documentation utilities for the GNOME desktop environment, containing a set of utilities for building documentation.

The Yelp project also contains the yelp-xsl utility, which provides core XSLT stylesheets used by libyelp and Yelp itself, as well as the libyelp GTK+ library, which makes it easy to build a help viewer, or embed one in an application.

Getting started yelp-tools

Usually, yelp-tools can be installed through the package manager of your GNU/Linux distribution, but it gets automatically installed with Yelp, when installing the GNOME desktop environment.

It can also be used on other open-source desktop environments. To install and use the yelp-tools package on your distro, first check if a pre-built binary package is available on the main software repositories.

If not, download the latest stable version from Softpedia, save the archive on your PC, preferably your Home directory, extract its contents using an archive manager tool, open a Terminal app and navigate to the location of the extracted archive files (e.g. cd /home/softpedia/yelp-tools-3.14.1).

Arrived at the location of the extracted archive files, run the ‘./configure && make’ command to configure and compile the program, followed by the ‘sudo make install’ command to install it system wide.

The commands are available through the Yelp software or directly from the command-line interface, using a terminal emulator.

Yelp script Create documentation Publish documentation Yelp Documentation Publish Create

Source

How to Configure Software Repositories in Fedora

Your Fedora distribution obtains its software from repositories and each of these repositories comes with number of free and proprietary software applications available for you to install. The official Fedora repositories have thousands of free and open source applications.

In this article, we will show how to configure software repositories in Fedora distribution using the DNF package manager tool from the command line.

View Enabled Repositories in Fedora

To list all enabled repositories on your Fedora system, in the format repository ID, name, and status (number of packages it provides), run the following command.

$ sudo dnf repolist
List Enabled Repositories in Fedora

List Enabled Repositories in Fedora

You can list packages from a specified repository, for instance fedora, by running the following command. It will list all packages available and installed from the repository specified.

$ sudo dnf repository-packages fedora list

To display only a list of those packages available or installed from the specified repository, add the available or installed option respectively.

$ sudo dnf repository-packages fedora list available
OR
$ sudo dnf repository-packages fedora list installed

Adding, Enabling, and Disabling a DNF Repository

Before you add a new repository to your Fedora system, you need to define it by either adding a [repository]section to the /etc/dnf/dnf.conf file, or to a .repo file in the /etc/yum.repos.d/ directory. Most developers or package maintainers provide DNF repositories with their own .repo file.

For example to define the repository for Grafana in a .repo file, create it as shown.

$ sudo vim /etc/yum.repos.d/grafana.repo

Then add the [repository] section in the file and save it. If you observe carefully, in the repository configuration shown in the image, it is not enabled as indicated by the parameter (enabled=0); we changed this for demonstration purposes.

Add New DNF Repository in Fedora

Add New DNF Repository in Fedora

Next, to add and enable new repository, run the following command.

$ sudo dnf config-manager --add-repo /etc/yum.repos.d/grafana.repo
Add and Enable DNF Repo

Add and Enable DNF Repo

To enable or disable a DNF repository, for instance while trying to install a package from it, use the --enablerepo or --disablerepo option.

$ sudo dnf --enablerepo=grafana install grafana  
OR
$ sudo dnf --disablerepo=fedora-extras install grafana  
Install Package from Enabled Repository

Install Package from Enabled Repository

You can also enable or disable more than one repositories with a single command.

$ sudo dnf --enablerepo=grafana, repo2, repo3 install grafana package2 package3 
OR
$ sudo dnf --disablerepo=fedora, fedora-extras, remi install grafana 

You can also enable and disable repositories at the same time, for example.

$ sudo dnf --enablerepo=grafana --disablerepo=fedora, fedora_extra, remi, elrepo install grafana

To permanently enable a particular repository, use the --set-enabled option.

$ sudo grep enable /etc/yum.repos.d/grafana.repo
$ sudo dnf config-manager --set-enabled grafana
$ sudo grep enable /etc/yum.repos.d/grafana.repo
Permanently Enable DNF Repo

Permanently Enable DNF Repo

To permanently disable a particular repository, use the --set-disabled switch.

$ sudo dnf config-manager --set-disabled grafana

That’s all for now! In this article, we have explained how to configure software repositories in Fedora. Share your comments or ask questions via the feedback form below.

Source

Amazon RDS for Oracle Now Supports January 2019 Oracle Patch Set Updates (PSU) and Release Updates (RU)

Amazon RDS for Oracle now supports the January 2019 Patch Set Updates (PSU) for Oracle Database 11.2 and 12.1. Oracle PSU contains critical security updates and other important updates. Beginning with Oracle Database version 12.2.0.1, Amazon RDS for Oracle supports Release Updates (RU) in place of the PSU. To learn more about the Oracle PSUs supported on Amazon RDS, visit the Amazon RDS patch update documentation.

Amazon RDS for Oracle makes it easy to set up, operate, and scale Oracle Database deployments in the cloud. See the Amazon RDS for Oracle Database Pricing page for complete regional availability information.

Source

Download yelp-xsl Linux 3.30.1 / 3.32.0 Beta

yelp-xsl is an open source, freely distributed and small software project that has been designed as part of the Yelp project, providing core XSLT (XSL Transformations) stylesheets used by the libyelp library, as well as by the Yelp software itself.

What is Yelp?

Yelp is an open source collection of documentation utilities for the GNOME desktop environment. Notably, it contains utilities for building documentation and all auxiliary files in your source tree.

The Yelp project also contains the libyelp GTK+ library that makes it easy to build a help viewer, or embed one in an application, and yelp-tools, a collection of command-line tools for checking and building documentation.

What can I do with yelp-xsl?

After compiling and installing the yelp-xsl software, users will be able to build stylesheets in order to create websites, such as https://help.gnome.org/, or site-building tools, such as https://gitorious.org/projectmallard/mallard-site-tool.

Getting started with yelp-xsl

To install and use this package in your GNU/Linux machine, you should first download the latest version from Softpedia, where it is distributed as a source tarball (tar.xz archive), save it locally, extract its contents and open a terminal emulator.

In the Linux terminal window, use the ‘cd’ command to go to the location of the extracted archive files, then execute the “./configure && make” command to configure (optimize) and compile the program for your architecture and operating system.

After a successful compilation, you will be able to install yelp-xsl system wide by running the “make install” command as root (system administrator) or with sudo.

Source

Tutorial: Plasma – Pretty (Inter)face

If you want features, bells and whistles, and configurability in spades, your best choice of desktop is probably KDE’s Plasma desktop. Navigating and discovering all that’s on offer can be a challenge, though.

While many user interface designers advocate simplicity and simplified decision-making for users (which often results in no decision-making at all), the KDE community [1] has stubbornly gone the other way, jam-packing all manner of features and doodads into its Plasma [2] desktop (see the “KDE Is Not a Desktop” box).

Table 1

How Light Is Light?

Desktop RAM Used Bootup Firefox Startup LibreOffice Startup
Gnome 542MiB ~51sec 7.41sec 10.75sec
Xfce 530MiB ~45sec 7.66sec 10.10sec
Plasma 489MiB ~60sec 7.40sec 8.07sec

KDE Is Not a Desktop

This has been the subject of much controversy and confusion, but, no, KDE is not the name of a desktop environment anymore and hasn’t been for some time now.

The desktop is called Plasma. KDE, on the other hand, is the name given to the community of developers, artists, translators, and so on that create the software. The reason for this shift is because the KDE community builds many things, like Krita, Kdenlive, digiKam, GCompris, and so on, not just Plasma. Many of these applications are not even tied to Linux, much less to the Plasma desktop, and can be run on many other graphical environments, including Mac OS X, Windows, Android, and others.

Also, much like KFC does not stand for Kentucky Fried Chicken anymore, neither does KDE stand for Kool Desktop Environment. KDE is not an acronym for anything. It is just … KDE.

That said, if you want simple, Plasma can do simple, too. You can ignore all the bell and whistles and just get on with your life. But where is the fun in that?

Camouflage

A default Plasma desktop looks like Figure 1. Usually, you will find a panel at the bottom of the screen, a start button holding menus at the bottom left, and a tray on the right – all quite conventional, boring, and even Windows-y.

Figure 1: Out of the box, Plasma’s default layout looks pretty conventional …

But Plasma can be configured to look like anything, even like Ubuntu’s defunct Unity (Figure 2), Gnome, Mac OS, or whatever else rocks your boat.

Figure 2: … but Plasma can adopt any layout that tickles your fancy. Here, Plasma looks like Ubuntu’s defunct Unity desktop.

To illustrate Plasma’s flexibility, I’ll show you some tricks you can use to emulate other desktops, starting with global menus. Both Unity and Mac OS use a global menu: It is the menu that appears in a bar at the top of the screen and shows a selected application’s options, instead of having them in a bar along the top of the application.

To create global menus in Plasma, first right-click in any free space on the Plasma desktop and select + Add Panel | Empty Panel from the pop-up menu. Usually, the panel will appear across the top of the screen, because the bottom is already filled with the default Plasma panel. If it has popped up anywhere else, click on the hamburger menu (the button with three horizontal lines at one end of the panel) and then click and hold the Screen Edge button and drag the panel to the top.

Once you have placed the panel, click on the hamburger menu on the right of the panel again and click on + Add Widgets. A bar with all the available widgets will show up on the screen’s left . You can narrow your search down by typing global into the search box. When you see the Global Menu widget, double-click on it, and it will be added to the panel.

Initially you may not see any difference. Indeed, open applications still have their own menubars. Close and reopen the applications, and you’ll see how now their menus have moved from the application window to the upper panel you just made.

To make the effect even more striking, click the Start menu on the bottom panel and pick System Settings. Under Workspace Theme, choose Breeze Dark and click Apply. You will end up with something like Figure 3.

Figure 3: Creating a panel with a global menu is easy.

But theming is just one of the things you can do to tweak Plasma’s look and feel. You can also configure the look, size, and location of individual applications and even individual windows to absurd lengths.

Window Hacking

Right-click on any window’s titlebar, and a menu will pop up. Apart from the options to minimize, maximize, and close the windows, you’ll notice the More Actions option. The Keep Above Others and Keep Below Others options are self-explanatory, but you can also make a window Fullscreen, and it will be maximized; the application’s titlebar and any other desktop element (like panels) will disappear, giving you maximum workspace. If the application doesn’t offer you a way to exit full screen, press Alt+F3 and use the menu to deactivate full-screen mode.

You can also “shade” the window, which means it will roll up like a blind, leaving only the titlebar visible. Another alternative is to remove the border and titlebar, leaving a bare window with no decorations. To recover borders and the titlebar, select the window and press Alt+F3 again to open the window’s configuration menu.

Within Window Specific Settings and Application Specific Settings, you have all manner of options to fix the application window’s position and size. You can make a window stick to a certain area of your screen and become unmovable. At the same time, you can adjust its size to the pixel. You can configure things so that, when you launch a certain application, it always opens in a certain place, maximized, or shaded. You can make the application so it won’t close, or you can choose actions from dozens of other options.

Window Manager Settings opens another cornucopia of options for adjusting windows. From here, you can adjust things like the screen edges, for example. These are “live” areas that react and carry out an action when your cursor moves into them. Move your cursor into the upper left-hand corner of your screen, and you will see all the windows spread out and go a shade darker, showing everything you have open. You can use this trick to pick a window on which to focus, especially if you have several open (Figure 4).

Figure 4: Screen edges allow you to activate actions when you mouse over them.

As with everything Plasma, screen edges can be configured to execute a wide variety of other actions: You can minimize all the windows to show the desktop, open KRunner to run a command (you’ll learn more about how KRunner works below), or open the window-switching panel on the left of the screen. The switching panel allows you to scroll through all the open windows to select the one you want.

Another of the more interesting configuration tabs in Window Manager Settings is the Effects tab. Old timers will remember things like wobbly windows and rotating cubes that plagued Linux desktops of yore. Those still live on in Plasma (Figure 5) and can be activated from this tab, but other effects are more intriguing and worth a second look.

Figure 5: Rotating cubes are back and can be activated from the Effects tab in Window Manager Settings.

Take, for example, the Thumbnail Aside effect. Activate this effect, maximize a window, and press Alt+Meta+T (the Meta key usually has a Windows logo on it), and you will see a small preview of the window appear in the bottom right-hand corner of your screen. You can make these previews translucent (the level of translucency is, of course, adjustable), so you can still see what is under the preview. You can also adjust the size to whatever you want. Click on another window, maximize it, press Alt+Meta+T again, and, lo and behold: Another preview will pop up above the first one (Figure 6).

Figure 6: The Thumbnail Aside effect allows you to open previews of window activities in the bottom right corner of your screen.

Because these previews do not interfere with the cursor or the other windows, you can carry on with your work while you keep an eye on a video streaming in VLC or a complex install running in a terminal.

Certain caveats apply, though: As mentioned above, the windows you want to preview must be maximized. If you minimize a previewed window, the preview will disappear, but not close, leaving an empty space in the column of previews. Also, as shown above, you can remove borders and the titlebar from windows quite easily, and the Thumbnail Aside effect will not work with windows without borders.

Select the previewed window and press Alt+Meta+T again to close its preview.

Being Productive

While on the subject of shortcuts, you always have a terminal close at hand in Plasma: Hit F12 and a Yakuake terminal [3] unfolds from the top of the screen. You can run anything you need from this console. When you’re done, hit F12 again, or click on a window, and the terminal folds back up, moving out of the way. If you are carrying out a long process, like compiling an application, folding the terminal up won’t interrupt it: It will carry on in the background, so at any moment you can hit F12 again and check on its progress.

With regard to productivity/shortcuts/stuff that unfolds from the top of the screen, try pressing Alt+F2 (or Alt+Space, or simply click on an empty area in the desktop and start typing). A text box for searches appears at the top of the screen. This is KRunner [4], a built-in application originally designed to help search for (and run) applications. Nowadays, KRunner indexes everything: applications, for sure, but also email addresses, packages available from your software center, bookmarks from your web browser, folders, and documents (Figure 7). It is blindingly fast and coughs up results as you type.

Figure 7: KRunner is your one-stop solution to finding the answer to everything.

KRunner can also be used as a media player (type play and the name of the song), a clock (type time), a calendar (date), a regular and scientific calculator (try typing =solve( 2*x^2 + 3*x – 2 = 0 ); the first result will be the solution to that polynomial function), as a unit and currency converter (type 100 GBP to see the value of 100 British pounds in different currencies), and a way to connect to remote computers (type fish://<your remote server> to open your SSH server in your file explorer).

KRunner is the epitome of what Plasma is all about.

Misconceptions

You might be thinking that all these goodies are cool and all, but at what cost? Surely Plasma will slow down your average machine to a crawl. Turns out that is not the case at all. In fact, some not-very-scientific research I carried out showed Plasma to be lighter in many areas than even Xfce, a desktop environment whose main claim to fame is that it is light.

Using three Live Manjaro flavors, KDE (with Plasma desktop), Gnome, and Xfce, I ran some tests and concocted Table 1.

If the numbers in the first column seem a bit high, it is because I was running the desktops off of a Live distribution, so, apart from the graphical environment, the RAM was also loaded with a lot of in-memory systems. Notwithstanding, Plasma is the lightest of the three by quite a measure.

Bootup, which was timed from the GRUB screen to a fully loaded desktop, does show Plasma to be slower, but starting up external applications shows Plasma to be faster – in the case of running LibreOffice, much faster. This exercise shows that you can expect Plasma to take longer to load, but, once loaded, it will run lighter and snappier than many other desktops.

Conclusion

If you have not tried Plasma or remember the bad old days when it was clunky and buggy, you should really give it a chance. Not only is it configurable to absurd extremes and packs more features than you would ever need, but it is also lighter and snappier than most other desktops out there.

Source

Red Hat Launches CodeReady Workspaces Kubernetes IDE

Red Hat announced the general availability of its CodeReady Workspaces integrated developer environment (IDE) on Feb. 5, providing users with a Kubernetes-native tool for building and collaborating on application development.

In contrast with other IDEs, Red Hat CodeReady Workspaces runs inside of a Kubernetes cluster, providing developers with integrated capabilities for cloud-native deployments. Kubernetes is an open-source container orchestration platform that enables organizations to deploy and manage application workloads. Red Hat CodeReady Workspaces is tightly integrated with the company’s OpenShift Kubernetes container platform, enabling development teams with an environment to develop and deploy container applications.

“You can do any kind of development with CodeReady Workspaces. However, because its strength comes from its container-native approach, it’s primarily valuable for container-based applications,” Brad Micklea, senior director, Developer Experience and Programs at Red Hat, told eWEEK. “That said, the fact that it abstracts and hides much of the complexity of Kubernetes from developers makes it well-suited to teams who are starting to work with Kubernetes—for example, as part of an application migration project.”

Red Hat CodeReady Workspaces is based on the open-source Eclipse Che IDE project, as well as technologies that Red Hat gained via the acquisition of Codenvy in May 2017.

“When Codenvy was acquired by Red Hat, the proprietary features in Codenvy were contributed up to the Eclipse Che open-source project, making Che a viable enterprise tool,” Micklea said. “Then Red Hat created a hardened and supported packaging of Che to sell to enterprises who wanted Che with the backing of Red Hat support.”

CodeReady Workspaces provides all the functionality of Che, but with several key additions, Micklea said. The additions include runtime stacks based on Red Hat Enterprise Linux 7 and 8 beta, as well as access to 24/7 technical support including engineering resources that can make fixes to the upstream code if needed. Beyond that, he noted that Eclipse Che releases every three weeks, which is too often for most organizations to effectively track, while CodeReady Workspaces releases every three months, providing stability for enterprise operations.

“Additionally, each CodeReady version is supported for six to 12 months, depending on subscription, versus the upstream where community support is typically only provided for the most current version,” Micklea said.

Red Hat Developer Studio

The new CodeReady Workspaces is not Red Hat’s first IDE. There is also the Red Hat Developer Studio IDE, which is an Eclipse based desktop IDE. Micklea explained that Red Hat Developer Studio runs on a local host and each developer needs to download, install and maintain the virtual machines, tooling and runtime components needed to build, debug and run their code.

“Any part of that can run on Kubernetes, but as with all Eclipse desktop IDEs, the assumption is that everything is installed locally,” he said.

In contrast, Red Hat CodeReady Workspaces is based on Eclipse Che, a separate project in the Eclipse Foundation that only shares the Java language server capabilities with Eclipse desktop IDE. Micklea said Che is always installed in a Kubernetes distribution and everything it does is executed inside containers/pods, which is what why it is being considered by Red Hat to be Kubernetes-native.

Micklea said that both Red Hat Developer Studio and CodeReady Workspaces are usable with Kubernetes but often people who already use Eclipse desktop IDE will prefer to stick with it and build and debug locally, only testing on Kubernetes after they merge back to origin. In contrast, he noted that Che tends to be preferred by developers who want to work more seamlessly with production Kubernetes container images or who prefer a lighter-weight, browser-based IDE.

CodeReady Workspaces Factories

A key capability in CodeReady Workspaces is the Factories feature, which helps to enable developer collaboration on coding projects.

Micklea explained that a Factory in Che is a JSON (JavaScript Object Notation) file that defines foundational elements of a project. Those elements include where to find the source code for the workspace, what languages are used in the project, the commands to pre-populate in the IDE that are needed for the workspaces, as well as any post-load actions to be performed on the workspace automatically when it has been built.

“The Factory JSON definition then lives in the Che server and can be shared via a URL—anyone clicking on that URL will have a private workspace created for them which exactly matches the definition outlined in the Factory JSON file,” he said. “This makes it quicker and more reliable for users to be onboarded to a project.”

What’s Next

With the general availability of CodeReady Workspaces, the new IDE is being distributed for free to Red Hat’s OpenShift Container Platform (on-premises) or OpenShift Dedicated (Red Hat hosted and managed in the cloud) subscription customers.

“We are planning to host a SaaS environment for Eclipse Che upstream in order to foster the continued growth of that community,” Micklea said. “We hope to have that offering online in the coming two months.”

The upstream Eclipse Che project is gearing up for some big changes in the months ahead as well, with development on Eclipse Che version 7 now ongoing.

“Che 7 includes significant improvements to the IDE design and extensibility,” Micklea said.

Among the core areas of extensibility will be support for Visual Studio Code plugins, which will open up Che to a large ecosystem of plug-and-play extensions.

“Che 7 will also bring along the ability to launch a Che workspace directly from a production image without altering the container itself,” he said. “This is a huge step for people who have always wished they could immediately begin fixing production code issues without having to go through a tedious and costly environment setup phase.”

Sean Michael Kerner is a senior editor at eWEEK and InternetNews.com. Follow him on Twitter @TechJournalist.

Source

Linux Today – 4 steps to becoming an awesome agile developer

There’s no magical way to do it, but these practices will put you well on your way to embracing agile in application development, testing, and debugging.

Green graph of measurements

Enterprises are rushing into their DevOps journey through agile software development with cloud-native technologies such as Linux containersKubernetes, and serverless. Continuous integration helps enterprise developers reduce bugs, unexpected errors, and improve the quality of their code deployed in production.

However, this doesn’t mean all developers in DevOps automatically embrace agile for their daily work in application development, testing, and debugging. There is no magical way to do it, but the following four practical steps and best practices will put you well on your way to becoming an awesome agile developer.

Start with design thinking agile practices

There are many opportunities to learn about using agile software development practices in your DevOps initiatives. Agile practices inspire people with new ideas and experiences for improving their daily work in application development with team collaboration. More importantly, those practices will help you discover the answers to questions such as: Why am I doing this? What kind of problems am I trying to solve? How do I measure the outcomes?

domain-driven design approach will help you start discovery sooner and easier. For example, the Start At The End practice helps you redesign your application and explore potential business outcomes—such as, what would happen if your application fails in production? You might also be interested in Event Storming for interactive and rapid discovery or Impact Mapping for graphical and strategic design as part of domain-driven design practices.

Use a predictive approach first

In agile software development projects, enterprise developers are mainly focused on adapting to rapidly changing app development environments such as reactive runtimes, cloud-native frameworks, Linux container packaging, and the Kubernetes platform. They believe this is the best way to become an agile developer in their organization. However, this type of adaptive approach typically makes it harder for developers to understand and report what they will do in the next sprint. Developers might know the ultimate goal and, at best, the app features for a release about four months from the current sprint.

In contrast, the predictive approach places more emphasis on analyzing known risks and planning future sprints in detail. For example, predictive developers can accurately report the functions and tasks planned for the entire development process. But it’s not a magical way to make your agile projects succeed all the time because the predictive team depends totally on effective early-stage analysis. If the analysis does not work very well, it may be difficult for the project to change direction once it gets started.

To mitigate this risk, I recommend that senior agile developers increase the predictive capabilities with a plan-driven method, and junior agile developers start with the adaptive methods for value-driven development.

Continuously improve code quality

Don’t hesitate to engage in continuous integration (CI) practices for improving your application before deploying code into production. To adopt modern application frameworks, such as cloud-native architecture, Linux container packaging, and hybrid cloud workloads, you have to learn about automated tools to address complex CI procedures.

Jenkins is the standard CI tool for many organizations; it allows developers to build and test applications in many projects in an automated fashion. Its most important function is detecting unexpected errors during CI to prevent them from happening in production. This should increase business outcomes through better customer satisfaction.

Automated CI enables agile developers to not only improve the quality of their code but their also application development agility through learning and using open source tools and patterns such as behavior-driven developmenttest-driven developmentautomated unit testingpair programmingcode review, and design pattern.

Never stop exploring communities

Never settle, even if you already have a great reputation as an agile developer. You have to continuously take on bigger challenges to make great software in an agile way.

By participating in the very active and growing open source community, you will not only improve your skills as an agile developer, but your actions can also inspire other developers who want to learn agile practices.

How do you get involved in specific communities? It depends on your interests and what you want to learn. It might mean presenting specific topics at conferences or local meetups, writing technical blog posts, publishing practical guidebooks, committing code, or creating pull requests to open source projects’ Git repositories. It’s worth exploring open source communities for agile software development, as I’ve found it is a great way to share your expertise, knowledge, and practices with other brilliant developers and, along the way, help each other.

Get started

These practical steps can give you a shorter path to becoming an awesome agile developer. Then you can lead junior developers in your team and organization to become more flexible, valuable, and predictive using agile principles.

Source

5 Streaming Audio Players for Linux | Linux.com

As I work, throughout the day, music is always playing in the background. Most often, that music is in the form of vinyl spinning on a turntable. But when I’m not in purist mode, I’ll opt to listen to audio by way of a streaming app. Naturally, I’m on the Linux platform, so the only tools I have at my disposal are those that play well on my operating system of choice. Fortunately, plenty of options exist for those who want to stream audio to their Linux desktops.

In fact, Linux offers a number of solid offerings for music streaming, and I’ll highlight five of my favorite tools for this task. A word of warning, not all of these players are open source. But if you’re okay running a proprietary app on your open source desktop, you have some really powerful options. Let’s take a look at what’s available.

Spotify

Spotify for Linux isn’t some dumb-downed, half-baked app that crashes every other time you open it, and doesn’t offer the full-range of features found on the macOS and Windows equivalent. In fact, the Linux version of Spotify is exactly the same as you’ll find on other platforms. With the Spotify streaming client you can listen to music and podcasts, create playlists, discover new artists, and so much more. And the Spotify interface (Figure 1) is quite easy to navigate and use.

You can install Spotify either using snap (with the command sudo snap install spotify), or from the official repository, with the following commands:

  • sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv-keys 931FF8E79F0876134EDDBDCCA87FF9DF48BF1C90
  • sudo echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list
  • sudo apt-get update
  • sudo apt-get install spotify-client

Once installed, you’ll want to log into your Spotify account, so you can start streaming all of the great music to help motivate you to get your work done. If you have Spotify installed on other devices (and logged into the same account), you can dictate to which device the music should stream (by clicking the Devices Available icon near the bottom right corner of the Spotify window).

Clementine

Clementine one of the best music players available to the Linux platform. Clementine not only allows user to play locally stored music, but to connect to numerous streaming audio services, such as:

  • Amazon Cloud Drive
  • Box
  • Dropbox
  • Icecast
  • Jamendo
  • Magnatune
  • RockRadio.com
  • Radiotunes.com
  • SomaFM
  • SoundCloud
  • Spotify
  • Subsonic
  • Vk.com
  • Or internet radio streams

There are two caveats to using Clementine. The first is you must be using the most recent version (as the build available in some repositories is out of date and won’t install the necessary streaming plugins). Second, even with the most recent build, some streaming services won’t function as expected. For example, with Spotify, you’ll only have available to you the Top Tracks (and not your playlist … or the ability to search for songs).

With Clementine Internet radio streaming, you’ll find musicians and bands you’ve never heard of (Figure 2), and plenty of them to tune into.

Odio

Odio is a cross-platform, proprietary app (available for Linux, MacOS, and Windows) that allows you to stream internet music stations of all genres. Radio stations are curated from www.radio-browser.info and the app itself does an incredible job of presenting the streams for you (Figure 3).

Odio makes it very easy to find unique Internet radio stations and even add those you find and enjoy to your library.
Currently, the only way to install Odio on Linux is via Snap. If you’re distribution supports snap packages, install this streaming app with the command:

sudo snap install odio

Once installed, you can open the app and start using it. There is no need to log into (or create) an account. Odio is very limited in its settings. In fact, it only offers the choice between a dark or light theme in the settings window. However, as limited as it might be, Odio is one of your best bets for playing Internet radio on Linux.

Streamtuner2

Streamtuner2 is an outstanding Internet radio station GUI tool. With it you can stream music from the likes of:

  • Internet radio stations
  • Jameno
  • MyOggRadio
  • Shoutcast.com
  • SurfMusic
  • TuneIn
  • Xiph.org
  • YouTube

Streamtuner2 offers a nice (if not slightly outdated) interface, that makes it quite easy to find and stream your favorite music. The one caveat with StreamTuner2 is that it’s really just a GUI for finding the streams you want to hear. When you find a station, double-click on it to open the app associated with the stream. That means you must have the necessary apps installed, in order for the streams to play. If you don’t have the proper apps, you can’t play the streams. Because of this, you’ll spend a good amount of time figuring out what apps to install for certain streams (Figure 4).

VLC

VLC has been, for a very long time, dubbed the best media playback tool for Linux. That’s with good reason, as it can play just about anything you throw at it. Included in that list is streaming radio stations. Although you won’t find VLC connecting to the likes of Spotify, you can head over to Internet-Radio, click on a playlist and have VLC open it without a problem. And considering how many internet radio stations are available at the moment, you won’t have any problem finding music to suit your tastes. VLC also includes tools like visualizers, equalizers (Figure 5), and more.

The only caveat to VLC is that you do have to have a URL for the Internet Radio you wish you hear, as the tool itself doesn’t curate. But with those links in hand, you won’t find a better media player than VLC.

Always More Where That Came From

If one of these five tools doesn’t fit your needs, I suggest you open your distribution’s app store and search for one that will. There are plenty of tools to make streaming music, podcasts, and more not only possible on Linux, but easy.

Source

WP2Social Auto Publish Powered By : XYZScripts.com